Ограничить кол-во выводимых фото Есть решение

Как ограничить кол-во выводимых фото?

{if $post.album_id && $post.album.id && $post.album.photos}
{$photos_loaded = 1} {* required for proper photo thumbs retinification *}
<ul class="inline">
{foreach $post.album.photos as $p}
<li><a href="{$post.link}#photo{$p.id}"><img src="{$p.thumb_crop.url}" class="retinify" width="96" height="96" alt="{$p.name|escape}"></a></li>
{/foreach}
</ul>
{/if}

2 ответа

  • 2

    Перед

    {/foreach}

    добавить

    {if $p@iteration == 'X'}{break}{/if}

    где X - количество фото

  • 1
    realteam 15 мая 2018 17:13 #

    А есть ли такое же простое решение выводить в случайном порядке или же последние фото?

    • +1

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

      перед

      {foreach $post.album.photos as $p}

      вставить

      {$shuffle_photos = $post.album.photos|@shuffle}

      и следовательно заменить foreach

      {foreach $shuffle_photos as $p}

      Готовый вариант будет выглядеть примерно так

      {if $post.album_id && $post.album.id && $post.album.photos}
      {$photos_loaded = 1} {* required for proper photo thumbs retinification *}
      <ul class="inline">
      {$shuffle_photos = $post.album.photos@|shuffle}
      {foreach $shuffle_photos as $p}
      <li><a href="{$post.link}#photo{$p.id}"><img src="{$p.thumb_crop.url}" class="retinify" width="96" height="96" alt="{$p.name|escape}"></a></li>
      {if $p@iteration == 4}{break}{/if} {* view 4 photos *}
      {/foreach}
      </ul>
      {/if}
      • +1

        P.S. код не проверял, нет под рукой движка, если будут ошибки напишите

        • +1
          realteam realteam 16 мая 2018 09:20 #

          К сожалению вариант случайных фото не работает, но по существу вот что хочется:

          1. Есть страница stream_posts.html (выводится 7 фото под превью новости)

          {if $post.album_id && $post.album.id && $post.album.photos}
          {$photos_loaded = 1} {* required for proper photo thumbs retinification *}
          <ul class="inline">
          {foreach $post.album.photos as $p}
          <li><a href="{$post.link}#photo{$p.id}"><img src="{$p.thumb_crop.url}" class="retinify" width="96" height="96" alt="{$p.name|escape}"></a></li>
          {if $p@iteration == '7'}{break}{/if}
          {/foreach}
          </ul>
          {/if}

          2. Есть страница с новостью post.html (где выводятся те же 7 фото)

          {foreach $post.album.photos as $p}
          <a name="photo{$p.id}"></a>
          {if $p.description}
          {if $p.description|strstr:'<p>'}
          <div>{$p.description}</div>
          {else}
          <span class="textcolor"><p>{$p.description}</p></span>
          {/if}
          {/if}
          <img src="{$p.thumb_big.url}" class="retinify" alt="{$p.name|escape}">
          {if $p@iteration == '7'}{break}{/if}
          {/foreach}

          Хотелки:

          1. Как вывести в 2 местах последние фото

          2. Есть ли возможность прикрутить в post.html переход на саму фото?

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

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