Использование
Вывести первые 10 комментариев из таблицы modx_tickets_comments (где modx_ — это префикс таблиц в базе данных).
[[Rowboat?
&table=`modx_tickets_comments`
&tpl=`tpl.myTickets.comment`
&limit=`10`
&sortBy=`createdon`
]]
где чанк tpl.myTickets.comment содержит следующий код:
<div class="testimonial">
<div class="testimonial-content nopadding">
<p>[[+text]]</p>
<cite>[[+name]]</cite>
</div>
</div>
Все поля базы доступны в виде плейсхолдеров: [[+название_столбца]].
В примере выше, я вывожу данные из столбцов text и name.
Доступные свойства
Имя | Описание | Дефолт |
---|---|---|
tpl | Чанк, используемый для каждой строки. Если пусто, будет выведен массив доступных заполнителей. | |
table | Таблица, из которой нужно брать записи. | |
columns | Объект JSON столбцов и псевдонимов для этих столбцов, которые нужно захватить для строки. Если не установлен, захватываются все столбцы в таблице. | * |
where | Объект JSON для оператора where. | |
sortBy | Если установлено, выполняется сортировка по этому полю. | |
sortDir | Направление сортировки. | ASC |
limit | Количество строк, ограничиваемое за вызов. По умолчанию 10. Установите 0, чтобы показать все. | 10 |
offset | Начальный индекс, с которого начинается ограничение. | 0 |
cacheResults | Если установлено в 1, кэширует результаты конкретного запроса. | 1 |
cacheTime | Если для cacheResults установлено значение 1, количество секунд для кэширования запроса. | 3600 |
placeholderPrefix | Префикс, используемый при установке глобальных заполнителей, например total. | rowboat. |
outputSeparator | Разделитель между каждой пользовательской записью. | |
toPlaceholder | По желанию. Если установлено, вывод будет установлен в этот заполнитель и будет возвращен пустым. | |
debug | По желанию. Если установлено значение 1, будет выведена таблица с информацией о сгенерированном запросе и результатах. Всегда оставляйте 0 для производственных площадок. | 0 |
Свойства в чанке
В вашем & tpl Chunk у вас будут все столбцы, которые вы выбрали в качестве свойств, а также:
Имя | Описание |
---|---|
_idx | Индекс этой строки. |
_alt | 1, если это четная строка, 0, если нечетная. |
_first | Если эта строка является первой из этого выгружаемого набора результатов, тогда это будет 1. |
_last | Если эта строка является последней в этом выгружаемом наборе результатов, тогда это будет 1. |
Официальные примеры
Возьмите 10 лучших дудлов, отсортированных по имени, из modx_doodles, в названии которых есть слово «Test»:
[[!Rowboat?
&table=`modx_doodles`
&tpl=`myDoodle`
&limit=`10`
&where=`{"name:LIKE":"%Test%"}`
&sortBy=`name`
]]
Возьмите только столбцы id, name и description (с описанием с псевдонимом «desc») из приведенного выше примера: (обратите внимание, что для столбцов без псевдонима необходимо пустое поле «» для псевдонима)
[[!Rowboat?
&table=`modx_doodles`
&tpl=`myDoodle`
&columns=`{"id":"","name":"","description":"desc"}`
&limit=`10`
&where=`{"name:LIKE":"%Test%"}`
&sortBy=`name`
]]
Возьмите 10 дудлов, в которых описание не пустое или имя «Тест»:
[[!Rowboat?
&table=`modx_doodles`
&tpl=`myDoodle`
&limit=`10`
&where=`{"description:!=":"","OR:name":"Test"}`
&sortBy=`name`
]]
Скоро будет больше.
Использование getPage с Rowboat
Это довольно просто — просто убедитесь, что для свойства totalVar в вызове getPage установлено значение «rowboat.total», и укажите cache = 0
в вызове getPage. Например, это захватит все рисунки, в названии которых содержится слово «Fun», разбит их на 10 страниц на странице и добавит навигацию по страницам:
[[!getPage?
&element=`Rowboat`
&table=`modx_doodles`
&sortBy=`name`
&where=`{"name:LIKE":"%Fun%"}`
&totalVar=`rowboat.total`
&tpl=`myDoodle`
&cache=`0`
&limit=`10`
]]
<div class="paging">
<ul class="pageList">
[[!+page.nav]]
</ul>
</div>
Внимание.
Будьте осторожны с аргументом &columns: если вы укажете несуществующий столбец, вызов фрагмента кода RowBoat не вернет результатов.