|
|
|
Все просто...
Код парсера обрабатывается ДО впихивания в контекст или переменную. После впихивания он не код, а текст.
Образовавшаяся проблема - иллюстрация именно этого.
В данном случае, парсер получает данные из стороннего (не обрабатывающегося) источника. Таких источников, собственно, четыре - ^load[], ^sql[] и ^form[] и, как особый случай, ^include[asis;] - больше снаружи данным браться неоткуда. Посему, если нужно выполнить код парсера, заключенный во внешних данных, нужно пользовать ^process[].
В случае же, если данные "рождаются" внутри исполняемого кода (^var[], ^config[] и, как особый случай, ^include[]) - код выполняется. Следовательно - ^process[] не нужен.
Благодаря этому, возможно "постадийное" выполнение. Пример, конечно, извращенный, но идею показывает ;-)^var[strange;
^^var[strange^;10]
^^var[strange]
]
^process[^var[strange]] Таким образом можно "отложить" выполнение чего-то на "позже" ;-)
|