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

Выведение товаров по 12 с возможностью дальнейшего просмотра

  • 30 марта 2019 г. , редакция: 30 марта 2019 г.
  • Был создан динамический блок Дополнительные принадлежности (Срины 1,2,3,4)
    В файле shop.view.id.php в папке custom\my\modules\shop\views\ есть такая запись (срин 5):

    //Дополнительные принадлежности (динамический блок)
    echo $this->htmleditor('<insert name="show_dynamic" module="site" id="1">');

    Что нужно дописать, чтобы выводилось по 12 товаров с возможностью дальнейшего просмотра при нажатии соответствующей кнопки?
    Например как показано на скринах 6 и 7?
  • 30 марта 2019 г.
  • Жаль, что никто не знает...
    • 30 марта 2019 г.
    • Многие знают, просто похожие темы появляются на форуме, поэтому многим уже просто не интересно на них отвечать.

      Если вы через блок товары выводите, на наберите в поиске яндексаШаблонные теги diafan. Cms.

      Вам надо добавить параметр count=12

      И подключить любой слайдер типа owl-courusel
  • 31 марта 2019 г.
  • Дописал:
    //Дополнительные принадлежности (динамический блок)
    echo $this->htmleditor('<insert name="show_dynamic" module="site" count="12" id="1">');

    Все равно показывает больше 12...
    • 31 марта 2019 г.
    • Не там поставили. Внутри динамического блока в коде
  • 31 марта 2019 г.
  • Кроме того, в каждой карточке товара выводится типа:
    <insert name="show_block" module="shop" count="50" images="1" ids="15456,15455">
    И, что, менять в каждой карточке на 12? Рехнуться можно...
  • 31 марта 2019 г.
  • А для чего тут вообще динамический блок? Почему сразу не вставили в шаблон, шаблонный тег?
  • 31 марта 2019 г.
  • Что сделано, то сделано... Если переделывать, то это - не подъемно... Как из того, что есть сделать по 12 с кнопкой Посмотреть еще?
    • 31 марта 2019 г.
    • Допиливать шаблонный тег. Шаблонный тег не выводит кнопку "посмотреть еще", этого нет в функционале.
  • 31 марта 2019 г.
  • Дмитрий!
    А что там прописать и в каком файле?
    • 31 марта 2019 г.
    • Файл shop.php, shop.model.php.
      Вероятность 1% что тут кто то подскажет что нужно прописать в этих файлах. Кнопка "показать еще" не предусмотрена для шаблонных тегов.

      Есть вариант выводить сразу все товары, поменять count на 99 к примеру, а через JS сделать типо кнопку показать еще, которая просто будет показывать плюс еще 12 товаров
      • 31 марта 2019 г.
      • Интересно насколько вырастет время загрузки страницы при таком варианте :)
      • 31 марта 2019 г.
      • Мне в поддержке сказали, что возможно... Но... Видимо, у меня руки не оттуда растут... Старый я уже для этого...
        • 31 марта 2019 г. , редакция: 31 марта 2019 г.
        • А есть более детальный ответ поддержки?
  • 31 марта 2019 г.
  • Мне сказали, что нужно прописывать в файлах, т.к.
    Цитата
    Данный модуль не входит в стандартный функционал DIAFAN.CMS, его делал кто-то из ваших разработчиков, поэтому мы не можем подсказать, где нужно произвести замену. Лучше уточните этот момент у своего специалиста.

    А так это делал я, то и спрашивать некого...
    • 31 марта 2019 г.
    • Развернутый ответ :)
      Это уже доработка. Стандартными средствами не реализовать.
      Либо искать другой способ(например просто ссылку на категорию, с текстом " Посмотреть все").
  • 31 марта 2019 г. , редакция: 31 марта 2019 г.
  • Посмотрите скрины... Как это может не быть функционалом DIAFAN.CMS, когда все сделано штатно?
    • 31 марта 2019 г.
    • То, что Вы сделали - это штатно.
      То, что Вы хотите - надо дорабатывать .
  • 25 апреля 2019 г. , редакция: 25 апреля 2019 г.
  • Вопрос решил.
    Добавил в файл shop.view.id.php строчку:
    Цитата
    //товары в разделе
    if (!empty($result["rows"]))
    {
    echo '<section class="shop-pane shop-pane-rel row row-flex">';
    echo $this->get('rows2','shop',$result);
    echo '</section>';

    if(count($result['rows']) > 12) {
    echo '<button class="btn btn-warning btn-visible-rel" type="button">'.$this->diafan->_('Показать ещё').'</button>';
    }
    }


    Может кому интересно будет...

  • 29 апреля 2019 г.
  • Единственно, что напрягает, так это то, что сначала выводится 12 товаров и кнопка "Посмотреть еще". Когда кликаешь ее, то сразу выводится сразу все остальные, а не добавляется следующая порция 12 товаров с выводом кнопки "Посмотреть еще"...
    Как можно это исправить? Есть ли у кого мысли по этому поводу?
    • 29 апреля 2019 г.
    • Как раз по дефолту при нажатии кнопки "Показать еще" будет выведено "следующая порция 12 товаров", а не как Вы говорите "сразу все остальные". Проверить можно на демонстрационном ресурсе http://demo.diafan.ru/ При этом отмеченные 12 товаров можно изменить на другое количество в настройках модуля "Интернет магазин".
      Цитата
      Как можно это исправить?
      Достаточно вернуть либо дефолтный код, либо проверить изменения кода, которые Вы (или кто-либо еще) внесли.
    • 29 апреля 2019 г.
    • У вас там сейчас на "показать еще" просто ссылка на следующую страницу. А должен быть обработчик подгрузки товаров со след страницы и их отображение. То есть - это переопределено у вас в шаблоне.
    • 29 апреля 2019 г.
    • Мысля только одна - вы либо удалили какой то класс либо блок с кнопкой обернули каким-то тегом...
  • 01 мая 2019 г. , редакция: 01 мая 2019 г.
  • Вернул, отключил, вносил изменения пошагово... Результат - тот же... Видимо что-то не так прописал:
    Цитата
    <li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">'.$this->diafan->_('Дополнительные принадлежности').'</a></li>
    </ul>


    <div class="tab-content">
    <div role="tabpanel" class="tab-pane active" id="home">';

    //полное описание товара
    echo ''.$this->htmleditor($result['text']).'';
    echo '</div>
    <div role="tabpanel" class="tab-pane" id="features">';
    //параметры товара
    if (!empty($result["param"]))
    {
    echo ''.$this->get('param', 'shop', array("rows" => $result["param"], "id" => $result["id"])).'';
    }
    echo '</div>
    <div role="tabpanel" class="tab-pane body" id="profile"><div style="display:table;width:100%">';
    //Дополнительные принадлежности (динамический блок)
    echo $this->htmleditor('<insert name="show_dynamic" module="site" count="120" id="1">');

    //товары в разделе

    if (!empty($result["rows"]))
    {
    echo '<section class="shop-pane shop-pane-rel row row-flex">';
    echo $this->get('rows2','shop',$result);
    echo '</section>';

    if(count($result['rows']) > 12) {
    echo '<button class="btn btn-warning btn-visible-rel" type="button">'.$this->diafan->_('Показать ещё').'</button>';


    }
    }

    Несколько дней мучений, а результат - нулевой...

Новости

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

Форум