Modx rowboat — вывод контента из любой таблицы базы данных

MODX rowboat — вывод контента из любой таблицы MODX Revo
Пакет rowboat поможет вам вывести любые данные из любой таблицы базы данных вашего сайта. К примеру я им пользуюсь чтобы выводить комментарии с TicketLatest или TicketComments к примеру на главной странице - таким образом не будут подключены скрипты от Ticket - что ускоряет скорость загрузки сайта.

Использование

Вывести первые 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 не вернет результатов.

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( 2 оценки, среднее 5 из 5 )
Web-Revenue.ru
Добавить комментарий