Определение того, что пользователь на главной странице

Для определения главной страницы заходим в "Настройки системы" раздела "Система" и находим пункт "Главная страница сайта" (в фильтре вы можете указать имя параметра "site_start") в разделе "сайт".

Второй вопрос - как же узнать, что наш пользователь находится именно на главной старнице (например мы хотим, чтобы скрипт приветствия был только на главной, для этого лучше использовать условие, нежели писать новый шаблон для галвной страницы)?

В шаблоне, чанке, или на самой странице пишем слудующую инструкцию, не забудьте сначала убедиться, что у вас установлен пакет "If" (этот пакет рекомендуется обязательным для большинства проектов):

[[!If?
  &subject=`[[*id]]`
  &operator=`==`
  &operand=`[[++site_start]]`
  &then=`[[$чанк_для_главной]]`
  &else=`[[$чанк_для_не_главной]]`
]]

Напомню, что конструкция "[[*id]]" выводит "id" текущей страницы, в данном примере "id" текущей страницы будет сравнен с "id" главной страницы.

9 комментариев:

  1. А как сделать такое же для всех дочерних id?
    Я понимаю что parent но как это все записать?

    ОтветитьУдалить
  2. А смысле дочерних? Дочерних главной страницы?

    ОтветитьУдалить
  3. [[*id:is=`[[++site_start]]`:then=`Главная`]]
    [[*parent:is=`[[++site_start]]`:then=`Под-страница главной страницы`]]

    ОтветитьУдалить
  4. Этот комментарий был удален автором.

    ОтветитьУдалить
  5. Этот комментарий был удален автором.

    ОтветитьУдалить
  6. Можно написать сниппет, определяющий 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=`Под-старница главной любой глубины вложенности`]]

    ОтветитьУдалить
  7. мне нужно чтобы все дочерние ресурсы двух разделов (id = 2, id = 116)
    должны выводить определенный чанк.

    ОтветитьУдалить
  8. [[getHeadParentId:is=`2`:then=`[[$a]]`]]
    [[getHeadParentId:is=`16`:then=`[[$b]]`]]

    Можно и поизящней. Изменив сниппет.

    ОтветитьУдалить
  9. Этот комментарий был удален автором.

    ОтветитьУдалить