Как упростить условие на Fenom
        У меня есть такое условие:
Как упростить условия — показать родителя и всех его потомков без явного указания дочерних ID?
$id == '15' OR $id == '31' OR $id == '32' OR $id == '33' OR $id == '34'
PS. ID родителя постоянен и от него можно отталкиваться.
    
    
                                                                                
            {if $id == '15' OR $id == '31' OR $id == '32' OR $id == '33' OR $id == '34'}
выводится код
{/if}15 это ID родителя, все остальные ID (31,32,33,34) это дочки этого родителя.Как упростить условия — показать родителя и всех его потомков без явного указания дочерних ID?
$id == '15' OR $id == '31' OR $id == '32' OR $id == '33' OR $id == '34'
PS. ID родителя постоянен и от него можно отталкиваться.
Комментарии: 14
                а где условие? в чанке или на странице? 
если в чанке, то
если на странице, то
                    если в чанке, то
{if $parent == '15'}
	выводится код
{/if}если на странице, то
{if $_modx->resource.parent == '15'}
	выводится код
{/if}            
                У меня в шаблоне вот такой код:
                    {set $id = $_modx->resource.id}
{if $id == '15' OR $id == '31' OR $id == '32' OR $id == '33' OR $id == '34'}
код
{/if}            {if $_modx->resource.id== '15' OR $_modx->resource.parent == '15' }
	код
{/if}            
                Вы очень выручили, спасибо вам большое, подошло!            
                    
                Возможно, вам лучше подойдет модификатор in.
github.com/fenom-template/fenom/blob/master/docs/ru/mods/in.md
                    github.com/fenom-template/fenom/blob/master/docs/ru/mods/in.md
                Только что попробовал с помощью модификатора in найти значение в массиве. И как-то странно он работает.
Пример отсюда:
                    Пример отсюда:
in - оператор проверки наличия подстроки в строке или значения в массиве
{var $key = '10'}
// строка
{if $key | in : 'У меня 10 яблок'}
Ключ найден
{/if}
// массив + тернарный оператор
{$key | in : [1, 3, 42] ? 'ключ найден' : 'не найден'}Со строками всё понятно. С массивом на первый взгляд тоже. Но если переменной $key присвоить значение, например, '0', то это значение будет найдено в массиве:{var $key = '0'}
{$key | in : [1, 3, 42] ? 'ключ найден' : 'не найден'}В массиве же нет такого значения. Модификатор in ищет и по значениям и по ключам?            
                Понял. Спасибо!!!
Получается, из-за возможности указать как именно искать оператор in гораздо удобнее модификатора in. Странно что модификатор in реализован без этих параметров.
                    Получается, из-за возможности указать как именно искать оператор in гораздо удобнее модификатора in. Странно что модификатор in реализован без этих параметров.
                Модификатор in, скорее всего, работает так из-за того, что он списан с аналогичного модификатора у родного парсера MODX.            
                    
                Похоже на то. Спасибо, что помогли разобраться)            
                    
                Спасибо! Вы мне помогли)            
                    
                Может лучше так
                    {set $key = ["15","31" ,"32" ,"33" ,"34"]}{if $_modx->resource.id in list $key}…{/if}            
                плох тем, что надо указывать ID всех дочек, а их может быть больше или меньше. Так что пока самый лучший вариант от Евгений Webinmd            
                    {if $count?}
                {var $par_rp = $_modx->resource.parent | resource : "parent"}
                {set $key = ["242", "243","245" ,"249" ,"288" ,"289" ,"290" ,"291"]}
                {if $_modx->resource.template == 24 OR $par_rp in list $key }
                    {$count} м.
                {else}
                    {$count} шт.
                {/if}
            {else}
                {ignore}
                    <small>в пути</small>
                {/ignore}
            {/if}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.