Как выводить ID в зависимости от контекста?

Подскажите как правильно организовать меню? Мне требуется указать родительский ресурс, но на английской версии у родителя другой id следовательно выводится русское меню на англ контексте. Как решить эту проблему? Можно как-то менять? И еще вопрос, можно ли через fenom проверить, является ли исходный ресурс контейнером или нет?

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

Василий Столейков
14 марта 2017, 08:58
3
+3
Мне требуется указать родительский ресурс, но на английской версии у родителя другой id следовательно выводится русское меню на англ контексте.
{* В зависимости от контекста указываем нужного родителя *}
{if $_modx->context.key == 'web'}
    {set $parent = 12}
{else}
    {set $parent = 12}
{/if}

{* в параметрах вызова указываем переменную $parent:  *}
    'parent' => $parent,

можно ли через fenom проверить, является ли исходный ресурс контейнером или нет?
конечно, если исходный имеется ввиду текущий, то:
{if $_modx->resource.isfolder == 1}
контейнер
{else}
не контейнер
{/if}
Если в чанке меню, то просто $isfolder
Павел Романов
14 марта 2017, 11:10
+1
Если языки на контекстах, то проще создать свой параметр в настройках контекста.

Допустим, ID каталога в русской версии — 20, а в английской — 50.
Создаете параметр, называете его page_catalog. У русского контекста ставите значение 20, у английского — 50. Тогда можно не делать условия, а просто использовать тег:
&parents=`[[++page_parent]]`