Fenom + pdoMenu и динамический parent

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

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

<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>
Andrei D.
31 октября 2016, 17:57
modx.pro
6
6 537
+1

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

DocentBF
31 октября 2016, 23:52
1
+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, получается, что туда идет строка, а не результат условия.
    Андрей
    31 октября 2016, 23:58
    3
    +2
    Массив только лучше задавать так:
    {set $a = ["5","8","9"]}
                         
    {if $_modx->resource.parent in list $a}
    
    .....
    
    {/if}
      Andrei D.
      01 ноября 2016, 00:18
      0
      спасибо! работает

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