duron16 17 марта 2016 1 2
Добрый день, коллеги.
Очень нужна Ваша помощь в решении вопроса.
Делаю вывод ТВ (чекбоксами) в админку вот так:

@EVAL
$output = $modx->runSnippet('pdoResources',array( 
'parents'=> '88,94,95', 
'tpl'=>'@CODE:[[+pagetitle]] / [[+longtitle]]==[[+id]]', 
'hideContainers'=>'1', 
'outputSeparator'=>'||')); 
return '' . $output;


Все хорошо работает, вот только сайт мультиязычный и в строке:
'parents'=> '88,94,95',

должен быть только один ид, тот который принадлежит языку, а не все 3 сразу.
Никак не могу этого добиться. Я не думаю, что первый, кто столкнулся с данным вопросом, но, к сожалению, найти ответ не удалось.

Уже пробовал разные вариации.
1.
'parents'=>$modx->getOption('myParentId'),

В контексты забил опцию myParentId и каждому языку присвоил нужный ид. Просто создал сниппет (для теста вывода):
return $modx->getOption('myParentId');

Во фронтенде он возвращает ид шаблона соответствующего данному языку, а в админке подтягивает непонятно что.

2. И так пробовал:

$cultureKey = $modx->getOption('cultureKey');
$parent = '';
switch($cultureKey){
case 'ru':
$parent = 88;
break;
case 'ua':
$parent = 94;
break;
case 'en':
$parent = 95;
break;
}
$output = $modx->runSnippet('pdoResources',array( 
'parents'=>$parent,


Может есть у кого-то решение, или предположения?
2 комментария
Eo_Narique1
Eo_Narique 17 марта 2016г в 16:13 #
надеюсь ты понимаешь, что в админке всегда активен контекст mgr, поэтому твое
>> $cultureKey = $modx->getOption('cultureKey');

не работает

тебе нужно всего лишь узнать, в каком контексте находится редактируемый документ

$parent = 0;
switch($modx->resource->context_key){
case 'ru':
    $parent = 88;
    break;
case 'en':
    $parent = 95;
    break;
default:
}
$output = $modx->runSnippet('pdoResources',array( 
'parents'=> $parent, 
'tpl'=>'@CODE:[[+pagetitle]] / [[+longtitle]]==[[+id]]', 
'hideContainers'=>'1', 
'outputSeparator'=>'||'));<br />
d
duron16 17 марта 2016г в 20:52 #
Олег Анатольевич, большое спасибо за ответ.
Я только начинаю работать с МодХ (несколько месяцев).
Вопрос помогли решить таким путем, делюсь может кто-еще будет искать из начинающих:
@EVAL
$parent = $_GET;
switch(end($parent)){
case 'web':
$parent_w = 88;
break;
case 'ua':
$parent_w = 94;
break;
case 'en':
$parent_w = 95;
break;
}
$output = $modx->runSnippet('pdoResources',array(
'parents'=> $parent_w,
'tpl'=>'@CODE:[[+pagetitle]] / [[+longtitle]]==[[+id]]',
'hideContainers'=>'1',
'outputSeparator'=>'||'));
return $output;
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.