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>
Комментарии: 3
Попробуйте вынести условие:
{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, получается, что туда идет строка, а не результат условия.
Массив только лучше задавать так:
{set $a = ["5","8","9"]}
{if $_modx->resource.parent in list $a}
.....
{/if}
спасибо! работает
странно, думал, что будет прирост скорости, но вызов полностью через Fenom занимает 0.2992 секунды, а если использовать обычный вывод pdoMenu, то 0.2668 секунд
странно, думал, что будет прирост скорости, но вызов полностью через Fenom занимает 0.2992 секунды, а если использовать обычный вывод pdoMenu, то 0.2668 секунд
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.