Вывод второго изображения в слайдере?

Как сделать вывод второго изображения продукта в слайдере на главной?

Тема: default 3

Пытаюсь сделать, как описано в теме https://www.shop-script.ru/help/22/otobrazhenie-pr...

---------------home.html----------------------
{$_product = $wa->shop->product($p.id)}
{$product_image_ids = array_keys($_product.images)}
{$slider_image = $_product.images[$product_image_ids[1]]}
{$p.image_id = $slider_image.id}
{$p.ext = $slider_image.ext}                                     
  
{$wa->shop->productImgHtml($p, '0x320', ['itemprop' => 'image', 'alt' => $p.name, 'default' => "`$wa_theme_url`img/dummy200.png"])}

Но в слайдере картинка не выводится. Вероятно это связано с тем, что используются оригинальные (ЧПУ) имена файлов изображений. Изменения вносились согласно этой темы: https://www.shop-script.ru/help/4442/shopscript610...


Чтобы выводилось второе изображение нужно, чтобы использовалась картинка по такому адресу:

/wa-data/public/shop/products/55/00/55/images/124/название картинки-01.0x320.jpg

а в результате у меня получается вот (т.е. подпапка с картинкой — правильная, а название файла — как у первого изображения товара):

/wa-data/public/shop/products/55/00/55/images/124/название картинки.0x320.jpg


Можно ли все таки сделать так, чтобы в слайдер попадала вторая картинка из загруженных в товар?

3 ответа

  • 2

    https://www.shop-script.ru/help/22/otobrazhenie-pr...

    Эта инструкция 100% рабочая. Убедитесь что вы вставили код из инструкции в нужное место.
    см. кусок кода ниже

                    {* featured promo PRODUCTS on slider *}
    
                    {if $promoproducts && count($promoproducts)}
                        <ul class="homepage-bxslider">
                            {foreach $promoproducts as $p}
                              {$_product = $wa->shop->product($p.id)}
                              {$product_image_ids = array_keys($_product.images)}
                              {$slider_image = $_product.images[$product_image_ids[1]]}
                              {$p.image_id = $slider_image.id}
                              {$p.ext = $slider_image.ext}
    
  • 1
    samael.ID@gmail.com 2 апреля 2016 11:12 #

    Николай, большое спасибо за ответ.

    Проверил гипотезы, что вторая картинка не отображается из-за того что у меня названия файлов картинок не номер_присвоеный_webasyst.jpg, а название картинки.jpg.

    После снятия галочки "Использовать исходные имена файлов", все работает, как и должно.


    Можно ли как нибудь сделать так, чтобы были и включены исходные имена, и работал вывод второго изображения?



  • 1
    samael.ID@gmail.com 2 апреля 2016 11:37 #

    Недоработка определенно в том куске кода.

    Попытаюсь написать подробнее. Товар называется ИЗДЕЛИЕ. Файлы картинок к нему называются ИЗДЕЛИЕ.jpg, ИЗДЕЛИЕ-01.jpg, ИЗДЕЛИЕ-02.jpg и т.д.


    Эскизы генерируются и сохраняются по следующим адресам (при включенном "Использовать исходные имена файлов"):
    1-ое изображение с оригинальным именем файла в папку .../images/59/

    <img itemprop="image"  src="/wa-data/public/shop/products/55/00/55/images/59/ИЗДЕЛИЕ.0x320.jpg">

    2-ое изображение с оригинальным именем файла в папку .../images/124/

    <img itemprop="image"  src="/wa-data/public/shop/products/55/00/55/images/124/ИЗДЕЛИЕ-01.0x320.jpg">

    В результате кода, данного разработчиками, выводится 2-ое изображение следующим кодом:

    <img itemprop="image" src="/wa-data/public/shop/products/55/00/55/images/124/ИЗДЕЛИЕ.0x320.jpg">

    Я вижу, что папка берется верная (.../images/124/), но название файла неправильное. (это эскиз первой картинки)


    Если отключить оригинальные названия файлов, то все получается:

    1 изображение

    <img itemprop="image"  src="/wa-data/public/shop/products/55/00/55/images/59/59.750.jpg">

    2-ое изображение

    <img itemprop="image"  src="/wa-data/public/shop/products/55/00/55/images/124/124.0x320.jpg">

    Возможно просто нужно добавить какие то строчки в код, чтобы была правильная ссылка. Сейчас этот кусок выглядит вот так:

    {if $theme_settings.homepage_bxslider_mode == 'products'}                                   
                                              
           {$_product = $wa->shop->product($p.id)}
           {$product_image_ids = array_keys($_product.images)}
           {$slider_image = $_product.images[$product_image_ids[1]]}
           {$p.image_id = $slider_image.id}
           {$p.ext = $slider_image.ext}
           {$wa->shop->productImgHtml($p, '0x320', ['itemprop' => 'image', 'alt' => $p.name, 'default' => "`$wa_theme_url`img/dummy200.png"])}
                                                     
    {/if}




Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите