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
modx.pro
1
3 460
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
                  Я его вариант и использую, просто не понятно, почему пример из документации не работает? Видимо кроме Василия нам никто не даст ответ.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            11