#Вызов блока и условия
#Простой вызов
{module.имя_модуля}Вставляет блок целиком: со своей обёрткой, стилями и всеми записями.
#Условия
Условия пишутся после двоеточия и разделяются знаком &:
{module.portfolio:limit=6&orderBy=id&order=desc}#Служебные условия
| Условие | Что делает | По умолчанию |
|---|---|---|
limit | сколько записей вывести | все |
orderBy | по какому полю сортировать | id |
order | asc (по возрастанию) или desc | desc |
paginate | 1 — включить постраничность | выключено |
view | каким видом рисовать | основной |
ids | список файлов для галереи | — |
#Отбор по полю
Любое имя поля справочника работает как условие отбора:
{module.portfolio:tag=Кухни}
{module.blog:category=3}
{module.shop:active=1&hit=1}Выведутся только записи, у которых это поле равно указанному значению.
Так делается «похожее» и «из этой же категории» — без единой строки кода: тот же модуль, другое условие.
#Постраничность
{module.blog:paginate=1&limit=12}Блок начинает показывать не первые 12 записей, а окно по номеру
страницы из адреса: /blog/page/2/, /blog/page/3/.
Листалка встаёт на место метки {pager} в вёрстке блока. Нет её —
припишется следом за содержимым.
Страница списка за пределом отдаёт «не найдено», а не пустой список.
Иначе /blog/page/99/ при шести статьях отвечал бы «всё в порядке» и
попадал в кеш, а поисковик обходил бы такие адреса бесконечно — их
столько, сколько чисел.
Первая страница не в счёт: пустой список на ней — законное «записей пока нет».
#Условия в вёрстке блока
Условия можно записать и внутри вида, в метке {item}:
<div class="grid">{item:limit=12}</div>Это значения по умолчанию, а не приказ: указанное на месте вызова побеждает.
Раньше было наоборот, и {module.portfolio:limit=4} в блоке «примеры
работ» выводил двенадцать записей — limit=12 из вёрстки перекрывал
четвёрку. Теперь побеждает то, что указано на месте вызова: оно
конкретнее.
#Выбор вида
{module.menu:view=moya.menuFooter}
{module.menu:view=24}Принимается и код, и номер. Подробнее — Виды модуля.
#Галерея из файлов
Блок без справочника с условием ids выводит список файлов:
{module.gallery:ids=12,15,18}#Вложенные вызовы
Блок может звать другой блок — так шапка выводит меню:
<header>
{module.menu:view=moya.menu}
</header>Работает и внутри карточки записи.
#Что чаще всего идёт не так
«Вызов написан, а блока нет». Модуля с таким именем не существует. Вызов убирается со страницы, причина уходит в журнал сервера. Обычно это опечатка либо решение, которое ещё не установлено.
«Выводится не столько записей, сколько просил». Проверьте {item}
в вёрстке блока: возможно, там стоит своё limit, а вы правите вызов —
или наоборот.
«orderBy не работает». Имя поля должно совпадать со столбцом
справочника (data_publikacii), а не с его заголовком («Дата
публикации»).