Fenom + pdoMenu и динамический parent Новый

Дополнение: Fenom, pdoMenu

Добрый вечер,

можете подсказать, почему не работает такой вывод?

<ul class="subcategories">
{$_modx->runSnippet('!pdoMenu', [
'parents' 	=> '{if $_modx->resource.parent|in:[10,20,30]}{$_modx->resource.parent}{else}{$_modx->resource.id}{/if}',
'showHidden' 	=> '0',
'level' 	=> '1',
'tplOuter' 	=> '@INLINE {$wrapper}',
'tpl' 		=> '@INLINE <li{$classes}><a href="{$link}" {$attributes}>{$menutitle}</a>{$wrapper}</li>',
'showLog' => 0
])}
</ul>
но так работает:

<ul class="subcategories">
[[!pdoMenu?
&parents=`{if $_modx->resource.parent|in:[23,27,24,26,25,29,30,28]}{$_modx->resource.parent}{else}{$_modx->resource.id}{/if}`
&showHidden=`0`
&level=`1`
&tplOuter=`@INLINE [[+wrapper]]`
&tpl=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li>`
]]
</ul>
31 октября 2016, 20:57    Andrei D.   
3    812 +1

Комментарии (3)

  1. DocentBF 31 октября 2016, 23:52 # +2
    Попробуйте вынести условие:
    {if $_modx->resource.parent|in:[23,27,24,26,25,29,30,28]}{set $cond = $_modx->resource.parent}
    {else}
    {set $cond = $_modx->resource.id}
    {/if}
    {$_modx->runSnippet('!pdoMenu', [
    'parents'=>$cond,
    ...
    
    Или уберите кавычки из параметра parents, получается, что туда идет строка, а не результат условия.
    1. Андрей 31 октября 2016, 23:58 # +2
      Массив только лучше задавать так:
      
      {set $a = ["5","8","9"]}
                           
      {if $_modx->resource.parent in list $a}
      
      .....
      
      {/if}
      
      
      1. Andrei D. 01 ноября 2016, 00:18 # 0
        спасибо! работает

        странно, думал, что будет прирост скорости, но вызов полностью через Fenom занимает 0.2992 секунды, а если использовать обычный вывод pdoMenu, то 0.2668 секунд
    Вы должны авторизоваться, чтобы оставлять комментарии.