Определение уровня документа

Захотел сделать разный вывод результатов pdoresources в зависимости от уровня вложенности документа. То есть, если ресурс 3 уровня (Рубрика/Подрубрика/Документ), то в шаблоне про него выводить pagetitle родителя и pagetitle собственно самого документа. А если ресурс 2-го уровня (Рубрика/Документ), чтоб выводился только pagetitle документа.
Как?
Алексей Яковлев
02 апреля 2015, 14:27
modx.pro
2 218
0

Комментарии: 8

Павел Левин
02 апреля 2015, 18:07
0
Алексей Яковлев
02 апреля 2015, 20:01
0
В идеале хотелось бы что-то вроде определителя уровня [[+id]]. Не знаю только, как можно было бы оформить эту логику в вызове внутри шаблона. Типа, if уровень вложенности +id = 3, то пишем pagetitle родителя и pagetitle +id, else (то есть в моем случае уровень вложенности +id = 2) пишем только pagetitle +id.?
    Алексей Яковлев
    03 апреля 2015, 01:44
    0
    в итоге со своей задачей разобрался двойной проверкой, а именно 1) является ли родитель контейнером, и если да то 2) совпадает ли его id с id родителя текущего документа, то есть уровень вложенности документа 2 (а не 3).
    вывод в шаблоне выглядит так:
    [[+isfolder:is=`0`:then=`[[+parent:is=`[[+id:pdoField=`{"field":"id", "top":2}`]]`:then=`[[+pagetitle]]`:else=`[[!pdoField? &id=`[[+parent]]` &field=`pagetitle`]]. [[+pagetitle]]`]]`:else=`[[+pagetitle]]`]]
    вычурно, но авось кому пригодится.
      Алексей Ерохин
      03 апреля 2015, 13:45
      0
      Может проще разделить по шаблонам?
        Алексей Яковлев
        06 апреля 2015, 01:31
        0
        не подходит, если шаблоны на одном уровне должны быть (или уже так вышло) разные…
      Сергей Шлоков
      03 апреля 2015, 18:54
      1
      0
      Для описанной выше задачи (3-уровня, 3-й уровень — документ) можно сделать все проще.
      Алгоритм следующий:
      1-й уровень — isfolder=1, parent=0
      2-й уровень — isflolder=1, parent !=0
      3-й уровень — isfolder=0.
      Ну а составить правильный фильтр дело техники.
      П.С. Я думаю, это решение будет пошустрее, чем предложенное выше.
        Алексей Яковлев
        06 апреля 2015, 01:28
        0
        если быстрее, надо попробовать, вроде похоже на то, что нужно. А как это должно выглядеть семантически, в шаблоне? а то боюсь зависнуть в пробах и ошибках )
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        8