Fenom и оператор присутствия 'in'
MODX Revolution 2.6.5-pl, pdotools-2.11.2-pl.
Настройки:
pdotools_fenom_cache: Нет;
pdotools_fenom_default: Да;
pdotools_fenom_modx: Да;
pdotools_fenom_parser: Да;
Вот здесь есть описание оператора in:
Настройки:
pdotools_fenom_cache: Нет;
pdotools_fenom_default: Да;
pdotools_fenom_modx: Да;
pdotools_fenom_parser: Да;
Вот здесь есть описание оператора in:
{var $key = '10'}
// массив + тернарный оператор
{$key | in : [1, 3, 42] ? 'ключ найден' : 'не найден'}
Казалось бы всё просто, меняем переменную на свою и работаем:{$_modx->resource.template | in : [20, 17, 32] ? 'ключ найден: {$_modx->resource.template}' : 'ключ не найден: {$_modx->resource.template} '}
Но здесь начинается волшебство, например: «ключ найден: 1», «ключ найден: 2», «ключ не найден: 3», «ключ найден: 17», «ключ найден: 20». Собственно вопрос: я что-то пропустил или это баг? Комментарии: 11
вы используете модификатор, для корректной работы используйте оператор присутствия
{($key in list [1, 3, 42]) ? 'ключ найден' : 'не найден'}
Спасибо, теперь работает как надо. Возникает вопрос: почему пример из документации pdoTools не работает?
Есть один минус похоже, вот так не работает:
{($_modx->resource.id in list [122,32,125] || $_modx->resource.parent in list [122, 32, 125]) ? 'действие 1' : 'действие 2'}
или я что-то упустил?
сгруппируйте скобками
( ($_modx->resource.id in list [122,32,125]) || ($_modx->resource.parent in list [122, 32, 125]) )
Потому, что у вас синтаксическая ошибка:
Ваш код:
Код который должен работать:
Ваш код:
{$_modx->resource.template | in : [20, 17, 32] ? 'ключ найден: {$_modx->resource.template}' : 'ключ не найден: {$_modx->resource.template} '}
Код который должен работать:
{$_modx->resource.template | in : [20, 17, 32] ? 'ключ найден:' ~ $_modx->resource.template : 'ключ не найден:' ~ $_modx->resource.template}
Не работает: «ключ найден:2». И ошибки в синтаксисе нет. Документация:
Сложный синтаксис
Сложный синтаксис
{"Hi, {$user.name}!"} выводит: Hi, Username!
{"Hi, {$user->name}!"} выводит: Hi, Username!
{"Hi, {$user->getName()}!"} выводит: Hi, Username!
{"Hi, {\$user->name}!"} выводит: Hi, {$user->name}!
Работать будет, только нужно одинарные кавычки заменить на двойные
{$_modx->resource.template | in : [20, 17, 32] ? "ключ найден: {$_modx->resource.template}" : "ключ не найден: {$_modx->resource.template}"}
Мда… Я и не знал
Те же яйца, вид сбоку: «ключ найден: 2»
Вам Володя верно написал, используйте его пример. У вас случайно нет сниппета «in», который переопределяет стандартный модификатор fenom?
Я его вариант и использую, просто не понятно, почему пример из документации не работает? Видимо кроме Василия нам никто не даст ответ.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.