Модуль Полезные модификации Prestashop 1.7

Тема в разделе "PrestaShop", создана пользователем fortuner, 25 окт 2017.

Информация :
Приветствую гость, обрати внимание! Темы которые закреплены в разделах, в скором времени будут откреплены. Правила раздела PrestaShop

(Не актуальные темы) Каталоги:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
(Не актуальные темы) Поиск / Запросы:Модули PrestaShop 1.7Модули PrestaShop 1.5 - 1.6Шаблоны PrestaShop 1.7Шаблоны PrestaShop 1.5 - 1.6
Полезная информация:Поддержка и помощь c PrestaShopУбираем ПрестаТраст, стучалки и прочую рекламуСовместные покупки модулей и шаблоновПеревод Prestashop и модулей
Модераторы: trace
  1. fortuner

    fortuner

    Регистр.:
    26 июн 2012
    Сообщения:
    550
    Симпатии:
    863
    Делимся полезными модификациями, хаками, допиленными модулями (или самописными) для Prestashop 1.7.
    Предлагаю скопировать правила из темы модулей Prestashop, чтобы в теме было проще ориентироваться.
    Правила:
    1. Увидели чужую ошибку - исправьте :)
    2. Запросы "а сделайте мне то-то" пожалуйста пишите в тему "Помощь с Prestashop".
    3. Не спамьте, пусть раздел будет соответствовать своему названию :)
    4. Не пишите "спасибо, должен навеки вечные!", просто нажмите "спасибо".
     
    deus_blr, zen1, _sashok и 8 другим нравится это.
  2. DmitriyK

    DmitriyK Постоялец

    Регистр.:
    17 июн 2015
    Сообщения:
    133
    Симпатии:
    134
    По моему заданию программист сделал возможным на сайте использовать 3 вида карточки товара, используя в админке окно артикула (туда вводим порядковый номер шаблона карточки). На вопросы ответить не смогу, разбирайтесь как есть.
    Код:
    \themes\lваша_тема\templates\catalog\

    1. добавление управления видами по артикулу товара ($product.reference)
    product.tpl

    {block name='content'}
    {if $product.reference==2} {include file='catalog/product_2.tpl'}
    {elseif $product.reference==3} {include file='catalog/product_3.tpl'}
    {else} {$product.reference} {include file='catalog/product_1.tpl'}
    {/if}
    {/block}


    2. Три шаблона для видов:
    product_1.tpl, product_2.tpl, product_3.tpl


    3. добавление скрипта к виду 2

    <script type="text/javascript">
    var ct = document.getElementById('ct');
    var ct_matrix = document.getElementById('ct_matrix');
    var parent_ct = ct.parentNode;
    parent_ct.insertBefore(ct_matrix, ct);
    </script>


    4. Удаление вывода кода товара

    product-details.tpl

    {*
    {if isset($product.reference_to_display)}
    <div class="product-reference">
    <label class="label">{l s='Reference' d='Shop.Theme.Catalog'} </label>
    <span itemprop="sku">{$product.reference_to_display}</span>
    </div>
    {/if}
    *}
     
    Kolfg, p2rcoder, Anvar6120 и 4 другим нравится это.
  3. fortuner

    fortuner

    Регистр.:
    26 июн 2012
    Сообщения:
    550
    Симпатии:
    863
    Раскрываем текущую категорию в дереве категорий - модуль ps_categorytree
    Спросили здесь
    В настройках модуля поставить "Отображать главную категорию", чтобы отображалось все дерево категорий
    В файле
    \themes\classic\modules\ps_categorytree\views\templates\hook\ps_categorytree.tpl
    Изменить две строчки: 39 и 50
    Полный код файла, можно ctrl+c - ctrl-v:
    Код:
    {function name="categories" nodes=[] depth=0}
      {strip}
        {if $nodes|count}
          <ul class="category-sub-menu">
            {foreach from=$nodes item=node}
              <li data-depth="{$depth}">
                {if $depth===0}
                  <a href="{$node.link}">{$node.name}</a>
                  {if $node.children}
                    <div class="navbar-toggler collapse-icons" data-toggle="collapse" data-target="#exCollapsingNavbar{$node.id}">
                      <i class="material-icons add">&#xE145;</i>
                      <i class="material-icons remove">&#xE15B;</i>
                    </div>
                    {* Раскрываем текущую категорию, если у нее есть дочерние *}
                    <div class="collapse{if ($category.id|intval) ge ($node.id|intval)} in{/if}" id="exCollapsingNavbar{$node.id}">
                      {categories nodes=$node.children depth=$depth+1}
                    </div>
                  {/if}
                {else}
                  <a class="category-sub-link" href="{$node.link}">{$node.name}</a>
                  {if $node.children}
                    <span class="arrows" data-toggle="collapse" data-target="#exCollapsingNavbar{$node.id}">
                      <i class="material-icons arrow-right">&#xE315;</i>
                      <i class="material-icons arrow-down">&#xE313;</i>
                    </span>
                    {* Раскрываем родительскую категорию, если находимся в дочерней *}
                    <div class="collapse{if ($node.id|intval eq $category.id_parent|intval) or ($node.id|intval eq $category.id|intval)}  in{/if}" id="exCollapsingNavbar{$node.id}">
                      {categories nodes=$node.children depth=$depth+1}
                    </div>
                  {/if}
                {/if}
              </li>
            {/foreach}
          </ul>
        {/if}
      {/strip}
    {/function}
    
    <div class="block-categories hidden-sm-down">
      <ul class="category-top-menu">
        <li><a class="text-uppercase h6" href="{$categories.link nofilter}">{$categories.name}</a></li>
        <li>{categories nodes=$categories.children}</li>
      </ul>
    </div>
    Теперь дерево категорий будет раскрываться, показывая дочерние категории или соседние, если у текущей нет дочерних.
     
    salbar, Kolfg, p2rcoder и 2 другим нравится это.
  4. ВасилийК

    ВасилийК Постоялец

    Регистр.:
    22 авг 2017
    Сообщения:
    54
    Симпатии:
    54
    Доброго дня!

    Вопрос касается фильтра и того как он предлагает выбирать интервалы цен. В версии PS 1.6 был ползунок, который логичный и привычный многим. В PS 1.7 Фильтрацию по цене предлагается делать путём выбора интервалом, причём пока не разобрался каким образом они выбираются, потому как появляется куча строчек с совсем некруглыми значениями.

    Подскажите пожалуйста можно ли стандартный фильтр настроить так, чтобы в него вернулся ползунок для выбора диапазона цен?
     
    _sashok нравится это.
  5. fortuner

    fortuner

    Регистр.:
    26 июн 2012
    Сообщения:
    550
    Симпатии:
    863
    Конечно можно, но это не ко мне. Все проблемы со стандартным фильтром я решил с помощью Advanced Search 4 :)

    Вот еще одна плюшка - добавляем картинку, цену и наличие в Аякс-поиск
    В файле
    \modules\ps_searchbar\ps_searchbar.js
    Заменить целиком на это:
    Код:
    $(document).ready(function () {
        var $searchWidget = $('#search_widget');
        var $searchBox    = $searchWidget.find('input[type=text]');
        var searchURL     = $searchWidget.attr('data-search-controller-url');
    
        $.widget('prestashop.psBlockSearchAutocomplete', $.ui.autocomplete, {
            _renderItem: function (ul, product) {
                var line = $("<li>")
                    .append($("<a>").addClass("searchLine")
                        .append('<img src="'+product.cover.small.url+'" class="searchImg">') // Добавляем картинку
                        .append($("<div>").addClass("searchDescription") // Это блок со всеми остальными данными товара
                            .append($("<p>").html(product.name).addClass("searchProductname")) // Имя товара
                            .append($("<p>").html(product.price).addClass("searchPrice")) // Цена
                            .append($("<p>").html(product.availability_message).addClass("searchAvailability")) // Наличие
                            )
                    ).appendTo(ul);
                return line;
            }
        });
    
        $searchBox.psBlockSearchAutocomplete({
            source: function (query, response) {
                $.post(searchURL, {
                    s: query.term,
                    resultsPerPage: 10
                }, null, 'json')
                .then(function (resp) {
                    response(resp.products);
                })
                .fail(response);
            },
            select: function (event, ui) {
                var url = ui.item.url;
                window.location.href = url;
            },
        });
    });
    
    [​IMG]
    Теперь осталось немного подправить стили, и будет красота :)
    Добавилось всего пять-шесть строчек. За это мне нравится 1.7
     

    Вложения:

    • searchbar.png
      searchbar.png
      Размер файла:
      57,3 КБ
      Просмотров:
      16
    Belena27089, mr.stitch, Kolfg и 6 другим нравится это.
  6. DmitriyK

    DmitriyK Постоялец

    Регистр.:
    17 июн 2015
    Сообщения:
    133
    Симпатии:
    134
    разработчики знают об этой проблеме и обещают решить (правда уже очень давно) http://forge.prestashop.com/browse/BOOM-2910
     
    Kolfg, subway и _sashok нравится это.
  7. ВасилийК

    ВасилийК Постоялец

    Регистр.:
    22 авг 2017
    Сообщения:
    54
    Симпатии:
    54
    Здравствуйте!

    Оборужил такой неудобный момент в навигации среди товаров бэкофиса... отсутствует полоса с выбором страниц вывода продуктов, максимально выводится по 100 продуктов. В PS 1.6 можно было выводить до 1000 товаров. Здесь в каталоге с несколькими тысячами товаров, навигапция по каталогу становится неудобной и долгой.

    Возможно ли увеличить количество выводимых товаров или настроить панель навигации похжей на PS 1.6?
     
  8. p2rcoder

    p2rcoder

    Регистр.:
    16 июл 2012
    Сообщения:
    315
    Симпатии:
    141
    нужно удалить и забыть вообще про каталог, в котором навигация постранично осуществляется по 1000 товаров )

    ... сорь, не обратил внимание, что речь про админку, подумал про фронт
     
    Последнее редактирование: 15 ноя 2017
  9. _sashok

    _sashok PrestaShop Expert

    Регистр.:
    15 июл 2011
    Сообщения:
    1.892
    Симпатии:
    3.019

    разговор же вроде про админку - так там в 1.7.2.4 до 300 штук на странице, для товаров одной категории этого вполне достаточно

    upload_2017-11-14_22-28-40.png
     
    p2rcoder нравится это.
  10. ВасилийК

    ВасилийК Постоялец

    Регистр.:
    22 авг 2017
    Сообщения:
    54
    Симпатии:
    54
    У меня максимум 100 товаров (см. скриншот). Даже если по 300 товаров, то по одной странице листать неудобно...

    Если это не настраивается, юзабилити конечно никакое((
     

    Вложения:

    Последнее редактирование: 14 ноя 2017
    _sashok нравится это.