Вывод чанков tpl через pdoResources.
         Здравствуйте, уважаемые форумчане. Подскажите, пожалуйста, как поочередно выводить статьи разными чанками в категорию? 
В чем суть: у меня есть три чанка для вывода статей в категорию (bigPostTpl, fullPostTpl, smallPostTpl). При вызове чанков через pdoPage использую сейчас параметры &limit=`` и &offset=``. Это мне позволяет выводить первые 2 статьи одним чанком (bigPostTpl), 3-ю статью другим чанком (fullPostTpl), и еще 4 статьи третьим чанком (smallPostTpl). Таким образом получается формат 2-1-4, и при этом статьи не повторяются.Мне нужно чтобы все новости выводились в формате 2-1-4, и не прописывать вручную новый вызов чанков с &limit=`` и &offset=``.
К сожалению, вариант tpl_nN не подходит. Потому что цикл статьи, через который ее вывод повторится, будет не xn, а (х + 7n), где x — номер статьи в первой семерке (от одного до 7), и n — количество раз, которыми вызвали конструкцию чанков 2-1-4. То есть пятая статья будет не &tpl_n5=`tplEvery5th`, потому что следующая статья, попадающая под определение «каждая пятая» будет иметь номер 10, а на скрине видно что в формате вызова чанков 2-1-4 десятая по номеру статья это третья, повторенная через цикл 3+7n. По этому нужно вызвать что-то вроде &tpl_n(5+7n)=`tplEvery5th`. И так для всех статей.
Прилагаю скрин конструкции:
Скрин
Скажите, есть способ прописать такой цикл перебора статей? На крайний случай, можно попробовать реализовать это через js + css. Перебирая все статьи на странице, в зависимости от их порядкового номера присваивать нужные классы. Но как по мне, это костыль, к тому же очень не хороший. поэтому, и спрашиваю.
    
    
                                                                                
            В чем суть: у меня есть три чанка для вывода статей в категорию (bigPostTpl, fullPostTpl, smallPostTpl). При вызове чанков через pdoPage использую сейчас параметры &limit=`` и &offset=``. Это мне позволяет выводить первые 2 статьи одним чанком (bigPostTpl), 3-ю статью другим чанком (fullPostTpl), и еще 4 статьи третьим чанком (smallPostTpl). Таким образом получается формат 2-1-4, и при этом статьи не повторяются.Мне нужно чтобы все новости выводились в формате 2-1-4, и не прописывать вручную новый вызов чанков с &limit=`` и &offset=``.
К сожалению, вариант tpl_nN не подходит. Потому что цикл статьи, через который ее вывод повторится, будет не xn, а (х + 7n), где x — номер статьи в первой семерке (от одного до 7), и n — количество раз, которыми вызвали конструкцию чанков 2-1-4. То есть пятая статья будет не &tpl_n5=`tplEvery5th`, потому что следующая статья, попадающая под определение «каждая пятая» будет иметь номер 10, а на скрине видно что в формате вызова чанков 2-1-4 десятая по номеру статья это третья, повторенная через цикл 3+7n. По этому нужно вызвать что-то вроде &tpl_n(5+7n)=`tplEvery5th`. И так для всех статей.
Прилагаю скрин конструкции:
Скрин
Скажите, есть способ прописать такой цикл перебора статей? На крайний случай, можно попробовать реализовать это через js + css. Перебирая все статьи на странице, в зависимости от их порядкового номера присваивать нужные классы. Но как по мне, это костыль, к тому же очень не хороший. поэтому, и спрашиваю.
Комментарии: 3
                Реализовать то можно. Только мне с твоей математикой не охота возиться. Сделаю просто каждый 7-й другой код
                    [[!pdoPage?
&tpl=`tpl7`
]]tpl7{if ($idx % 7) == 0}
   <div class="block7">....</div>
{else}
  <div class="block">....</div>
{/if}            
                Спасибо, реализовал. Если кому нужно, вот код:
Код чанка:
                    Код чанка:
{if ($idx % 7) == 1 || ($idx % 7) == 2}
  <div class="col-lg-6 col-md-6 col-sm-12">
	<article class="big-news-main-container">
	  <div class="post-box">
		<img src="[[+tv.image:phpthumbof=`w=800&h=533&zc=1&q=100`]]" alt="[[+longtitle]]">
		<div class="entry-content">
		  <h3><a href="[[~[[+id]]]]" title="[[+pagetitle]]">[[+pagetitle]]</a></h3>
		</div>
	  </div>
	</article>
  </div>
{else}
  {if ($idx % 7) == 3}
	  <div class="col-sm-12">
		<article class="full-news-main-container">
		  <div class="type-post">
			<div class="entry-content">
			  <h3 class="entry-title"><a href="[[~[[+id]]]]" title="[[+pagetitle]]">[[+pagetitle]]</a></h3>
			  <div class="publication-data">
				<p class="byline">[[*createdby:userinfo=`fullname`]]</p>
				<p class="post-date"><i>[[+publishedon:dateRU]]</i></p>
			  </div>
			  <p>[[+introtext]]</p>
			  <p class="tags-preview">
				[[!tolinks? 
				&items=`[[+tv.tags]]`
				&tpl=`tagLinkTpl`
				&target=`117`
				]]
			  </p>
			</div>
		  </div>
		</article>
	  </div>
	{else}
	<div class="col-lg-3 col-md-6 col-sm-12">
	  <article class="small-news-main-container">
		<div class="type-post">
		  <div class="entry-cover">
			<a href="[[~[[+id]]]]"><img src="[[+tv.image:phpthumbof=`w=800&h=533&zc=1&q=100`]]" alt="[[+longtitle]]" /></a>
		  </div>
		  <div class="entry-content">
			<h3 class="entry-title"><a href="[[~[[+id]]]]" title="[[+pagetitle]]">[[+pagetitle]]</a></h3>
			<div class="publication-data">
			  <p class="byline">[[*createdby:userinfo=`fullname`]]</p>
			  <p class="post-date"><i>[[+publishedon:dateRU]]</i></p>
			</div>
			<p>[[+introtext]]</p>
			<p class="tags-preview">
			  [[!tolinks? 
			  &items=`[[+tv.tags]]`
			  &tpl=`tagLinkTpl`
			  &target=`117`
			  ]]
			</p>
		  </div>
		</div>
	  </article>
	</div>
	{/if}
{/if}Код вызова чанка:[[!pdoPage?
&element=`pdoResources`
&parents=`[[*id]]`
&tpl=`allPostTpl`
&includeTVs=`image,tags`
&hideContainers=`1`
&limit=`0`
]]            
                А if тут не самый лучший выбор. github.com/fenom-template/fenom/blob/master/docs/ru/tags/switch.md
                    {switch $idx % 7}
{case 1, 2}
    ...
{case 3}
    ...
{case default}
    ...
{/switch}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.