Вывод названия альбома Есть решение

Помоги разобраться, как вывести название альбома и ссылку на него.

Вывод необходимо сделать на странице товара используя плагин «Управление полями дополнительных параметров».

У товара есть доп. параметр (в котором я пишу ID альбома) 

$product.params.photo_album

 Так вот пытаюсь вывести название альбома с ID 4 и ссылку на него, следующим образом.

{if isset($product.params.prod___photo_album)}
    {if $wa->photos}

        {$photos = $wa->photos->photos("/album/{$product.params.prod___photo_album}", "300x300,1000x0", 11)}
        {$albums = $wa->photos->albums("/album/{$product.params.prod___photo_album}")}

        <div class="title">
            {foreach $albums as $a}
                            <a href="{$a.url}">
                {$a.name}
                            </a>
            {/foreach}
        </div>

        <div class="mb-5">
            <div class="product-gallery">
                <div class="row">
                    {foreach $photos as $photo}
                    <a class=&#039;fancybox-open gallery-item gallery-item_a col-lg-2 col-md-3 col-4&#039; data-caption=&#039;{if $photo.description}{$photo.description}{/if}&#039; data-fancybox=&#039;gallery&#039; data-fancybox-group=&#039;thumb&#039; data-number=&#039;$photo.id&#039; href=&#039;{$photo.thumb_1000x0.url}&#039;>
                        <img class="fancybox-images" alt=&#039;{$product.name|escape}&#039; title=&#039;{$product.name|escape}&#039; src=&#039;{$photo.thumb_300x300.url}&#039;>
                    </a>
                    {/foreach}
                    <a href="/gallery/" class="gallery-item gallery-item_link-gallery col-lg-2 col-md-3 col-4 justify-content-center d-flex align-items-center">
                        <img src=&#039;{$wa_static_url}wa-data/public/photos/18/00/18/18.300x300.jpg&#039; alt="Галерея">
                        <div class="justify-content-center d-flex align-items-center w-100 h-100 position-absolute">
                            <div class="link-gallery_title">
                                Больше фотографий<br />в нашей галереи<br />
                                <span class="link-gallery_desc">перейти</span>
                            </div>
                        </div>
                    </a>
                </div>
            </div>
        </div>

    {/if}
{/if}

Фотографии альбома ID 4 выводятся, а название и ссылка нет. 

Подскажите где копать.

8 ответов

  • 2
    Евгений Химич 21 апреля 2021 09:06 #

    Кто-нибудь сталкивался с такой проблемой? =)

  • 2
    Алексей Webasyst 21 апреля 2021 09:29 # Решение

    Непонятно что именно вы хотели получить, но код

    {$albums = $wa->photos->albums("/album/{$product.params.prod___photo_album}")}

    вернёт строчку html со всеми публичными альбомами.

    Вызов {$albums = $wa->photos->albums(false)} вернёт массив альбомов, из которого уже сможете выбрать нужный или показывать все.

    • +1
      Евгений Химич Евгений Химич 21 апреля 2021 12:07 #

      Данная конструкция выводит все альбомы:

      {$albums = $wa->photos->albums(false)}
      {foreach $albums as $album}
      	{$album.name}
      {/foreach}

      Данная конструкция не выводит не чего:

      {$albums = $wa->photos->albums(/album/{$product.params.prod___photo_album})}
      {foreach $albums as $album}
      	{$album.name}
      {/foreach}
      

      или

      {$albums = $wa->photos->albums(/album/{$product.params.prod___photo_album})}
      {$album.name}
    • +2
      Евгений Химич Евгений Химич 21 апреля 2021 12:53 #

      Получить необходимо следующее. Товар имеет дополнительную характеристику {$product.params.prod___photo_album} (где я пишу ID фотоальбома), мне необходимо вывести на странице товара, название и ссылку на альбом ID которого указан в доп.характеристики.

      • +3
        Алексей Алексей Webasyst 21 апреля 2021 14:28 #

        Получаете все альбомы

        {$albums = $wa->photos->albums(false)}

        Выводите его данные
        {$album = ifset($albums, $product.params.prod___photo_album, false)}
        {if $album}

        {$album.name}

        {/if}

        • +2
          Евгений Химич Евгений Химич 21 апреля 2021 14:49 #

          Большое спасибо!

        • +1
          macsol macsol 30 января 2023 17:44 #

          Плохой подход, особенно если фотоальбомов будет очень много.
          Получаем запросом огромный массив данных и методом перебора ищем в нём нужный объект. Неужели нет ничего более нормального?

  • 1
    Евгений Химич 21 апреля 2021 12:46 #

    Место название выводит почему-то символ «<»

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

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