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:
{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». Собственно вопрос: я что-то пропустил или это баг?
Янис
07 августа 2018, 18:14
1
350
0

Комментарии: 11

Володя
07 августа 2018, 18:45
1
+1
вы используете модификатор, для корректной работы используйте оператор присутствия
{($key in list [1, 3, 42]) ? 'ключ найден' : 'не найден'}
    Янис
    07 августа 2018, 19:32
    0
    Спасибо, теперь работает как надо. Возникает вопрос: почему пример из документации pdoTools не работает?
    Maxim
    20 сентября 2018, 13:14
    0
    Есть один минус похоже, вот так не работает:
    {($_modx->resource.id in list [122,32,125] || $_modx->resource.parent in list [122, 32, 125]) ? 'действие 1' : 'действие 2'}
    или я что-то упустил?
      Володя
      20 сентября 2018, 17:52
      0
      сгруппируйте скобками
      ( ($_modx->resource.id in list [122,32,125]) || ($_modx->resource.parent in list [122, 32, 125]) )
Баха Волков
07 августа 2018, 21:48
0
Потому, что у вас синтаксическая ошибка:

Ваш код:

{$_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}
    Янис
    07 августа 2018, 21:57
    0
    Не работает: «ключ найден:2». И ошибки в синтаксисе нет. Документация:

    Сложный синтаксис
    {"Hi, {$user.name}!"}        выводит: Hi, Username!
    {"Hi, {$user->name}!"}       выводит: Hi, Username!
    {"Hi, {$user->getName()}!"}  выводит: Hi, Username!
    {"Hi, {\$user->name}!"}      выводит: Hi, {$user->name}!
    Денис
    08 августа 2018, 08:29
    +1
    Работать будет, только нужно одинарные кавычки заменить на двойные

    {$_modx->resource.template | in : [20, 17, 32] ? "ключ найден: {$_modx->resource.template}" : "ключ не найден: {$_modx->resource.template}"}
      Баха Волков
      08 августа 2018, 13:48
      +1
      Мда… Я и не знал
      Янис
      08 августа 2018, 14:22
      0
      Те же яйца, вид сбоку: «ключ найден: 2»
        Денис
        08 августа 2018, 14:28
        0
        Вам Володя верно написал, используйте его пример. У вас случайно нет сниппета «in», который переопределяет стандартный модификатор fenom?
          Янис
          08 августа 2018, 14:36
          0
          Я его вариант и использую, просто не понятно, почему пример из документации не работает? Видимо кроме Василия нам никто не даст ответ.