Работаю по всей России

vasilisa1210@mail.ru

Главная » Уроки » Уроки по ModX Revo » [Modx Revo] Одинаковый блок на всех страницах

[Modx Revo] Одинаковый блок на всех страницах

Мне часто необходимо вывести один и тот же блок на все страницы и важно, что бы при этом он редактировался через админку и с помощью визуального редактора, для удобства клиента.

У нас есть Шаблон с именем Base.

Создаем контейнер в дереве реceрсов (для удобства), в котом будут расположены все блоки, которые мы хотим выводить.

ДЕРЕВО РЕСУРСОВ - НОВЫЙ ДОКУМЕНТ

В него помещаем ресурс, например с названием БЛОК АКИЦЯ, назначаем ему пустой шаблон в него помещаем содержание, которое необходимо вывести. Допустим его ID=7.

Далее создаем новый сниппет с именем trew (Элементы - Сниппеты - Новый) и таким содержанием:

if(!$doc = $modx->getObject('modResource', $docID)){
    return '';
}
return $doc->get('content');

Далее выводим его, вписываем в нужное место в шаблоне Base:

[[mySnippet?docID=`7`]]

Где 7, это ID

 

Второй вариант, более понятный для клиента

  1. Создаем шаблон с именем SiteSettings, пустой.
  2. Делаем несколько TV полей (например блок акции, подпись сайта и тд). Присваиваем их к шаблону SiteSettings.
  3. Создаем новый ресурс с именем НАСТРОЙКИ САЙТА и присваиваем ему шаблон SiteSettings
  4. Скачиваем и устанавливаем пакет getResourceField. В шаблон где надо выводить эти TV вписываем:

    [[getResourceField? &id=`4` &field=`TVLogo` &processTV=`1`]]

где 4 - id ресурса НАСТРОЙКИ САЙТА, TVLogo- имя TV

 

помог Dymskiy