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
1 272
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