Не могу получить значение placeholder. Тонкости работы парсера?
Уверен, вы мне подскажите, потому что я наверное один не понимаю всех этих тонкостей и нюансов работы различных парсеров и выставления плэйсхолдеров.
В чем проблема.
Есть шаблон, создан как статичный документ.
Вот на скрине его содержимое.
В нем вызывается сниппет (на скрине отображены сразу все варианты вызова, но конечно же я запускал их по одному)
в этом сниппете выставляется плэйсхолдер.
Смотрите скрин.
А ниже в шаблоне я пытаюсь значение получить (там тоже много вариантов написано, но я применял их по одному конечно)
Данные могу получить только через стандартный шаблонизатор, а очень хочется работать с этим плэйсхолдером через fenom, поскольку в коде будет много проверок, условий на наличие тех или иных настроек и хочется использовать ifы foreachи и прочие прелести фенома.
Есть идеи как получить плэйсхолдер в переменную fenom?
Спасибо.
В чем проблема.
Есть шаблон, создан как статичный документ.
Вот на скрине его содержимое.
В нем вызывается сниппет (на скрине отображены сразу все варианты вызова, но конечно же я запускал их по одному)
в этом сниппете выставляется плэйсхолдер.
Смотрите скрин.
А ниже в шаблоне я пытаюсь значение получить (там тоже много вариантов написано, но я применял их по одному конечно)
Данные могу получить только через стандартный шаблонизатор, а очень хочется работать с этим плэйсхолдером через fenom, поскольку в коде будет много проверок, условий на наличие тех или иных настроек и хочется использовать ifы foreachи и прочие прелести фенома.
Есть идеи как получить плэйсхолдер в переменную fenom?
Спасибо.
Комментарии: 8
А сниппет точно отрабатывает?
100 процентов. Если добавить var_dump($apsettings) в сниппете после получения данных, то они распечатаются как положено.
Я ХЗ почему у тебя не работают плейсхолдеры, но я бы на твоём месте просто вернул массив и сохранил его в переменную.
{set $settings = 'SnippetName' | snippet}
Да, это далеко не самый плохой вариант, спасибо.
10 строка ошибка setPlaceholders
Просто так вызови
setPlaceholders и вызывал бы потом.
Просто так вызови
{$apsettings}
А вообще массив бы туда запулил, в crm.settings.setPlaceholders и вызывал бы потом.
$modx->setPlaceholders(array(
'name' => 'John',
'email' => 'jdoe@gmail.com',
),'crm.settings.');
признаюсь, не знал что существует метод setPlaceholderS, всегда пользовался setPlaceholder, но конкретно в моем случае это проблему не решает.
Если я выставляю (неважно как) плейсхолдеры внутри сниппета, то ниже по коду я никак не могу получить их используя феном, только через [[+placeholder_name]]
Если же я в шаблоне выставлю плейсхолдер не внутри сниппета а вот так
Если я выставляю (неважно как) плейсхолдеры внутри сниппета, то ниже по коду я никак не могу получить их используя феном, только через [[+placeholder_name]]
Если же я в шаблоне выставлю плейсхолдер не внутри сниппета а вот так
{$_modx->setPlaceholder('name','value')}
то такой плейсхолдер легко ловится на феноме{set $my_placeholder = $_modx->getPlaceholder('name')}
Попробуйте
{$_pls['+appsettings']}
или {$_modx->getPlaseholder('+appsettings')}
Установленные плейсхолдеры можно посмотреть так:
print_r($modx->placeholders);
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.