Как передать переменную из модуля в другой?

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 13 мая 2012 в 06:21
Не могу найти решение ...

Появилась задача передать значение переменной, допустим $text из одного файла шаблона Tpl в другой ..
Чтобы сформировать эту переменную идет вызов функции, которая довольно тяжела…
А эта переменная используется в 2х модулях на одной страничке, и два раза ее делать не хотелось бы ..

Возможно ли в смарти передать эту переменную без второго вызова функции?
#2 13 мая 2012 в 07:56
KS, запишите переменную в сессию. А во втором модуле просто возьмите оттуда. Это нужно сделать в файле module.php и затем передать в шаблон. Правда, нужно учесть один момент. Код второго модуля нужно выполнить позже, чем код первого. Но и это нужно обойти. В обоих модулях пишем код. Если переменная существует в сессии, то берем оттуда. Если нет то, берем из базы или откуда нужно. После того как взяли из сессии, уничтожаем эту переменную в сессии.
#3 13 мая 2012 в 08:34

Код второго модуля нужно выполнить позже, чем код первого.

Марат
Это не проблема!

Марат, Спасибо за помощь !
Я просто думал, что у смарти, что нибудь встроенное для этих целей есть ..

А зачем уничтожать переменную в сессии? Она больше нигде не будет использоваться кроме этого модуля…
Это же нагрузки не дает?
#4 13 мая 2012 в 08:40

А зачем уничтожать переменную в сессии? Она больше нигде не будет использоваться кроме этого модуля ..

Уничтожить переменную нужно, если пишете код с проверкой существования этой переменной в сессии для первого и второго модуля. Если не будете уничтожать, то получается условие истинно и при последующих просмотрах переменная для обоих модулей будет браться из сессии. А если уничтожить, то для первого модуля берется из базы, а далее для второго она в сессии существует и берется оттуда. Переменную нужно уничтожить, только если берете его из сессии.
#5 13 мая 2012 в 08:43
Все понял. Спасибо!
Тему закрываю…
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.