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

fortuner

Хранитель порядка
Регистрация
26 Июн 2012
Сообщения
631
Реакции
1.241
Делимся полезными модификациями, хаками, допиленными модулями (или самописными) для Prestashop 1.7.
Предлагаю скопировать правила из темы модулей Prestashop, чтобы в теме было проще ориентироваться.
Правила:
1. Увидели чужую ошибку - исправьте :)
2. Запросы "а сделайте мне то-то" пожалуйста пишите в тему "Помощь с Prestashop".
3. Не спамьте, пусть раздел будет соответствовать своему названию :)
4. Не пишите "спасибо, должен навеки вечные!", просто нажмите "спасибо".
 
Подскажите, можно как то сделать всплывающие подсказки у текстур или цвета, как на 1.6, а то стоят маленькие иконки текстуры или цвета, а что за цвет или что за текстура не понятно?
 
Не работает. Как и большинства людей здесь Для просмотра ссылки Войди или Зарегистрируйся.
Вот мое решение, работает железобетонно:

Кнопка "купить" в категории товаров
В файле templates\catalog\_partials\miniatures\product.tpl в нужном месте добавить код.
Код:
            <div class="cart-buttons">
                <form action="{$urls.pages.cart}" method="post" class="form-product-listing-qty">
                    <input type="hidden" value="{$product.id_product}" name="id_product">

                    {* Вот эта строчка нужна *}
                    {if $static_token}<input type="hidden" name="token" value="{$static_token}">{/if}
                     {* Конец нужной строчки *}

                    <input
                        type="number"
                        class="input-group form-control product-listing-qty"
                        aria-label="{l s='Quantity' d='Shop.Theme.Actions'}"
                        value="1" min="1" name="qty">
                    <button
                        data-button-action="add-to-cart"
                        class="btn btn-primary"
                        aria-label="{l s='Add to cart' d='Shop.Theme.Actions'} {$product.name}"
                        title="{l s='Add to cart' d='Shop.Theme.Actions'} {$product.name}">
                        {l s='Add to cart' d='Shop.Theme.Actions'}
                    </button>
                </form>
            </div>
 
Подскажите, можно как то сделать всплывающие подсказки у текстур или цвета, как на 1.6, а то стоят маленькие иконки текстуры или цвета, а что за цвет или что за текстура не понятно?

Отвечу сам себе, что бы появились всплывающие подсказки при наведении курсора на цвет или текстуру надо по пути themes/ваша_тема/templates/catalog/_partials в файле product-variants.tpl добавить title в:
<li class="pull-xs-left input-container">

<li class="pull-xs-left input-container" title="{$group_attribute.name}">
 
Отвечу сам себе, что бы появились всплывающие подсказки при наведении курсора на цвет или текстуру надо по пути themes/ваша_тема/templates/catalog/_partials в файле product-variants.tpl добавить title в:
<li class="pull-xs-left input-container">
<li class="pull-xs-left input-container" title="{$group_attribute.name}">
Как во время! Второй день бьюсь, а оно вона как просто... у умных людей!
Проверено, работает.
 
убрать ссылку с последнего пункта breadcrumb (хлебные крошки)

в файл /themes/classic/templates/_partials/breadcrumb.tpl
я добавил следующий код:
Код:
{if $breadcrumb.count == $smarty.foreach.breadcrumb.iteration}
    <span itemprop="name">{$path.title}</span>
{else}
...
{/if}

в итоге получилось:
Код:
<nav data-depth="{$breadcrumb.count}" class="breadcrumb hidden-sm-down">
  <ol itemscope itemtype="http://schema.org/BreadcrumbList">
    {foreach from=$breadcrumb.links item=path name=breadcrumb}
      {block name='breadcrumb_item'}
        <li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
          {if $breadcrumb.count == $smarty.foreach.breadcrumb.iteration}
              <span itemprop="name">{$path.title}</span>
          {else}
              <a itemprop="item" href="{$path.url}">
                  <span itemprop="name">{$path.title}</span>
              </a>
          {/if}
          <meta itemprop="position" content="{$smarty.foreach.breadcrumb.iteration}">
        </li>
      {/block}
    {/foreach}
  </ol>
</nav>
 
убрать ссылку с последнего пункта breadcrumb (хлебные крошки)

в файл /themes/classic/templates/_partials/breadcrumb.tpl

А почему не тут: /controllers/front/ProductController.php
d67b0e28-838b-4eb3-a69e-e8c535e02319.png
 
А почему не тут: /controllers/front/ProductController.php
d67b0e28-838b-4eb3-a69e-e8c535e02319.png
1. Потому что изменение в контроллере затрется с обновлением, а в сторонней теме - нет.
2. Если убрать в контроллере, то тема будет сыпать ошибками в логи, что переменная не найдена, а ссылка наверняка останется, просто будет пустой тег a href="ничиво".
Кроме того, если тема стандартная, можно убрать галку "обновить тему" и не париться.
Можно написать оверрайд, но вы поняли из п.2 :)

Вообще изменять тему в престе - самое безопасное с точки зрения совместимости.
 
Добавление единицы измерения для товара через характеристики

Захотел указывать единицу измерения к каждому товару но нигде (поиск в интернет) не нашел нужной мне информации. Так как для меня это темный лес то, возможно, мыслю не стандартно для этой "темы")))

Итак, я вышел из этой ситуации следующим образом:
Добавил характеристику к товару с именем !Внутр (ед. изм.) и значением шт
Для того чтобы вывести её в любом месте сайта достаточно добавить код:
Код:
{foreach from=$product.features item=feature}
    {if $feature.name == '!Внутр (ед. изм.)' }
        {$feature.value}
    {/if}
{/foreach}

А для того чтобы данная характеристика не выводилась в карточке товара в блоке {block name='product_features'} нужно добавить следующий код в catalog/_partials/product-details.tpl:
Код:
{if $feature.name == '!Внутр (ед. изм.)'}
{else}
...
{/if}

Будет выглядеть так:
Код:
{foreach from=$product.grouped_features item=feature}
    {if $feature.name == '!Внутр (ед. изм.)'}
    {else}
        <dt class="name">{$feature.name}</dt>
        <dd class="value">{$feature.value|escape:'htmlall'|nl2br nofilter}</dd>
    {/if}
{/foreach}

единственное, данным способом не получилось вывести единицу измерения в /themes/classic/modules/ps_shoppingcart/modal.tpl но я особо с этим не заморачивался)

Надеюсь кому-то пригодится!
Но я не уверен, правильно ли так делать?))))))
 
Добавление единицы измерения для товара через характеристики

Захотел указывать единицу измерения к каждому товару но нигде (поиск в интернет) не нашел нужной мне информации. Так как для меня это темный лес то, возможно, мыслю не стандартно для этой "темы")))
Я делаю по другому, переопределяю уже готовые переменные но не используемые для товаров, и потом выводи как хочешь и где хочешь не нагружая лишним с минимум запросов и заморочек с кодом.
 
единицу измерения к каждому товару но нигде
То что Вы намудрили называется КОП -Костыльно Ориентированное программирование
1)В карточке товаре на вкладке ценообразование задаем единицу в штатном поле
1.jpg
2)в шаблоне /themes/classic/templates/catalog/_partials/product-prices.tpl
добавляем блок
2.jpg
3)результат
3.jpg
РЭТС?
 
Назад
Сверху