В данном уроке сделаем возможность в статьях MODX, отключать вызов созданных ранее блоков: вывод meta информации, вывод блока: предыдущая / следующая статьи, автоперелинковки, блока автора, отключение возможности комментирования.
Шаг 1. Создание TV полей
Перед тем как создавать TV, создадим в админке категорию «Отключение блоков».
и в данной категории создадим Дополнительное поле (TV) c названием: «hideMeta», подписью: «Скрыть вывод meta информации?» и переходим во вкладку «Параметры ввода».
На вкладке «Параметры ввода», в поле «Тип ввода» выбираем «Флажки», В поле «Возможные значения», пишем «да» и переключаемся во вкладку «Доступно для шаблонов».
В вкладке «Доступно для шаблонов» выбираем шаблон и сохраняем TV.
Точно также создайте еще 4 TV поля:
- hideNetbiros — Скрыть вывод блока: предыдущая / следующая статьи?
- hidePerelincovka — Скрыть автоперелинковку?
- hideAutors — Скрыть блок автора?
- hideComents — Скрыть форму комментирования?
Примечание! Можно просто скопировать созданное TV поле с его параметрами.
Шаг 2. Выносим блоки в отдельные чанки
Чтобы скрывать вывод блоков, нам их желательно (но не обязательно, см. Вызов блоков (с условием), но без создания чанков) вынести в отдельные чанки. Для этого, открываем наш шаблон статьи «ArticleTemplate.tpl», находим в нем блок к примеру с meta информацией, выделяем и вырезаем его код.
Далее создаем чанк «hideMeta.tpl» или просто «Meta.tpl», вставляем в него вырезанный код и сохраняем.
Таким же образом выносим все остальные блоки в чанки: hideNetbiros.tpl, hidePerelincovka.tpl, hideAutors.tpl, hideComents.tpl.
Примечание! Для тех кто работает не с файловыми элементами, вы просто создаете чанк «hideMeta», «hideNetbiros» и т.д.
Вызываем чанки (с условием)
В местах от куда вырезали код, вызываем наши чанки, таким образом
{if $_modx->resource.hideMeta?} {else} {include 'file:chunks/blog/hideMeta.tpl'} {/if}
Здесь идет обычное условие: если TV поле заполнено (т.е. стоит чекбокс), тогда не чего не выводим в код, в противном случае выводим содержимое чанка. Таким же образом выводим все остальные чанки:
Примечание! Для тех кто работает не с файловыми элементами, обычные чанки выводятся на феном так:
{include 'my_chunk'}
.
Вызов блоков (с условием), но без создания чанков
Не хотите плодить чанки, без проблем, можно просто обернуть код в точно такую же конструкцию:
{if $_modx->resource.hideMeta?} {else} здесь код блока {/if}
Заключение
Вот так легко и просто настроить логику отключения блоков на странице MODX. Можете испытать работоспособность, зайдя в статью и отметив галки, на против блоков которые хотите скрыть.
Все работает!
А вы не подскажите, как надо написать обычным ситаксисом, а не fenom приведенный код выше?
[[*hideMeta:!empty=`[[$hideMeta]]`]]