Не могу найти решение ...
Появилась задача передать значение переменной, допустим $text из одного файла шаблона Tpl в другой ..
Чтобы сформировать эту переменную идет вызов функции, которая довольно тяжела…
А эта переменная используется в 2х модулях на одной страничке, и два раза ее делать не хотелось бы ..
Возможно ли в смарти передать эту переменную без второго вызова функции?
Как передать переменную из модуля в другой?
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
#1
13 мая 2012 в 06:21
KS, запишите переменную в сессию. А во втором модуле просто возьмите оттуда. Это нужно сделать в файле module.php и затем передать в шаблон. Правда, нужно учесть один момент. Код второго модуля нужно выполнить позже, чем код первого. Но и это нужно обойти. В обоих модулях пишем код. Если переменная существует в сессии, то берем оттуда. Если нет то, берем из базы или откуда нужно. После того как взяли из сессии, уничтожаем эту переменную в сессии.
#3
13 мая 2012 в 08:34
Это не проблема!Код второго модуля нужно выполнить позже, чем код первого.
Марат, Спасибо за помощь !
Я просто думал, что у смарти, что нибудь встроенное для этих целей есть ..
А зачем уничтожать переменную в сессии? Она больше нигде не будет использоваться кроме этого модуля…
Это же нагрузки не дает?
Сегодня в 02:46
#4
13 мая 2012 в 08:40
Уничтожить переменную нужно, если пишете код с проверкой существования этой переменной в сессии для первого и второго модуля. Если не будете уничтожать, то получается условие истинно и при последующих просмотрах переменная для обоих модулей будет браться из сессии. А если уничтожить, то для первого модуля берется из базы, а далее для второго она в сессии существует и берется оттуда. Переменную нужно уничтожить, только если берете его из сессии.А зачем уничтожать переменную в сессии? Она больше нигде не будет использоваться кроме этого модуля ..
#5
13 мая 2012 в 08:43
Все понял. Спасибо!
Тему закрываю…
Тему закрываю…