photozoom
@photozoom

MODX REVO. Как вывести посты через getResources по 3 в каждом ряду?

В шаблоне используется сеточная разметка Bootsrap. Нужно вывести 9 постов по 3 в каждом ряду, разметка при этом такая:
<div class="row">
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
</div>
<div class="row">
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
</div>


Шаблон tpl для getResources будет в <div class="col-md-4"> ... </div>. Вопрос в том как настроить вывод таким образом, чтобы посты выводились по 3 в каждом ряду. Я думаю это делается через модификаторы например так:
[[+idx:mod=`3`:is=`0`:then=`</div> <!-- /row --><div class="row">`:else=``]]

То есть если порядковый номер поста 3, то закрываем ряд и начинаем новый </div> <div class="row">. Или есть способ лучше?
  • Вопрос задан
  • 653 просмотра
Решения вопроса 1
photozoom
@photozoom Автор вопроса
Для себя нашел такое решение:
Создаем шаблоны firstPost, lastPost, post3th, post.
firstPost:
<div class="row">    
    <div class="col-md-4">
    ...
    </div> <!-- /.col-md-4 -->
[[+last:is=`1`:then=`</div><!-- /.row -->`:else=``]]


lastPost:
<div class="col-md-4">
      ...
    </div> <!-- /.col-md-4 -->
</div> <!-- /row -->


post3th:
<div class="col-md-4">
   ...
    </div> <!-- /.col-md-4 -->
</div> <!-- /.row -->
<div class="row">


post:
<div class="col-md-4">
...
</div> <!-- /. col-md-4 -->

firstPost открывает ряд и в нем же стоит проверка, если это последний пост на странице, то закрывает ряд.
post3th закрывает ряд после каждого 3-го поста и открывает новый.
lastPost закрывает ряд.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Sanes
@Sanes
Это делается версткой.
<div class="row">
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
  <div class="col-md-4"> ... </div>
</div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы