Модуль Полезные модификации 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
    Сообщения:
    559
    Симпатии:
    908
    Делимся полезными модификациями, хаками, допиленными модулями (или самописными) для Prestashop 1.7.
    Предлагаю скопировать правила из темы модулей Prestashop, чтобы в теме было проще ориентироваться.
    Правила:
    1. Увидели чужую ошибку - исправьте :)
    2. Запросы "а сделайте мне то-то" пожалуйста пишите в тему "Помощь с Prestashop".
    3. Не спамьте, пусть раздел будет соответствовать своему названию :)
    4. Не пишите "спасибо, должен навеки вечные!", просто нажмите "спасибо".
     
    deus_blr, zen1, _sashok и 8 другим нравится это.
  2. nebikoff

    nebikoff

    Регистр.:
    5 авг 2013
    Сообщения:
    383
    Симпатии:
    150
    Подскажите, можно как то сделать всплывающие подсказки у текстур или цвета, как на 1.6, а то стоят маленькие иконки текстуры или цвета, а что за цвет или что за текстура не понятно?
     
  3. fortuner

    fortuner

    Регистр.:
    26 июн 2012
    Сообщения:
    559
    Симпатии:
    908
    Вот мое решение, работает железобетонно:

    Кнопка "купить" в категории товаров
    В файле 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>
    
     
    corsik, DaoKakao, Belena27089 и 2 другим нравится это.
  4. nebikoff

    nebikoff

    Регистр.:
    5 авг 2013
    Сообщения:
    383
    Симпатии:
    150
    Отвечу сам себе, что бы появились всплывающие подсказки при наведении курсора на цвет или текстуру надо по пути 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}">
     
    Vadimuch, DaoKakao, aleksey_z и 2 другим нравится это.
  5. blakjocer

    blakjocer Создатель

    Регистр.:
    4 янв 2018
    Сообщения:
    15
    Симпатии:
    11
    Как во время! Второй день бьюсь, а оно вона как просто... у умных людей!
    Проверено, работает.
     
    _sashok нравится это.
  6. sklep00

    sklep00 Писатель

    Регистр.:
    14 ноя 2017
    Сообщения:
    6
    Симпатии:
    8
    убрать ссылку с последнего пункта 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>
     
    hitbaby, fortuner и _sashok нравится это.
  7. Socket_spb

    Socket_spb Постоялец

    Регистр.:
    16 апр 2015
    Сообщения:
    94
    Симпатии:
    109
    А почему не тут: /controllers/front/ProductController.php
    [​IMG]
     
    hitbaby и _sashok нравится это.
  8. fortuner

    fortuner

    Регистр.:
    26 июн 2012
    Сообщения:
    559
    Симпатии:
    908
    1. Потому что изменение в контроллере затрется с обновлением, а в сторонней теме - нет.
    2. Если убрать в контроллере, то тема будет сыпать ошибками в логи, что переменная не найдена, а ссылка наверняка останется, просто будет пустой тег a href="ничиво".
    Кроме того, если тема стандартная, можно убрать галку "обновить тему" и не париться.
    Можно написать оверрайд, но вы поняли из п.2 :)

    Вообще изменять тему в престе - самое безопасное с точки зрения совместимости.
     
    hitbaby, _sashok и DmitriyK нравится это.
  9. sklep00

    sklep00 Писатель

    Регистр.:
    14 ноя 2017
    Сообщения:
    6
    Симпатии:
    8
    Добавление единицы измерения для товара через характеристики

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

    Итак, я вышел из этой ситуации следующим образом:
    Добавил характеристику к товару с именем !Внутр (ед. изм.) и значением шт
    Для того чтобы вывести её в любом месте сайта достаточно добавить код:
    Код:
    {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 но я особо с этим не заморачивался)

    Надеюсь кому-то пригодится!
    Но я не уверен, правильно ли так делать?))))))
     
    Belena27089 и _sashok нравится это.
  10. Socket_spb

    Socket_spb Постоялец

    Регистр.:
    16 апр 2015
    Сообщения:
    94
    Симпатии:
    109
    Я делаю по другому, переопределяю уже готовые переменные но не используемые для товаров, и потом выводи как хочешь и где хочешь не нагружая лишним с минимум запросов и заморочек с кодом.
     
    _sashok нравится это.
  11. savvato

    savvato Кодер

    Регистр.:
    3 янв 2012
    Сообщения:
    490
    Симпатии:
    452
    То что Вы намудрили называется КОП -Костыльно Ориентированное программирование
    1)В карточке товаре на вкладке ценообразование задаем единицу в штатном поле
    1.jpg
    2)в шаблоне /themes/classic/templates/catalog/_partials/product-prices.tpl
    добавляем блок
    2.jpg
    3)результат
    3.jpg
    РЭТС?
     
    vitos1401, ded63, Anvar6120 и 6 другим нравится это.