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

fortuner

Хранитель порядка
Регистрация
26 Июн 2012
Сообщения
631
Реакции
1.238
Делимся полезными модификациями, хаками, допиленными модулями (или самописными) для Prestashop 1.7.
Предлагаю скопировать правила из темы модулей Prestashop, чтобы в теме было проще ориентироваться.
Правила:
1. Увидели чужую ошибку - исправьте :)
2. Запросы "а сделайте мне то-то" пожалуйста пишите в тему "Помощь с Prestashop".
3. Не спамьте, пусть раздел будет соответствовать своему названию :)
4. Не пишите "спасибо, должен навеки вечные!", просто нажмите "спасибо".
 
По моему заданию программист сделал возможным на сайте использовать 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}
*}
 
Раскрываем текущую категорию в дереве категорий - модуль 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>
Теперь дерево категорий будет раскрываться, показывая дочерние категории или соседние, если у текущей нет дочерних.
 
Доброго дня!

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

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

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

Подскажите пожалуйста можно ли стандартный фильтр настроить так, чтобы в него вернулся ползунок для выбора диапазона цен?
Конечно можно, но это не ко мне. Все проблемы со стандартным фильтром я решил с помощью 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;
        },
    });
});
90650b7e96.jpg

Теперь осталось немного подправить стили, и будет красота :)
Добавилось всего пять-шесть строчек. За это мне нравится 1.7
 

Вложения

  • searchbar.png
    searchbar.png
    57,3 KB · Просмотры: 27
Доброго дня!

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

Подскажите пожалуйста можно ли стандартный фильтр настроить так, чтобы в него вернулся ползунок для выбора диапазона цен?
разработчики знают об этой проблеме и обещают решить (правда уже очень давно) Для просмотра ссылки Войди или Зарегистрируйся
 
Здравствуйте!

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

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

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

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

нужно удалить и забыть вообще про каталог, в котором навигация постранично осуществляется по 1000 товаров )

... сорь, не обратил внимание, что речь про админку, подумал про фронт
 
Последнее редактирование:
нужно удалить и забыть вообще про каталог, в котором навигация постранично осуществляется по 1000 товаров )


Здравствуйте!

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

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

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

upload_2017-11-14_22-28-40.png
 
разговор же вроде про админку - так там в 1.7.2.4 до 300 штук на странице, для товаров одной категории этого вполне достаточно

Посмотреть вложение 89994

У меня максимум 100 товаров (см. скриншот). Даже если по 300 товаров, то по одной странице листать неудобно...

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

Вложения

  • img-2017-11-14-23-50-34.png
    img-2017-11-14-23-50-34.png
    10,7 KB · Просмотры: 37
Последнее редактирование:
Назад
Сверху