
Обычно так и поступаем. Другие варианты слишком неудобны, к сожалению.
Дублировать дерево несколько раз?
<?php
$parentid = $modx->runSnippet('UltimateParent');
switch($parentid) {
case 1: $lang = '_ru'; break;
case 2: $lang = '_de'; break;
case 3: $lang = '_en'; break;
default: $lang = '_ru';
}
$chunk.= $lang;
return $modx->getChunk($chunk);
?>
Да, дублированием дерева.
Но можно шаблоны делать одинаковые, а то, что меняется хранить в чанках, так проще chunk_ru chunk_en ...
ну и небольшой сниппет, который я использую, чтобы получить чанки:
то есть вместо {{chunk}} пишу [[chunk? &chunk=`chunk`]], а он уже сам определяет, какой именно чанк подгрузить...
<?php
$lang = $modx->runSnippet('GetField', array('parent' => 1));
$chunk.= ".".$lang;
return $modx->getChunk($chunk);
?>
Только удобнее так
А вот собсно и сам код сниппета chunkselect
Вызывается так
[[chunkselect? &chunk=`ваш_чанк`]]
<?php $lang = $modx->runSnippet('GetField', array('parent' => 1)); $chunk.= ".".$lang; return $modx->getChunk($chunk); ?>
<?php
$lang = $modx->runSnippet('GetField', array('parent' => 1, 'field' => 'alias'));
...
?>$parent = $modx->getParent($modx->documentIdentifier, 1, 'alias'); $palias = $parent['alias'];
Bu$ter link=topic=21754.msg147066#msg147066 date=1205747744]Этот вызов получает алиас самого верхнего родителя? Мне кажется, что нет.
Не следил за ходом беседы и не знаю зачем это всё вам нужно, но то, что пишите неправильно - факт.
$parent = $modx->getParent($modx->documentIdentifier, 1, 'alias'); $palias = $parent['alias'];