Fenom передача значения var выше

Здравствуйте!

Меня интересует такой вопрос, возможно ли значение var передать выше в код для исполнения функции?
Пример:
{set $test = 4}
                    {if $test == 5}
                        true
                        {else}
                        false
                    {/if}
{set $test = 5}
Или:
{if $test == 5}
    true
    {else}
        false
{/if}
{set $test = 5}
Как в этом варианте передать значение test = 5 выше, изменив значение 4? Есть ли в Fenom переменные которые читаются из любого положения?
Александр
16 мая 2019, 13:00
modx.pro
158
0

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

Наумов Алексей
16 мая 2019, 13:55
0
{$_modx->setPlaceholder('test', 4)}
Только смотрите, чтобы test был уникальным, а не $id).
    Александр
    16 мая 2019, 14:04
    0
    Странно не всё равно не работает. Я правильно записываю?
    {if $test == 5}
                            true
                            {else}
                            false
                        {/if}
    {$_modx->setPlaceholder('test', 5)}
      Наумов Алексей
      16 мая 2019, 14:06
      0
      Раз записываете переменную так:
      {$_modx->setPlaceholder('test', 5)}
      То далее получать ее значение нужно так:
      {set $test = $_modx->getPlaceholder('test')}
        Александр
        16 мая 2019, 14:10
        0
        Как вывести чтоб получить в if значение true?
        Александр
        16 мая 2019, 14:24
        0
        Так тоже не работает:
        {set $test = $_modx->getPlaceholder('test')}
                            {if $test == 5}
                                true
                                {else}
                                false
                            {/if}
                            {$_modx->setPlaceholder('test', 5)}
          Наумов Алексей
          16 мая 2019, 14:34
          0
          Вы знаете что такое плейсхолдер?
            Александр
            16 мая 2019, 16:20
            0
            Да я знаю что такое плейсхолдер и спрашиваю у вас как получить значение true в if при помощи переменной. Что вы мне пишите? Вы поймите то что я спрашиваю это уже упрощённая до основ задача для примера, которая поможет мне решить мою проблему. Вы мне пишите как определить плейсхолдер для дальнейшего его вывода через [[+test]] или {$test}. Каким образом это может решить поставленную задачу?
              Наумов Алексей
              16 мая 2019, 16:28
              0
              Изначальный вопрос был: «передача значения var выше». Я так понимаю, что у вас есть некий чанк, в процессе обработки которого формируется некая переменная, которую нужно получить в «следующем» чанке. Так?

              Вот чтобы это сделать, в первом чанке вы устанавливаете плейсхолдер через метод setPlaceholder, а во втором чанке — получаете через getPlaceholder.

              Если что-то не так, значит вопрос составлен не совсем ясно.
                Александр
                16 мая 2019, 17:33
                0
                А каким образом мне получить значение плейсхолдера если он не выводится выше для использования в if?
                Александр
                16 мая 2019, 23:12
                0
                Как бы то ни было таким способом невозможно вызвать переменную выше для использования её в условии if. Есть у кого ещё идеи как можно решить эту проблему?
                  Димыч
                  17 мая 2019, 18:29
                  0
                  Порядок вывода информации через css измените. Если правильно понял задачу. Или манипуляцией с JS.
                    Александр
                    17 мая 2019, 19:28
                    0
                    Нет не правильно. Задача сделать это методом fenom, и я уже начинаю думать что это невозможно. Просто в JS есть переменные которые можно вызывать в любом месте вот было интересно можно ли подобное через fenom сделать.
                      Димыч
                      17 мая 2019, 20:59
                      +1
                      Феном рендерит страницу в один проход, и делает это с начала, а не с конца. Естественно, не получится передать значение выше.
                      Александр
                      18 мая 2019, 23:44
                      0
                      Благодарю.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
14