[Modx Revo] Одинаковый блок на всех страницах
Мне часто необходимо вывести один и тот же блок на все страницы и важно, что бы при этом он редактировался через админку и с помощью визуального редактора, для удобства клиента.
У нас есть Шаблон с именем Base.
Создаем контейнер в дереве реceрсов (для удобства), в котом будут расположены все блоки, которые мы хотим выводить.
ДЕРЕВО РЕСУРСОВ - НОВЫЙ ДОКУМЕНТ
В него помещаем ресурс, например с названием БЛОК АКИЦЯ, назначаем ему пустой шаблон в него помещаем содержание, которое необходимо вывести. Допустим его ID=7.
Далее создаем новый сниппет с именем trew (Элементы - Сниппеты - Новый) и таким содержанием:
if(!$doc = $modx->getObject('modResource', $docID)){ return ''; } return $doc->get('content');
Далее выводим его, вписываем в нужное место в шаблоне Base:
[[mySnippet?docID=`7`]]
Где 7, это ID
Второй вариант, более понятный для клиента
- Создаем шаблон с именем SiteSettings, пустой.
- Делаем несколько TV полей (например блок акции, подпись сайта и тд). Присваиваем их к шаблону SiteSettings.
- Создаем новый ресурс с именем НАСТРОЙКИ САЙТА и присваиваем ему шаблон SiteSettings
- Скачиваем и устанавливаем пакет getResourceField. В шаблон где надо выводить эти TV вписываем:
[[getResourceField? &id=`4` &field=`TVLogo` &processTV=`1`]]
где 4 - id ресурса НАСТРОЙКИ САЙТА, TVLogo- имя TV
помог Dymskiy