Как передать параметр из Clientconfig в PdoMenu
Есть такой вызов меню:
Так вот, Fenom не хочет подхватывать этот параметр.
Пробовал так
Что я делаю не так? Как передать параметр в сниппет?
{$_modx->runSnippet('pdoMenu', [
'level' => '1',
'parents' => '2,3',
'resources' => '[[++set_menu_top]]',
'scheme' => 'full',
'tplOuter' => '@INLINE {$wrapper}',
'tpl' => '@INLINE <a href="{$link}">{$menutitle}</a>'
])}
В Clientconfig добавил параметр set_menu_top, в которой список Id ресурсов, через запятую.Так вот, Fenom не хочет подхватывать этот параметр.
Пробовал так
{'set_menu_top' | option}
и так {$_modx->config.set_menu_top}
— тоже не видит его.Что я делаю не так? Как передать параметр в сниппет?
Комментарии: 15
Попробуй так:
$_modx->config.set_menu_top
Пробовал и так — не работает.
{$_modx->runSnippet('pdoMenu', [
'level' => 1,
'parents' => '2,3',
'resources' => $_modx->config.set_menu_top,
'scheme' => 'full',
'tplOuter' => '@INLINE {{+wrapper}}',
'tpl' => '@INLINE {{+menutitle}}'
])}
'level' => 1,
'parents' => '2,3',
'resources' => $_modx->config.set_menu_top,
'scheme' => 'full',
'tplOuter' => '@INLINE {{+wrapper}}',
'tpl' => '@INLINE {{+menutitle}}'
])}
Ват вызов с рабочего сайта:
{$_modx->runSnippet('pdoMenu', [
'fastMode' => 1,
'parents' => $_modx->resource.id,
'resources' => '',
'cache' => 1,
'level' => 1,
'showHidden' => 1,
'firstClass' => 0,
'lastClass' => 0,
'hereClass' => 'uk-active',
'tplOuter' => '@INLINE <div class="uk-width-1-1"><div class="uk-panel uk-panel-box uk-flex uk-flex-center"><ul class="uk-subnav uk-subnav-line">{{+wrapper}}</ul></div></div>',
'tpl' => '@INLINE <li class=""><a href="{{+link}}" {{+attributes}} title="{{+pagetitle}}">{{+menutitle}}</a>{{+wrapper}}</li>'
])}
Благодарю, все работает!
$_modx->config['set_menu_top']
Config не объект, а массив, если не ошибаюсь.
Config не объект, а массив, если не ошибаюсь.
а тут, в доках, так {$_modx->config.system_setting}
У меня на одном проекте
{$_modx->config.cultureKey}
не отрабатывает, а вот {$_modx->config['cultureKey']}
работает прекрасно.
Спасибо, буду иметь ввиду. Пока у меня
PS у меня в статичных шаблонах и чанках, а в вашем случае в чанках или в шаблоне?
lang="{$_modx->config.cultureKey}"
выводит все как надо, но мало ли)PS у меня в статичных шаблонах и чанках, а в вашем случае в чанках или в шаблоне?
Использовал двойные кавычки вместо одинарных, иначе отказывалось работать.
{$_modx->runSnippet('!AjaxForm', [
'emailSubject' => "{$_modx->config.site_name}",
'emailTo' => "{$_modx->config.myemail}",
'snippet' => 'FormIt',
'form' => 'formTpl',
'hooks' => 'email,spam',
'emailTpl' => 'contactFormTpl',
'validate' => 'workemail:blank,name:required,contact:required,textareatype:required',
'validationErrorMessage' => 'Errors in form',
'successMessage' => 'Success',
])}
без кавычек работает
'emailSubject' => $_modx->config.site_name,
'emailTo' => $_modx->config.myemail,
Без кавычек феном вообще не компилится. Может ещё от переменных зависит.
Без кавычек феном вообще не компилитсявы не правы
вот, все работает, и все правильно
{set $position4 =$_modx->runSnippet('!pdoResources', [
'fastMode' => 1,
'scheme' => 'full',
'parents' => $_modx->config.snfi_short_news,
'depth' => 0,
'context' => 'web',
'resources' => $_modx->config.snfi_short_news_minus,
'hideContainers' => 1,
'limit' => 6,
'tpl' => 'tpl_hp_position4',
])}
<!-- тут снипет автовывода -->
{if $_modx->config.snfi_popular_articles_auto == 1}
{set $position_resources = $_modx->config.statisticsforposition5}
{else}
{set $position_resources = $_modx->config.snfi_popular_articles}
{/if}
{set $position5 =$_modx->runSnippet('!pdoResources', [
'fastMode' => 1,
'scheme' => 'full',
'includeTVs' => 'title_image',
'parents' => $_modx->config.allparents_web_fi,
'depth' => 0,
'context' => 'web',
'resources' => $position_resources,
'hideContainers' => 1,
'limit' => 3,
'tpl' => 'tpl_hp_position5',
])}
ну как же не прав, когда вот такое
{$_modx->runSnippet('!AjaxForm', [
'emailSubject' => {$_modx->config.site_name},
'emailTo' => {$_modx->config.myemail},
'snippet' => 'FormIt',
'form' => 'formTpl',
'hooks' => 'email,spam',
'emailTpl' => 'contactFormTpl',
'validate' => 'workemail:blank,name:required,contact:required,textareatype:required',
'validationErrorMessage' => 'Errors in form',
'successMessage' => 'Success',
'errTpl' => 'error'
])}
[2016-12-24 08:35:14] (ERROR @ /var/www/xxx/xxx.xx/core/components/pdotools/model/pdotools/pdotools.class.php : 940) Unexpected token '{' in expression in 2005a6c32190159a1939eaf948eb2a80 line 150, near '{$_modx->runSnippet('!AjaxForm', [↵ 'emailSubject' => {' <- there
upd. ааа все понял, не прав, иду спать
А я вот что обнаружил, в одном контексте (web) в документе переменные из настроек ClientConfig выводятся, а а другом контексте — нет. Т.е. если это настройки системные- все норм, а если ClientConfig — то пусто))
1- {$_modx->config['may_mail_1']} or {$_modx->config.may_mail_1} - переменные из ClientConfig в контексте web все норм, в других проблемы - пусто
2- [[++may_mail_1]] переменные из ClientConfig но стандартный тег- все норм во всех контекстах
{$_modx->config.site_name} - системная настройка, все норм во всех контекстах
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.