Непонятное поведение выборки массивов шаблонизатором Fenom
Вывожу сниппет только у определённых ресурсов которых 23 шт.
При выводе на всех 23-х ресурсах сниппет выводится и на других, не имеющих к этой выборке ресурсах.
Пример снизу: — выводит сниппет на ресурсе с id 45, хотя не должен
Т.е., когда в выборке участвуют более 18 ресурсов, появляется глюк. Когда до 18-ти — всё как часы.
В чём может быть проблема?
При выводе на всех 23-х ресурсах сниппет выводится и на других, не имеющих к этой выборке ресурсах.
Пример снизу: — выводит сниппет на ресурсе с id 45, хотя не должен
{if $_modx->resource.id | in : [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]}
тут сниппет
{/if}
Убираю из выборки 5 любых ресурсов (1,2,3,4,5 или 10,11,12,13,14 или 17,18,19,20,21) и всё работает как надо.Т.е., когда в выборке участвуют более 18 ресурсов, появляется глюк. Когда до 18-ти — всё как часы.
В чём может быть проблема?
Комментарии: 7
Попробовал стандартный шаблонизатор:
[[*id:is=`1`:or:is=`2`:or:is=`3`:or:is=`4`:or:is=`5`:or:is=`6`:or:is=`7`:or:is=`8`:or:is=`9`:or:is=`10`:or:is=`11`:or:is=`12`:or:is=`13`:or:is=`14`:or:is=`15`:or:is=`16`:or:is=`17`:or:is=`18`:or:is=`19`:or:is=`20`:or:is=`21`:or:is=`22`:or:is=`23`:then=`Здесь сниппет`:else=``]]
Работает правильно, глюков нет!
in проверяет еще array_key_exists, м.б. все же попадает?..
А так
{switch $_modx->resource.id}
{case '1','2','3','4','5','6'}
тут сниппет
{case default}
{/switch}
Будет глюк?
Такой вариант всё правильно выводит.
Мне кажется, он и более корректен.
Посмотрите в документации к Fenom на Github (ссылки нет под рукой).
Посмотрите в документации к Fenom на Github (ссылки нет под рукой).
А если не модификатор?
{if $_modx->resource.id in list [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]}
тут сниппет
{/if}
И этот вариант корректно работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.