Вывод разных чанков в разных колонках на странице через pdoResources
Стандартный код шаблон выводит в диве row 2 анонса (div col-6)
Потом новый див row выводит 3 анонса (div col-4)
и так повторяется…
Пытаюсь реализовать это через номера вывода ресурсов, первые 2 ряда идут правильно, а потом все сбивает вывод чанка &tpl
Если его не использовать не работает.
Не могу победить…
[[!pdoPage?
&element=`pdoResources`
&elementClass=`modSnippet`
&tpl=`wideBigBlogPost`
&tpl_n1=`@INLINE <div class="row">[[$bigBlogPost]]`
&tpl_n2=`@INLINE [[$bigBlogPost]]</div>`
&tpl_n3=`@INLINE <div class="row">[[$smallBlogPost]]`
&tpl_n4=`@INLINE [[$smallBlogPost]]`
&tpl_n5=`@INLINE [[$smallBlogPost]]</div>`
&hideContainers=`1`
&parents=`[[*id]]`
&showHidden=`1`
&includeTVs=`blog_photo`
&includeContent=`1`
&limit=`28`
&sortby=`{"publishedon":"DESC"}`
]]
[[!+page.nav]]
Комментарии: 7
Зачем внутри на row делить?
Лучше сделать так:
Лучше сделать так:
<div class="row">
[[!pdoPage?
...
&tpl_n1=`@INLINE [[$bigBlogPost]]`
&tpl_n2=`@INLINE [[$bigBlogPost]]`
&tpl_n3=`@INLINE [[$smallBlogPost]]`
&tpl_n4=`@INLINE [[$smallBlogPost]]`
&tpl_n5=`@INLINE [[$smallBlogPost]]`
...
]]
</div>
[[!+page.nav]]
И если в таком случае всё сбивается, то надо править верстку, т.к. плохая практика в одном элементе открывать тег, а в другом закрывать.
А еще можно сделать два вызова: первый для pdoResources для двух первых больших элементов, а второй pdoPage c offset для остальных маленьких элементов.
Offset не подойдёт, так как вывод всех анонсов будет повторяться, первые 2 большие, следующие 3 маленькие и так 30 анонсов.
Так будет работать тоже, но в этом вызове нет простого tpl. Как только его добавляю, даже пустой, вся очерёдность слетает.
Я так понимаю нет вариантов решения моей проблемы?
Да вариантов решения на самом деле куча.
По факту в идеале это делается через css c nth-child
Ещё например если дружите с fenom сохранять результат в json и в цикле оборачивать вывод по признакам делаимости или по счетчикам.
Или например используя родной phx сделать снниппет обертку над pdoresources, и там написать кастомную логику
По факту в идеале это делается через css c nth-child
Ещё например если дружите с fenom сохранять результат в json и в цикле оборачивать вывод по признакам делаимости или по счетчикам.
Или например используя родной phx сделать снниппет обертку над pdoresources, и там написать кастомную логику
Почему же нет. Если взять fenom то можно делать что угодно. Можно менять класс в самом чанке опираясь на значение idx. Например
<div class="{$idx | in : [1, 2] ? 'col-6' : 'col-4'} ">
или задавать размеры картинке {set $phpthumb = $idx | in : [1, 2] ? 'w=555&h=290&zc=1&q=70&bg=ffffff' : 'w=360&h=290&zc=1&q=70&bg=ffffff'}
<img src="{$image | phpthumbon : $phpthumb }" alt="{$pagetitle}">
или выводить нужный div{if $idx==1} <div class="row">{/if}
...
{if $idx==1} </div>{/if}
тут уже можно творить, что угодно, главное самому не запутаться.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.