Для определения главной страницы заходим в "Настройки системы" раздела "Система" и находим пункт "Главная страница сайта" (в фильтре вы можете указать имя параметра "site_start") в разделе "сайт".
Второй вопрос - как же узнать, что наш пользователь находится именно на главной старнице (например мы хотим, чтобы скрипт приветствия был только на главной, для этого лучше использовать условие, нежели писать новый шаблон для галвной страницы)?
В шаблоне, чанке, или на самой странице пишем слудующую инструкцию, не забудьте сначала убедиться, что у вас установлен пакет "If" (этот пакет рекомендуется обязательным для большинства проектов):
[[!If?
&subject=`[[*id]]`
&operator=`==`
&operand=`[[++site_start]]`
&then=`[[$чанк_для_главной]]`
&else=`[[$чанк_для_не_главной]]`
]]
Напомню, что конструкция "[[*id]]" выводит "id" текущей страницы, в данном примере "id" текущей страницы будет сравнен с "id" главной страницы.
Второй вопрос - как же узнать, что наш пользователь находится именно на главной старнице (например мы хотим, чтобы скрипт приветствия был только на главной, для этого лучше использовать условие, нежели писать новый шаблон для галвной страницы)?
В шаблоне, чанке, или на самой странице пишем слудующую инструкцию, не забудьте сначала убедиться, что у вас установлен пакет "If" (этот пакет рекомендуется обязательным для большинства проектов):
[[!If?
&subject=`[[*id]]`
&operator=`==`
&operand=`[[++site_start]]`
&then=`[[$чанк_для_главной]]`
&else=`[[$чанк_для_не_главной]]`
]]
Напомню, что конструкция "[[*id]]" выводит "id" текущей страницы, в данном примере "id" текущей страницы будет сравнен с "id" главной страницы.
А как сделать такое же для всех дочерних id?
ОтветитьУдалитьЯ понимаю что parent но как это все записать?
А смысле дочерних? Дочерних главной страницы?
ОтветитьУдалить[[*id:is=`[[++site_start]]`:then=`Главная`]]
ОтветитьУдалить[[*parent:is=`[[++site_start]]`:then=`Под-страница главной страницы`]]
Этот комментарий был удален автором.
ОтветитьУдалитьЭтот комментарий был удален автором.
ОтветитьУдалитьМожно написать сниппет, определяющий id верхнего родителя:
ОтветитьУдалить=====Сниппет: getHeadParentId=====
$parent_first = $modx->resource->get('id');
do{
$res = $modx->getObject('modResource', array('id' => $parent_first));
if($res->parent) $parent_first = $res->parent;
}while($res->parent);
return $parent_first;
=====
И сравнить результат с id главной страницы:
[[getHeadParentId:is=`[[++site_start]]`:then=`Под-старница главной любой глубины вложенности`]]
мне нужно чтобы все дочерние ресурсы двух разделов (id = 2, id = 116)
ОтветитьУдалитьдолжны выводить определенный чанк.
[[getHeadParentId:is=`2`:then=`[[$a]]`]]
ОтветитьУдалить[[getHeadParentId:is=`16`:then=`[[$b]]`]]
Можно и поизящней. Изменив сниппет.
Этот комментарий был удален автором.
ОтветитьУдалить