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

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

  • 07 июня 2017 г.
  • Вам нужно отредатировать файлы тем в папке themes. Там где-нибудь внизу перед закрывающем тегом body вставить java script код, который скопируете в Вашем онлайн консультанте.
  • 06 июня 2017 г.
  • К "простым" страницам которые без модуля рейтинг подключить увы нельзя (без сильно квалифицированного вмешательства).
    Denis (Drachoon) правильно говорит. Скорее всего оцениваемые страницы у вас в рамках какого-то логически общего раздела сайта. Тогда можно новостями или статьями реализовать. Выпилить из шаблона все не нужное и будет норм.
  • 07 июня 2017 г. , редакция: 1496834345
  • Можете еще тут опубликовать https://www.diafan.ru/solutions/ чтобы вообще в анналы решений :)

    Вы кстати делая интеграцию со сфинском какие технические цели преследовали на проекте какого масштаба поделитесь пожалуйста.
  • 07 июня 2017 г.
  • Без танцев видимо не обойтись. Пилите файл feedback.action.php - и там где нужный кусочек который делает send_mail - делайте include_once plugins/class.phpmailer.php - и уже его методами формируйте письмо с аттачем
  • 27 октября 2019 г.
  • Ну вот с балды кейс: например хочу я сдать POST запрос на сайт и получать JSON-чик с выборкой товаров отфильтрованных по хар-кам :)
  • 31 марта 2017 г.
  • Здравствуйте коллеги! Немножно страдает матчасть на тему кеширования. Вот у нас в хтаксессе следующая конструкция
    Код


    <IfModule mod_expires.c>
    <filesMatch ".(flv|woff|woff2|eot|svg|otf|ttf|gif|jpg|jpeg|png|ico|swf|js|css|pdf|ico)$">
    ExpiresActive On
    ExpiresDefault "access plus 11 month"
    </filesMatch>
    </IfModule>


    Понимаю что звучит вопрос достаточно глупо.
    Это значит, что следующие типы файлов закешируются в браузере на 11 мес у клиента? А если я CSS изменю, как веб сервер и клиентский браузер узнают что пора бы его в кеше обновить?
  • 31 марта 2017 г.
  • {SHOP_PARAM} - Хаьки
    В {SHOP_PARAM_SELECT} - сами значения харьков типа "список"
    В {SHOP_PARAM_ELEMENT} - строковые значения харьков а так же ID харьков типа список из {SHOP_PARAM_SELECT}

    Если не очень дружите с SQL могу написать готовый запрос. Удачи!
  • 10 марта 2017 г. , редакция: 1489153092
  • Как вариант можно в шаблон формы захардкодить hidden поле и туда в шаблоне выводить какую то метку формы, а в обработчике проверять эту метку и делать редирект в зависимости от этой метки. Например как-то в этом роде:
    Код

    шаблон формы:
    <input name="form_id" hidden="true" value="form1" />

    обработчик:
    if ($_POST['form_id'] == 'form1') {
    $this->result["redirect"] = редирект с первой формы;
    } else {
    $this->result["redirect"] = редирект по умолчанию;
    }
    return;
  • 28 февраля 2017 г.
  • Если в индексе УЖЕ страницы без закрывающего слеша - то в настройках админки отключить атоматическое добавление закрывающего слеша и в .htaccess добавить редирект со страниц с зарывающим слешом, на те-же но без закрывающего.
  • 25 февраля 2017 г.
  • Как добавить к шаблонному тегу show_block module="shop" аргумент, чтобы он выводил только товары, которые есть в наличии, про том, что в настройках товара не стоит галка "показывать только те товары что есть в наличии" т.е. в листинге товаров у нас будут все товары, а show_block - можно будет настроить чтобы она показывала только то, что есть в наличии?

    Допустим у нас будет что-то вроде <insert name="show_block" module="shop" images="1" count="4" sort="rand" in_stock="true">
    Где *in_stock="true"* - выводить только то что есть в наличии.

    Правим любо используем частичную кастомизацию файла */modules/shop/shop.php*
    В нем правим функцию *public function show_block* где добавляем булевый аргумент in_stock. Заменяем первый блок кода на:

    Код


    $attributes = $this->get_attributes($attributes, 'count', 'site_id', 'cat_id', 'brand_id', 'sort', 'images', 'images_variation', 'param', 'hits_only', 'action_only', 'new_only', 'discount_only', 'only_module', 'only_shop', 'tag', 'template', 'in_stock');

    $count = $attributes["count"] ? intval($attributes["count"]) : 3;
    $site_ids = explode(",", $attributes["site_id"]);
    $cat_ids = explode(",", $attributes["cat_id"]);
    $brand_ids = explode(",", $attributes["brand_id"]);
    $sort = in_array($attributes["sort"], array("date", "rand", "price", "sale")) ? $attributes["sort"] : "";
    $images = intval($attributes["images"]);
    $images_variation = $attributes["images_variation"] ? strval($attributes["images_variation"]) : 'medium';
    $param = $attributes["param"];
    $hits_only = (bool) $attributes["hits_only"];
    $action_only = (bool) $attributes["action_only"];
    $new_only = (bool) $attributes["new_only"];
    $discount_only = (bool) $attributes["discount_only"];
    $tag = $attributes["tag"] && $this->diafan->configmodules('tags', 'shop') ? strval($attributes["tag"]) : '';
    $in_stock = (bool) $attributes["in_stock"];


    теперь функция может принимать аргумент in_stock и мы идем править модельку shop.model.php
    Там правим public function show_block
    Делаем чтобы она сама могла принимать наш новый аргумент in_stock:

    Код
    public function show_block($count, $site_ids, $cat_ids, $brand_ids, $sort, $images, $images_variation, $param, $hits_only, $action_only, $new_only, $discount_only, $tag, $in_stock)


    Далее правим коды mysql запросов:
    ищем
    Код
    $max_count = DB::query
    и правим блок кода на:

    Код


    $max_count = DB::query_result("SELECT COUNT(DISTINCT e.id) FROM {shop} as e"
    .$inner
    .($discount_only ? " INNER JOIN {shop_price} AS pr ON pr.good_id=e.id AND pr.trash='0'"
    ." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
    ." AND pr.currency_id=0"
    ." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
    ." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
    : '')
    .($this->diafan->configmodules('where_access_element', 'shop') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
    .($this->diafan->configmodules('hide_missing_goods', 'shop') && $this->diafan->configmodules('use_count_goods', 'shop') || $in_stock ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
    ." WHERE e.[act]='1' AND e.trash='0'"
    .$where
    .($this->diafan->_site->module == 'shop' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
    .($hits_only ? " AND e.hit='1' " : "")
    .($action_only ? " AND e.action='1' " : "")
    .($new_only ? " AND e.new='1' " : "")
    .($discount_only ? " AND pr.discount_id>0" : "")
    .($this->diafan->configmodules('where_period_element', 'shop') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
    .($this->diafan->configmodules('where_access_element', 'shop') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
    .($this->diafan->configmodules('hide_missing_goods', 'shop') ? " AND e.no_buy='0'" : ""),
    $values
    );



    далее ищем место где начинается
    Код
    foreach ($rands as $rand)
    {
    $rows = DB::query_fetch_all..`


    и правим блок кода чтобы получилось:
    Код


    $rows = DB::query_fetch_all("SELECT e.id, e.[name], e.[anons], e.timeedit, e.site_id, e.brand_id, e.no_buy, e.article,
    e.[measure_unit], e.hit, e.new, e.action, e.is_file".($sort == "sale" ? ", COUNT(g.id) AS count_sale" : "")."
    FROM {shop} AS e"
    . ($sort == "sale" ? " INNER JOIN {shop_order_goods} AS g ON g.good_id=e.id AND g.trash='0'" : '')
    . ($sort == "price" || $discount_only ? " INNER JOIN {shop_price} AS pr ON pr.good_id=e.id AND pr.trash='0'"
    ." AND pr.date_start<=".time()." AND (pr.date_start=0 OR pr.date_finish>=".time().")"
    ." AND pr.currency_id=0"
    ." AND pr.role_id".($this->diafan->_users->role_id ? " IN (0,".$this->diafan->_users->role_id.")" : "=0")
    ." AND (pr.person='0'".($this->person_discount_ids ? " OR pr.discount_id IN(".implode(",", $this->person_discount_ids).")" : "").")"
    : '')
    .$inner
    .($this->diafan->configmodules('where_access_element', 'shop') ? " LEFT JOIN {access} AS a ON a.element_id=e.id AND a.module_name='shop' AND a.element_type='element'" : "")
    .($this->diafan->configmodules('hide_missing_goods', 'shop') && $this->diafan->configmodules('use_count_goods', 'shop') || $in_stock ? " INNER JOIN {shop_price} AS prh ON prh.good_id=e.id AND prh.count_goods>0" : "")
    ." WHERE e.[act]='1' AND e.trash='0'"
    .($this->diafan->_site->module == 'shop' && $this->diafan->_route->show ? " AND e.id<>".$this->diafan->_route->show : '')
    .($hits_only ? " AND e.hit='1' " : "")
    .($action_only ? " AND e.action='1' " : "")
    .($new_only ? " AND e.new='1' " : "")
    .($discount_only ? " AND pr.discount_id>0" : "")
    .$where
    .($this->diafan->configmodules('where_period_element', 'shop') ? " AND e.date_start<=".$time." AND (e.date_finish=0 OR e.date_finish>=".$time.")" : '')
    .($this->diafan->configmodules('where_access_element', 'shop') ? " AND (e.access='0' OR e.access='1' AND a.role_id=".$this->diafan->_users->role_id.")" : '')
    .($this->diafan->configmodules('hide_missing_goods', 'shop') ? " AND e.no_buy='0'" : "")
    ." GROUP BY e.id"
    .$order
    .' LIMIT '
    .($sort == "rand" ? $rand : 0).', '
    .($sort == "rand" ? 1 : $count), $values);
    $this->result["rows"] = array_merge($this->result["rows"], $rows);



    жирным пометил то, что добавилось.

    Всем хорошего настроения :)

Новости

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

Форум