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

Дополнение: Babel

Подскажите как правильно организовать меню? Мне требуется указать родительский ресурс, но на английской версии у родителя другой id следовательно выводится русское меню на англ контексте. Как решить эту проблему? Можно как-то менять? И еще вопрос, можно ли через fenom проверить, является ли исходный ресурс контейнером или нет?
14 марта 2017, 02:19    Вячеслав Евгеньевич…   
0    157 0

Комментарии (2)

  1. Василий Столейков 14 марта 2017, 08:58 # +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
    1. Павел Романов 14 марта 2017, 11:10 # +1
      Если языки на контекстах, то проще создать свой параметр в настройках контекста.

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