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

Вставить виджет в шаблон модуля shop

  • 07 августа 2012 г.
  • Возникла необходимость вставить блок с фильтром товаров <insert name="show_search" module="shop" cat_id="current"> в категорию магазина.

    Чтобы фильтр отображался над списком товаров, а не в сайдбаре.

    Если вставлять данный код в shop.view.list.php - получаем ошибку.

    Получается надо делать отдельный шаблон для подкатегорий или есть возможность как то вставить виджет в файл модуля?

    Помогите, пожалуйста.
    • 08 августа 2012 г.
    • Именно так. Нужен отдельный шаблон.
      • 08 августа 2012 г.
      • Не совсем удобен такой вариант. Но на крайний случай устроит.

        Попробуем пойти другим путем. Поэтому вопрос:
        <insert name="show_login" module="registration"> этот макрос выводит форму авторизации. Можно ли эту форму показывать только на определенных страницах? Есть ли возможность такое настроить в движке?

        В моем случае надо будет другую форму показывать только в дочерних рубриках (просто макрос с авторизацией под руку попался первым).
        • 09 августа 2012 г.
        • Ответ нет.
          Причина в том что в шаблонах PHP код не работает. По этойже причине был дан ответ нужен отдельный шаблон.
          • 09 августа 2012 г.
          • Во втором случае я спрашивал про настройку отображения блоков в движке, а не php файлах.

            Чтобы определенный блок можно было показывать только на определенных страницах....
  • 09 августа 2012 г.
  • С шаблоном проще всего, конечно. Страницу товаров оформляете и над show_body делаете
    Код
    <insert name="show_search" module="shop" only_shop="1">
    <insert name="show_body">

    В данном случае only_shop="1" - означает, что форма поиска будет показываться только когда посетитель в магазине. На других страницах сайта ее не будет.

    Можно обратиться из любой модели к любой функции, но это чуть сложнее, надо иметь навыки прграммирования. Шаблонный тег - это же обычная функция модуля, просто адаптированная для вызова из шаблона.

    Вызывать ее так: в функции list_category() пишете
    Код
    Customization::inc('modules/shop/shop.model.php');
    $model = new Shop_model($this->diafan);
    $result = $model->show_search($cat_id, $site_id);

    if (! $attributes["template"] || ! $this->diafan->_tpl->get('show_search_'.$attributes["template"], 'shop', $result))
    {
    $this->diafan->_tpl->get('show_search', 'shop', $result);
    }

    Затем готовите переменную
    Код
    $this->result['show_serach']=$this->show_search($cat_id,$site_id);

    для передачи во вью.

    Потом в view.list выводите содержимое.
    Код
    if(!empty($result['show_search])) $this->diafan->_tpl->get('show_search', 'shop', $result['show_search]);
    • 09 августа 2012 г.
    • Спасибо за ответ. Когда подойдем к данному пункту, попробуем разобраться.
    • 16 августа 2012 г.
    • only_shop="1" - это хорошо, но работает не совсем как надо мне.

      У меня каталог товаров, где есть рубрики и подрубрики.

      Цитата
      Например:

      - Бытовая техника
      --- Поливочное оборудование
      --- Минимойки
      --- Аппараты высокого давления


      В бытовой технике товаров нет, на странице с данной рубрикой выводится ее описание и подрубрики, где товары есть.

      Если прописать блок <insert name="show_search" module="shop" only_shop="1">, то он выводится абсолютно на всех страницах магазина, даже там где нет товаров.

      А хотелось бы, чтобы он выводился только в тех страницах, где товары есть. Такое возможно сделать?

      Цитата
      В демоверсии кстати в сайдбаре, при выборе всех разновидностей товаров галочками и указания цены от 0 до 10000 рублей, ничего не находит http://demo.cms.diafan.ru/shop/
      Хотя товары там есть по 3100 рублей.
      • 16 августа 2012 г.
      • Цитата
        А хотелось бы, чтобы он выводился только в тех страницах, где товары есть. Такое возможно сделать?
        Да можно-то все сделать...
        В функции show_search в modulesshopshop.php в строке 199 идет проверка $only_shop и безусловная остановка функции, если мы не на странице магазина.
        Передайте only_shop дальше, в модель
        $result = $model->show_search($cat_id, $site_id, $only_shop);
        Примите ее там в show_search, и если она есть, делайте запросик в БД, узнавая, есть ли товары в текущей категории. И если нет, то остановка.
        • 16 августа 2012 г.
        • Спасибо. А чего в демоверсии поиск по цене не работает?
    • 05 февраля 2013 г.
    • Если выводить так
      <insert name="show_search" module="shop" only_shop="1">
      <insert name="show_body">
      то и на странице с полным описание товара выводиться фильтр.
  • 16 августа 2012 г.
  • С блоком поиска есть проблемы. Прикладываю скриншоты:
    1. Страница категории. Здесь все нормально.
    2. Страница поиска, когда выбрано ограничение по мощности.
    3. Страница поиска, когда выбрано ограничение по цене.
    Почему-то сортировка по дополнительным характеристикам дублируется. При этом ссылки на фильтры по убыванию (например, по мощности разные).
    Цитата
    Одна ссылка по убыванию по мощности такая: localhost/shop/bytovaya-tekhnika/minimoyki/sort6/?action=search&catid=8&n=&a=&d=&pr1=0&pr2=0&p5_1=0&p5_2=1300


    Цитата
    Другая ссылка такая:
    localhost/shop/bytovaya-tekhnika/minimoyki/sort10/?action=search&catid=8&n=&a=&d=&pr1=0&pr2=0&p5_1=0&p5_2=1300
  • 20 августа 2012 г.
  • У кого-нибудь еще есть проблемы, как у меня на скриншоте?
    • 20 августа 2012 г.
    • я когда на локальный хост переношу у меня все подрят дублироваться начинает

Новости

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

Форум