Как показать второе изображение товара? PrestaShop 1.7.5.1

Мне нужно показать другое изображение обложки (второе или последнее, не важно, все, но не первое) только для определенного блока: ps_bestseller.

Единственное, что я нашел, это этот код: ссылка, но работает только для версии 1.6:

Это мой код по умолчанию:

{block name='product_thumbnail'}

    {if $product.cover}

      <a href="{$product.url}" class="thumbnail product-thumbnail">
        <img
          src = "{$product.cover.bySize.home_default.url}"
          alt = "{if !empty($product.cover.legend)}{$product.cover.legend}{else}{$product.name|truncate:30:'...'}{/if}"
          data-full-size-image-url = "{$product.cover.large.url}"
        >
      </a>
    {else}
      <a href="{$product.url}" class="thumbnail product-thumbnail">
        <img
          src = "{$urls.no_picture_image.bySize.home_default.url}"
        >
      </a>
    {/if}
  {/block}

Когда я пытаюсь отредактировать код, он возвращает пустую страницу. Любое предложение?


person GiulyM    schedule 23.05.2019    source источник


Ответы (1)


Создайте файл переопределения, который будет называться Link.php в override/classes/ со следующим содержимым:

<?php
use PrestaShop\PrestaShop\Core\Addon\Module\ModuleManagerBuilder;
use PrestaShop\PrestaShop\Adapter\SymfonyContainer;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use PrestaShop\PrestaShop\Core\Feature\TokenInUrls;

class Link extends LinkCore
{
    public function getLastImageLink($id_product, $product_name, $type = null) {
        $maxId = Db::getInstance()->getValue('SELECT id_image FROM `'._DB_PREFIX_.'image` WHERE id_product = '.(int)$id_product.'  ORDER BY position DESC');
        return $this->getImageLink($product_name, $id_product.'-'.$maxId, $type = null);
    }
}

Ensuite dans le tpl pour Appeler l'url de votre image mettez:

{$link->getLastImageLink($product.id, $product.name, 'large')}

С Уважением

person ethercreation    schedule 23.05.2019
comment
Спасибо! Я сделал, но эта часть {$link->getLastImageLink($product.id, $product.name, 'large')} не работает. Пустая страница как результат. Может потому что у меня v. 1.7.5.1 ... {if $product.cover} <a href="{$product.url}" class="thumbnail product-thumbnail"> <img src = "{$link->getLastImageLink($product.id, $product.name, 'large')}" alt = "{if !empty($product.cover.legend)}{$product.cover.legend}{else}{$product.name|truncate:30:'...'}{/if}" data-full-size-image-url = "{$product.cover.large.url}" - person GiulyM; 23.05.2019
comment
Попробуйте удалить папку var / cache и активировать ошибку с помощью {$ link- ›getLastImageLink ($ product.id_product, $ product.name, 'large')} - person ethercreation; 23.05.2019
comment
Вы в режиме отладки? - person Fanie Void; 27.05.2019
comment
Нет, я ошибся в параметре функции try: {$ link- ›getLastImageLink ($ product.id_product, 'test', 'large')} - person ethercreation; 28.05.2019