В лексиконы не подставляются GET-параметры
Как подставить в языковую переменную динамический GET-параметр?
Пробовал разные варианты подставления GET-параметров, но ни один из них не работает — впечатление что лексикон парсится первым, а уже потом все остальные теги.
Я должен получить следующее:
Я пробовал разные варианты:
Но если бы сначала парсился тег лексикона без GET переменной, тогда хотя бы вывело на странице что-то типа "category." и я бы знал, что не подставился никакой GET, но на странице пусто!
Или я чего-то недопонимаю? Есть ли варианты обойти этот глюк?
P.S. Проблема не из-за точки. Я пробовал варианты типа [[%category_[[!#GET.category]]]] (через нижнее подчёркивание) — то же самое.
Пробовал разные варианты подставления GET-параметров, но ни один из них не работает — впечатление что лексикон парсится первым, а уже потом все остальные теги.
Я должен получить следующее:
[[%category.1]] // где 1 это GET параметр.
Если просто жёстко написать [[%category.1]], то нормально выведется название категории из словарей. Но мне нужно подставлять в зависимости от параметра в адресной строке.Я пробовал разные варианты:
[[%category.[[!#GET.category]]]] // через PDO парсер
[[%category.[[!+GET.category]]]] // через плагин, который записывает GET в плейсхолдер
[[%category.[[!GET?key=`category`]]]] // через сниппет
Везде один и тот же результат — пустота. Даже не выводится название переменной, как бывает, если она не существует в словарях.Но если бы сначала парсился тег лексикона без GET переменной, тогда хотя бы вывело на странице что-то типа "category." и я бы знал, что не подставился никакой GET, но на странице пусто!
Или я чего-то недопонимаю? Есть ли варианты обойти этот глюк?
P.S. Проблема не из-за точки. Я пробовал варианты типа [[%category_[[!#GET.category]]]] (через нижнее подчёркивание) — то же самое.
Поблагодарить автора
Отправить деньги
Комментарии: 2
Как вариант — создайте сниппет getLexicon примерно с таким содержанием:
Вызывается как-то так: [[!getLexicon? &name=`category.` &get=`category` &cultureKey=`ru` &namespace=`core` &theme=`about`]]
Должно помочь.
<?php
if (!isset($cultureKey)) {
$cultureKey = 'ru';
}
if (!isset($namespace) || !isset($theme) || !isset($get) || !isset($name)) {
return;
}
$modx->setOption('cultureKey', $cultureKey);
$modx->lexicon->load($namespace.':'.$theme);
return $modx->lexicon($name.''.$_GET[$get]);
Вызывается как-то так: [[!getLexicon? &name=`category.` &get=`category` &cultureKey=`ru` &namespace=`core` &theme=`about`]]
Должно помочь.
Да, помогло! Спасибо за логичное решение!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.