Как вывести ссылку на изображения товаров? Есть решение

Именно ссылку изоображения, Мне нужно сделать такой вид ссылок например в файле шаблона products.html

data-src="ссылка на изоображение"

а не так как сейчас

src="ссылка на изоображение"

Это для ленивой загрузки фото в мобильной версии.

2 ответа

  • 3
    Леонид Вакуленко Webasyst 27 января 2015 06:14 # Решение

    Вот такая штука возвращает URL до картинки:

    {shopImage::getUrl(['product_id' => $product.id, 'id' => $image.id, 'ext' => $image.ext], '96x96')}

    • +1
      Zcorpx Zcorpx 27 января 2015 06:34 #

      {foreach $cart.items as $item}

      <!-- cart item -->

      <div class="row" data-id="{$item.id}">

      <div class="col w1 item-thumb"><a href="{$wa->shop->productUrl($item.product)}" title="{$item.product.name|escape}"><img data-src="{shopImage::getUrl(['product_id' => $product.id, 'id' => $image.id, 'ext' => $image.ext], '96x96')}" class="lazyload">


      Здесь не работает: Получаются все ссылки такие data-src="/wa-data/public/shop/products/00/00//images//.96x96."

    • +1
      Zcorpx Zcorpx 27 января 2015 06:35 #

      {foreach $cart.items as $item}

      <!-- cart item -->

      <div class="row" data-id="{$item.id}">

      <div class="col w1 item-thumb"><a href="{$wa->shop->productUrl($item.product)}" title="{$item.product.name|escape}"><img data-src="{shopImage::getUrl(['product_id' => $product.id, 'id' => $image.id, 'ext' => $image.ext], '96x96')}" class="lazyload">


      Здесь не работает: Получаются все ссылки такие data-src="/wa-data/public/shop/products/00/00//images//.96x96."

    • +1
      Zcorpx Zcorpx 27 января 2015 06:39 #

      {foreach $cart.items as $item}

      <!-- cart item -->

      <div class="row" data-id="{$item.id}">

      <div class="col w1 item-thumb"><a href="{$wa->shop->productUrl($item.product)}" title="{$item.product.name|escape}"><img data-src="{shopImage::getUrl(['product_id' => $product.id, 'id' => $image.id, 'ext' => $image.ext], '96x96')}" class="lazyload">


      Здесь не работает: Получаются все ссылки такие data-src="/wa-data/public/shop/products/00/00//images//.96x96."

      • +1

        Вы же спрашивали про products.html :)

        В cart.html сработает $item.product.id, $item.product.image_id, $item.product.ext вместо $product.id, $image.id, $image.ext соответственно.

        • +1
          Zcorpx Zcorpx 27 января 2015 07:20 #

          {shopImage::getUrl(['product_id' => item.product.id, 'id' => $item.product.image_id, 'ext' => $item.product.ext], '96x96')}

          Выводит ошибку

          {shopImage::getUrl(['product_id' =&gt; item.product.id, 'id' =&gt; $item.product.image_id, 'ext' =&gt; $item.product.ext], '96x96')}&quot; class=&quot;lazy&gt;&quot; - Unexpected &quot;.&quot;, expected one of: &quot;&quot;,&quot;&quot; , &quot;]&quot;


    • +1
      Zcorpx Zcorpx 27 января 2015 09:00 #

      Сделала так:

      {$wa->shop->productImgUrl($p, '200', ['itemprop' => 'image', 'alt' => $p.name, 'default' => "`$wa_theme_url`img/dummy200.png"])}

      Но, всё равно не выводит стандартное изображение если у товара изображение отсутствует. Почему?

      • +1

        Рискну предположить, что в теме дизайна нет файла img/dummy200.png ?

        • +1
          Zcorpx Zcorpx 27 января 2015 09:22 #

          Не выводится ссылка, просто пустое место!

          • +1

            Видимо, в переменной $p ничего нет (null). А должны быть данные о продукте. Где вы это используете?

            Посмотреть, что лежит в переменной, можно так: {wa_dumpc($p)}

            • +1
              Zcorpx Zcorpx 27 января 2015 09:32 #

              Array

              (

              id =&gt; '1403'

              id_1c =&gt; NULL

              name =&gt; 'Товар3897'

              summary =&gt; ''

              meta_title =&gt; ''

              meta_keywords =&gt; 'Товар3897'

              meta_description =&gt; ''

              description =&gt; ''

              contact_id =&gt; '1'

              create_datetime =&gt; '2015-01-02 05:03:01'

              edit_datetime =&gt; NULL

              status =&gt; '1'

              type_id =&gt; '76'

              image_id =&gt; '1346'

              sku_id =&gt; '1403'

              ext =&gt; 'jpg'

              url =&gt; '502'

              rating =&gt; 0

              price =&gt; 42900

              compare_price =&gt; 0

              currency =&gt; 'RUB'

              min_price =&gt; 42900

              max_price =&gt; 42900

              tax_id =&gt; NULL

              count =&gt; NULL

              cross_selling =&gt; NULL

              upselling =&gt; NULL

              rating_count =&gt; '0'

              total_sales =&gt; 0

              category_id =&gt; '5'

              badge =&gt; ''

              sku_type =&gt; '0'

              base_price_selectable =&gt; 0

              compare_price_selectable =&gt; '0.0000'

              purchase_price_selectable =&gt; '0.0000'

              sku_count =&gt; '1'

              frontend_url =&gt; '/502/'


              Использую в файле: list-thumbs.html

              <img data-src="{$wa->shop->productImgUrl($p, '200', ['itemprop' => 'image', 'default' => "`$wa_theme_url`img/dummy200.png"])}" class="lazy">

            • +1
              Zcorpx Zcorpx 27 января 2015 09:33 #

              Все картинки каждого товара выводит, но у тех товаров у которых нет картинок вместо ссылки просто пустая строка.

              • +2

                А, я понял. ->productImgUrl() не умеет заменять ссылку стандартной, если файла нет. Можно вот так:

                {$img_url = $wa->shop->productImgUrl($p, '200')}
                {$img_url = ifempty($img_url, "`$wa_theme_url`img/dummy200.png")}

                Т.е. если productImgUrl() вернула пустоту, используем заглушку.

                // UPD исправил опечатку

                • +1
                  Zcorpx Zcorpx 27 января 2015 09:56 #

                  Так не работало. Сделала так:

                  {if $wa->shop->productImgUrl($p, '200', ['itemprop' => 'image', 'default' => "`$wa_theme_url`img/dummy200.png"])}

                  <img data-src="{$wa->shop->productImgUrl($p, '200', ['itemprop' => 'image', 'default' => "`$wa_theme_url`img/dummy200.png"])}

                  " class="lazy lazy-fadeIn">{else}<img data-src="{$wa_theme_url}img/dummy200.png">{/if}

                  Ура! Сработало. Спасибо за наводку.

            • +1
              Zcorpx Zcorpx 27 января 2015 09:33 #

              Все картинки каждого товара выводит, но у тех товаров у которых нет картинок вместо ссылки просто пустая строка.

    • +1
      Zcorpx Zcorpx 27 января 2015 09:00 #

      Сделала так:

      {$wa->shop->productImgHtml($p, '96x96', ['itemprop' => 'image', 'alt' => $p.name, 'default' => "`$wa_theme_url`img/dummy96.png"])}

      Но, всё равно не выводит стандартное изображение если у товара изображение отсутствует. Почему?

  • 1
    Zcorpx 27 января 2015 05:59 #

    простите, *изображение*

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

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