Вход • Регистрация

Всего найдено: 236

  • 16 октября 2017 г.
  • Не благодари, пока не проверишь. У меня все работает уже хз сколько.
    Код
    //вывод описаний сопутствующих услуг для данного товара

    $id_addcost = DB::query("SELECT additional_cost_id FROM {shop_additional_cost_rel} WHERE element_id=%d", $result["id"]);
    if (!empty($id_addcost))
    {
    while ($row = DB::fetch_array($id_addcost))
    {
    $text_addcost = DB::query_fetch_array("SELECT name1, text1, price, percent FROM {shop_additional_cost} WHERE id=%d", $row["additional_cost_id"]);
    echo '<span itemprop="description">'.$text_addcost["text1"].'</span>';
    echo '<br>';
    echo '<br>';
    }
    DB::free_result($id_addcost);
    }

  • 18 августа 2017 г.
  • Я конечно дофига спец, но там в $row['date'] точно кроме даты ничего типа тегов нет? А то я помню, что у меня описания товара var_dump`ом в браузер вроде нормально выводились, а по факту там <p></p> еще были.
  • 19 августа 2017 г. , редакция: 1503092250
  • Не, ну глумишься чтоле?))) Это длина строковой переменной, в твоем случае означает, что за видимым 04.07.2017 кроется 229 символов, которые испражняются наружу, когда ты разбиваешь теги explod`ом. Перед разбиением на массив прогони переменную через strip_tags, должно помочь.
    Если уж совсем конкретно - содержимое переменной при выводе вардампом имеет смысл смотреть в выводимом коде сайта (где видны теги), а не в браузере (где они скрыты). Я так мыслю.
  • 25 августа 2017 г.
  • Ясделяль для рассылки свежим юзерам в registration.action.php
    Код
    Custom::inc('includes/mail.php');

    //генерим купон перед отправкой письма
    Custom::inc('custom/my/modules/registration/registration.newcoupon.php');
    $coupon = newcoupon(1);

    if ($this->diafan->configmodules("sendmailadmin", "users"))
    {
    $subject = str_replace(
    array('%title', '%url'), array(TITLE, BASE_URL), $this->diafan->configmodules('subject_admin', "users")
    );
    $message = str_replace(
    array('%login', '%title', '%url', '%fio', '%email', '%params'), array(
    $login,
    TITLE,
    BASE_URL,
    $this->diafan->filter($_POST, "string", "fio"),
    $this->diafan->filter($_POST, "string", "mail"),
    $this->message_admin_param,
    ), $this->diafan->configmodules('message_admin', "users")
    );

    if ($message && $subject)
    {
    send_mail(
    $this->diafan->configmodules("emailconfadmin", "users") ? $this->diafan->configmodules("email_admin", "users") : EMAIL_CONFIG, $subject, $message, $this->diafan->configmodules("emailconf", "users") ? $this->diafan->configmodules("email", "users") : ''
    );
    }
    }

    //send mail user
    $subject = str_replace(
    array('%title', '%url'),
    array(TITLE, BASE_URL),
    $this->diafan->configmodules('subject', "users")
    );

    $actlink = '';
    if ($this->diafan->configmodules("act", "users") == 1)
    {
    $actcode = md5(rand(111, 99999));
    DB::query("INSERT INTO {users_actlink} (link, user_id, created) VALUES ('%s', %d, %d)", $actcode, $save, time() + 86400);
    $actlink = BASE_PATH_HREF.$this->diafan->_route->link($this->diafan->_site->id).'?action=act&user_id='.$save.'&code='.$actcode;
    }

    $message = str_replace(
    array('%login', '%title', '%url', '%fio', '%email', '%password', '%params', '%actlink', '%coupon'), array(
    $login,
    TITLE,
    BASE_URL,
    $this->diafan->filter($_POST, "string", "fio"),
    $this->diafan->filter($_POST, "string", "mail"),
    $this->diafan->filter($_POST, "string", "password"),
    $this->message_param,
    $actlink,
    'Купон '.$coupon["Coupon_code"].' сроком действия 2 месяца'//добавлено для рассылки купонов
    ), $this->diafan->configmodules('message', "users")

    Функция для генерирования купона в приложении
  • 18 сентября 2017 г. , редакция: 1505726330
  • Как водится, не без косяков. При коррекции цены товара в большую сторону, по крайней мере, на значение скидки (например, раньше позиция была 1000, стала 1200 при скидке по генерируемому купону 200) всплыло следующее:
    1. Товар висит в каталоге со скидкой вне зависимости от наличия вбитого в клиентской части купона
    2. После отключения-включения сгенерированных купонов такая же хурма происходит во всем каталоге.

    После замены в 17 строке функции newcoupon

    Код
    $discount_id = DB::query("INSERT INTO {shop_discount} (date_start, date_finish, discount, amount, deduction, threshold, threshold_cumulative, role_id, act, person, text, trash)"
    . " VALUES ('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%h', '%d')",
    time(), (time()+5259486), $rows_discount["discount"], $rows_discount["amount"], $rows_discount["deduction"], $rows_discount["threshold"], $rows_discount["threshold_cumulative"], 0, 1, 0, 'Персональный купон для нового клиента', 0
    );


    на

    Код
    $discount_id = DB::query("INSERT INTO {shop_discount} (date_start, date_finish, discount, amount, deduction, threshold, threshold_cumulative, role_id, act, person, text, trash)"
    . " VALUES ('%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%h', '%d')",
    time(), (time()+5259486), $rows_discount["discount"], $rows_discount["amount"], $rows_discount["deduction"], $rows_discount["threshold"], $rows_discount["threshold_cumulative"], 0, 1, 1, 'Персональный купон '.$Coupon_code.' для нового клиента', 0
    );


    Проблема перестала воспроизводиться.
  • 31 июля 2017 г.
  • Как художник художнику - там при создании сайта добровольно-принудительно заставляют выбрать какую-нибудь тему, даже если она нахрен не упала. Я всегда выбирал бесплатные шаблоны, как с платными - не в курсе.
  • 27 июля 2017 г.
  • Кстати, с мобильной версией, как я помню, был некий гемор ввиде неработающего как надо многоуровневого меню. В собственно демошаблоне не проверял, но если именно мобильный демошаблон ввинчивается в качестве дефолтного - там, скорее всего, то же самое
  • 17 июля 2017 г.
  • Выбрать в админке описание файла импорта/экспорта, там ткнуть на надпись "изменить" около названия этого описания вверху, на открывшейся странице поставить флажок "удалять неописанные в файле импорта записи". Должно помочь.
  • 18 июля 2017 г.
  • Там только или все вместо всего в соответствии с CSV, или только добавить новые, не трогая старые. Менять какие-либо характеристики имеющихся позиций в магазине, не трогая другие характеристики, через загрузку из CSV, нельзя. А что мешает выгрузить в CSV вообще все характеристики, потом в Экселе поменять что надо, и загрузить обратно? Кстати, так и вопрос с бэкапом отпадает.
  • 18 июля 2017 г.
  • Заблуждался, виноват. Точно помню, что подобный номер с обновлением характеристик у меня не прошел, когда я пытался прилепить картинки к загруженным товарам; вероятно, я что-то не так делал.
  • 17 июля 2017 г. , редакция: 1500244419
  • Когда извлекаю из БД описание товара, то получаю его с переносами строки, то есть, что-то типа такого

    array(42) { ["id"]=> string(3) "262" ["name1"]=> string(93) "Стрижка под машинку, «спорт» собаки породы Пекинес" ["act1"]=> string(1) "1" ["date_start"]=> string(1) "0" ["date_finish"]=> string(1) "0" ["article"]=> string(0) "" ["measure_unit1"]=> string(0) "" ["weight"]=> string(0) "" ["length"]=> string(0) "" ["width"]=> string(0) "" ["height"]=> string(0) "" ["map_no_show"]=> string(1) "0" ["changefreq"]=> string(6) "always" ["priority"]=> string(1) "0" ["noindex"]=> string(1) "0" ["cat_id"]=> string(3) "219" ["site_id"]=> string(2) "97" ["brand_id"]=> string(1) "0" ["keywords1"]=> string(0) "" ["descr1"]=> string(0) "" ["canonical1"]=> string(0) "" ["title_meta1"]=> string(0) "" ["anons1"]=> string(0) "" ["anons_plus1"]=> string(1) "0" ["text1"]=> string(103) "
    Тело бреется машинкой, штанишки стригутся ножницами

    " ["yandex"]=> string(104) "typePrefix= vendor= model= vendorCode= sales_notes= manufacturer_warranty= country_of_origin= bid= cbid=" ["show_yandex"]=> string(1) "0" ["no_buy"]=> string(1) "0" ["import"]=> string(1) "1" ["import_id"]=> string(2) "22" ["sort"]=> string(3) "180" ["timeedit"]=> string(10) "1496771228" ["counter_buy"]=> string(1) "0" ["hit"]=> string(1) "0" ["new"]=> string(1) "0" ["action"]=> string(1) "0" ["is_file"]=> string(1) "0" ["access"]=> string(1) "0" ["admin_id"]=> string(1) "1" ["theme"]=> string(0) "" ["view"]=> string(0) "" ["trash"]=> string(1) "0" }

    Так вот: как мне получить значение элемента "text1" без переносов строк? Замещение воображаемых \n

    и <br> на пробелы действия не возымело. Кроме того, мне непонятно, что за такие 103 символа там в строке.
  • 17 июля 2017 г.
  • Да, кэп) Я в курсе) Весь вопрос в том, что там выцеплять для замены - это не символы переноса строки \n, не пробелы и не теги переноса строки. Я просто, видимо, что-то не знаю о том, как задается перенос строки в строковой переменной РНР.
  • 06 июля 2017 г.
  • Собсна, медленно пилю скрипт для выгрузки товаров в группу ВК, на текущий момент уперся в то, что нужно загружать картинку на сервер в формате в формате multipart/form-data; из того, что я нагуглил по этому поводу, вытекает, что для этих целей следует пользоваться программой cURL, которая, соответственно, должна быть установлена на сервере. Вопрос: кто-нибудь знает, есть она в diafan cloud`e? А то я какбэ попробовал ее вызвать из РНР, на что мне написали, что Class 'CURLFile' not found, что наводит на мысль, что ее таки нет. Хотя, после назначения
    Код
    $CURL = curl_init();
    при вызове
    Код
    var_dump ($CURL);
    пишет, что там таки что-то мутное есть.
  • 06 июля 2017 г.
  • Спасибо! Пишет, что, вроде, есть. Тогда - почему не воспринимается цэ
    Код

    $CURL = curl_init();
    $parameters = [
    'file1' => new CURLFile($picture) // PHP >= 5.5.0
    // 'file1' => '@path/to/1.jpg' // PHP < 5.5.0
    ];

    // Ссылка, куда будем загружать картинку - это upload_url
    curl_setopt($CURL, CURLOPT_URL, $upload_url);
    // Говорим cURL, что это POST-запрос
    curl_setopt($CURL, CURLOPT_POST, true);

    // Говорим cURL, какие поля будем отправлять
    curl_setopt($CURL, CURLOPT_POSTFIELDS, $parameters);

    // Говорим cURL, что нам нужно знать, что ответит сервер, к которому мы будем обращаться
    curl_setopt($CURL, CURLOPT_RETURNTRANSFER, true);

    // Выполняем cURL-запрос. В этой переменной будет JSON-ответ от ВКонтакте
    $curl_result = curl_exec($CURL);

    // Закрываем соединение
    curl_close($CURL);

    То есть, если бы мне написали про то, что $upload_url не назначена, еще хрен с ним. Но отсутствие CURLFile - наводит на мысль, что я как-то неправильно вызываю cURL.
  • 06 июля 2017 г.
  • Мне тоже не нравится - всякую хрень типа заголовка сайта cURL парсить таки в состоянии, значит, в принципе, работает, но неправильно указаны параметры. Буду ковырять дальше.
  • 06 июля 2017 г.
  • 5.4, дай бог памяти. POST-запрос успешно удалось-таки сформировать, но на предложение отправить файл мне отвечают, что файл не найден (хотя он есть) - видимо, что-то не так в синтаксисе параметра "file", только нигде пока не нашел, что именно.
    К текущему моменту у меня что-то типа
    Код
    if (isset($_GET['code'])) {
    $result = false;
    global $APP_ID, $SECRET_APP, $URL;
    $params = array(
    'client_id' => $APP_ID,
    'client_secret' => $SECRET_APP,
    'code' => $_GET['code'],
    'redirect_uri' => $URL
    );
    $token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);

    // var_dump ($token);

    $ACCESS_TOKEN_test = $token['access_token'];

    echo '<br>';
    }

    if (isset ($ACCESS_TOKEN_test)){
    $ACCESS_TOKEN=$ACCESS_TOKEN_test;
    echo '<br>';
    } else {$ACCESS_TOKEN='none';}

    if ($ACCESS_TOKEN !== 'none') {
    $result = json_decode(file_get_contents('https://api.vk.com/method/photos.getMarketAlbumUploadServer?group_id='.$GROUP_ID.'&access_token='.$ACCESS_TOKEN.'&v=5.52'));
    $upload_url = $result-> response -> upload_url;
    echo $upload_url.'<br><br>';
    $ch = curl_init();

    $parameters = array('file' => '@http://sunnydogspb.ru/userfiles/shop/large/35_king-charlz-spaniel.jpg');

    // Ссылка, куда будем загружать картинку - это upload_url
    curl_setopt($ch, CURLOPT_URL, $upload_url);

    // Говорим cURL, что это POST-запрос
    curl_setopt($ch, CURLOPT_POST, true);

    // Говорим cURL, какие поля будем отправлять
    curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);

    // Говорим cURL, что нам нужно знать, что ответит сервер, к которому мы будем обращаться
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // Выполняем cURL-запрос. В этой переменной будет JSON-ответ от ВКонтакте
    $ch_result = curl_exec($ch);

    if ($ch_result === FALSE) {
    //Тут-то мы о ней и скажем
    echo "cURL Error " . curl_error($ch);
    return;
    }

    // Закрываем соединение
    curl_close($ch);

    var_dump ($ch_result);
    echo '<br>';
    echo '<br>';
    echo '<br>';
    }

    В ошибке выводит

    couldn't open file "'http://sunnydogspb.ru/userfiles/shop/large/35_king-charlz-spaniel.jpg'"
  • 07 июля 2017 г. , редакция: 1499378118
  • Слава Гуглю, покровителю мартышек от программирования! Да скомпиллирует он мои коды в молитвы богу Вишну. Короче, истина где-то тут http://phpfaq.ru/newbie/paths.
    В итоге, нужно писать вместо
    Код
    $parameters = array('file' => '@http://sunnydogspb.ru/userfiles/shop/large/35_king-charlz-spaniel.jpg');

    такое
    Код
    $parameters = array('file' => '@'.$_SERVER['DOCUMENT_ROOT'].'/userfiles/shop/large/35_king-charlz-spaniel.jpg');

    Тогда что-то работает.
  • 30 июня 2017 г.
  • Эм, не факт, во всяком случае в нынешнем состоянии - сопутствующие услуги к каждой позиции сейчас надо РУКАМИ, БЛДЖАД прицеплять, это раз. Два - сопутствующая услуга - это наценка, а не цена на конкретную позицию. По-моему, категории/характеристики больше подходят.
  • 24 июня 2017 г.
  • По-моему, тут про это
    https://user.diafan.ru/forum/show4072/#39019
    https://user.diafan.ru/forum/show4067/#38958
    Про фильтр по категории - надо найти в папке custom/название_темы/themes/название_шаблона_страницы.php (или как там оно называется) прикрепленного к странице поиска - скорее всего, это site.php; в этом файле найти строку типа
    Код
    <insert name="show_search" module="search" >
    и дописать в конце внутри треугольных скобок cat_id="all"; то есть, должно получиться что-то типа
    Код
    <insert name="show_search" module="search" cat_id="all">

    После этого в поиске должен появиться фильтр по категориям. Наверное.
Показывать по:

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум