Не могу получить значение placeholder. Тонкости работы парсера?

Уверен, вы мне подскажите, потому что я наверное один не понимаю всех этих тонкостей и нюансов работы различных парсеров и выставления плэйсхолдеров.
В чем проблема.
Есть шаблон, создан как статичный документ.
Вот на скрине его содержимое.

В нем вызывается сниппет (на скрине отображены сразу все варианты вызова, но конечно же я запускал их по одному)
в этом сниппете выставляется плэйсхолдер.
Смотрите скрин.

А ниже в шаблоне я пытаюсь значение получить (там тоже много вариантов написано, но я применял их по одному конечно)
Данные могу получить только через стандартный шаблонизатор, а очень хочется работать с этим плэйсхолдером через fenom, поскольку в коде будет много проверок, условий на наличие тех или иных настроек и хочется использовать ifы foreachи и прочие прелести фенома.

Есть идеи как получить плэйсхолдер в переменную fenom?
Спасибо.
Александр Мельник
30 июня 2022, 11:55
modx.pro
157
0

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

Артур
30 июня 2022, 12:02
0
А сниппет точно отрабатывает?
    Александр Мельник
    30 июня 2022, 12:04
    0
    100 процентов. Если добавить var_dump($apsettings) в сниппете после получения данных, то они распечатаются как положено.
    Артур
    30 июня 2022, 14:07
    0
    Я ХЗ почему у тебя не работают плейсхолдеры, но я бы на твоём месте просто вернул массив и сохранил его в переменную.
    {set $settings = 'SnippetName' | snippet}
    Роман
    30 июня 2022, 15:28
    0
    10 строка ошибка setPlaceholders
    Просто так вызови
    {$apsettings}
    А вообще массив бы туда запулил, в crm.settings.
    setPlaceholders и вызывал бы потом.
    $modx->setPlaceholders(array(
       'name' => 'John',
       'email' => 'jdoe@gmail.com',
    ),'crm.settings.');
      Александр Мельник
      01 июля 2022, 07:45
      0
      признаюсь, не знал что существует метод setPlaceholderS, всегда пользовался setPlaceholder, но конкретно в моем случае это проблему не решает.
      Если я выставляю (неважно как) плейсхолдеры внутри сниппета, то ниже по коду я никак не могу получить их используя феном, только через [[+placeholder_name]]
      Если же я в шаблоне выставлю плейсхолдер не внутри сниппета а вот так
      {$_modx->setPlaceholder('name','value')}
      то такой плейсхолдер легко ловится на феноме
      {set $my_placeholder = $_modx->getPlaceholder('name')}
      Максим
      01 июля 2022, 21:22
      0
      Попробуйте
      {$_pls['+appsettings']}
      или
      {$_modx->getPlaseholder('+appsettings')}
        Максим
        01 июля 2022, 21:34
        0
        Установленные плейсхолдеры можно посмотреть так:
        print_r($modx->placeholders);
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          8