<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[msGallery ограниченный вывод превью]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1756205636824-%D1%81%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2025-08-26-%D0%B2-13.53.45.png" alt="Снимок экрана 2025-08-26 в 13.53.45.png" class=" img-fluid img-markdown" /></p>
<p dir="auto">Появилась задача сделать вывод превью под основной каруселью товаров до 3-х итемов.</p>
<p dir="auto">Вот основной чанк <code>tpl.msGallery</code>, в моем случае он переделан, у вас он может выглядеть по дефолту.</p>
<pre><code>&lt;div class="product-slider productSticky"&gt;
  &lt;div class="product-slider__slides"&gt;
    {if $files?} {foreach $files as $file}
    &lt;img
      class="product-slider__image"
      src="{$file['url']}"
      alt="[[*pagetitle]]"
    /&gt;
    {/foreach} {/if}
  &lt;/div&gt;
  &lt;div class="product-slider__preview"&gt;
    &lt;!-- Вот необходимый код для вывод превью --&gt;
    {if $files &amp;&amp; is_array($files)}
        {var $count = 0}
        {foreach $files as $file}
            {if $count &lt; 3 &amp;&amp; !empty($file['url'])}
                &lt;img
                    class="product-slider__image-preview"
                    src="{$file['url']}"
                    alt="[[*pagetitle]]"
                /&gt;
                {var $count = $count + 1}
            {/if}
        {/foreach}
    {/if}
    &lt;!-- Вот необходимый код для вывод превью --&gt;
  &lt;/div&gt;
  &lt;button class="product-slider__btn product-slider__btn_prev"&gt;️&lt;/button&gt;
  &lt;button class="product-slider__btn product-slider__btn_next"&gt;️&lt;/button&gt;
&lt;/div&gt;
</code></pre>
<p dir="auto">Что мы тут делаем, проверяем является ли <code>$files</code> массивов - <code>{if $files &amp;&amp; is_array($files)}</code>, если все ок то далее создаем переменную <code>{var $count = 0}</code> далее по стандарту используем метод перебор массива <code>{foreach $files as $file}</code>.</p>
<p dir="auto">Далее делаем проверку на количество что бы переменная<code>$count</code> не была больше 3-х<br />
<code>{if $count &lt; 3 &amp;&amp; !empty($file['url'])}</code><br />
При при каждой итерации (перебор массива) прибавляем значение переменной <code>{var $count = $count + 1}</code></p>
<p dir="auto">Вот и все, теперь у нас в превью под основной каруселью будет выводиться максимум 3.</p>
]]></description><link>https://forum.exlends.ru/topic/220/msgallery-ogranichennyj-vyvod-prevyu</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:15:45 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/220.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Aug 2025 11:03:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to msGallery ограниченный вывод превью on Fri, 05 Sep 2025 19:22:59 GMT]]></title><description><![CDATA[<p dir="auto">Теперь понял логику и буду использовать такой же подход для лимитирования вывода новостей в сайдбаре. Только переменную $count нужно будет обнулять перед каждым новым блоком.</p>
]]></description><link>https://forum.exlends.ru/post/540</link><guid isPermaLink="true">https://forum.exlends.ru/post/540</guid><dc:creator><![CDATA[Алекс44]]></dc:creator><pubDate>Fri, 05 Sep 2025 19:22:59 GMT</pubDate></item><item><title><![CDATA[Reply to msGallery ограниченный вывод превью on Fri, 05 Sep 2025 19:21:33 GMT]]></title><description><![CDATA[<p dir="auto">вариант с array_slice действительно элегантнее, но не все шаблонизаторы поддерживают PHP-функции напрямую. В ModX часто приходится работать с синтаксисом Fenom, где такие трюки не всегда проходят.</p>
]]></description><link>https://forum.exlends.ru/post/539</link><guid isPermaLink="true">https://forum.exlends.ru/post/539</guid><dc:creator><![CDATA[Wowk]]></dc:creator><pubDate>Fri, 05 Sep 2025 19:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to msGallery ограниченный вывод превью on Fri, 05 Sep 2025 19:21:11 GMT]]></title><description><![CDATA[<p dir="auto">Почему бы не использовать array_slice для обрезки массива сразу? Был бы код короче: {foreach array_slice($files, 0, 3) as $file} и не нужна переменная $count.</p>
]]></description><link>https://forum.exlends.ru/post/538</link><guid isPermaLink="true">https://forum.exlends.ru/post/538</guid><dc:creator><![CDATA[Василий]]></dc:creator><pubDate>Fri, 05 Sep 2025 19:21:11 GMT</pubDate></item><item><title><![CDATA[Reply to msGallery ограниченный вывод превью on Fri, 05 Sep 2025 19:20:58 GMT]]></title><description><![CDATA[<p dir="auto">В текущем коде если изображений меньше трёх - просто выведутся все имеющиеся. Цикл остановится сам, когда массив закончится. Пустых элементов не будет - проверка !empty($file[‘url’]) отсечет битые ссылки.</p>
]]></description><link>https://forum.exlends.ru/post/537</link><guid isPermaLink="true">https://forum.exlends.ru/post/537</guid><dc:creator><![CDATA[Ванек]]></dc:creator><pubDate>Fri, 05 Sep 2025 19:20:58 GMT</pubDate></item><item><title><![CDATA[Reply to msGallery ограниченный вывод превью on Fri, 05 Sep 2025 19:20:55 GMT]]></title><description><![CDATA[<p dir="auto">А что если в массиве меньше трёх изображений? Не сломается ли вёрстка из-за пустых элементов? Может стоит добавить проверку на минимальное количество?</p>
]]></description><link>https://forum.exlends.ru/post/536</link><guid isPermaLink="true">https://forum.exlends.ru/post/536</guid><dc:creator><![CDATA[Алекс44]]></dc:creator><pubDate>Fri, 05 Sep 2025 19:20:55 GMT</pubDate></item></channel></rss>