В шаблоне не видно define переменную

В конфиге модуля (config.route.php) объявляю переменную

define('ROUTE_PAGE_TEST', 'testpage');


Потом в текущем шаблоне (header_top.tpl) пишу

{$ROUTE_PAGE_TEST}


выдает '' (пустую строку)

Такое чувство, что сначала шаблон подгребается, а уже потом конфиги модуля.

Подскажите пожалуйста, почему так?

8 комментариев

avatar
вот так попробуй
if (defined('ROUTE_PAGE_PAGE'))
     $this->Assign("ROUTE_PAGE_PAGE",ROUTE_PAGE_PAGE); 
avatar
Странно, что приходиться такое проделывать для define переменных.
Но в любом случае спасибо!
avatar
для начала это не переменная, а константа.
Любую переменную/Константу и всякую чушь в смарти надо инициализировать.
avatar
или вот так: classes/modules/sys_viewer/Viewer.class.php


/**
* Константы роутинга страниц
*/

ниже добавляем:

$this->Assign("ROUTE_PAGE_FRIENDS",ROUTE_PAGE_FRIENDS);  


вообще пользуйся поиском! вот что я нашел:

avatar
И ещё раз спасибо! =)
avatar
Это делается в экшенах. Пример из LSMI:
protected function EventAbout() {
		$this->Viewer_AddHtmlTitle($this->Lang_Get('mod_about'));
		$this->SetTemplateAction('about');
		$this->pMenu='about';
		
		$get_ver = $this->Mod_CheckVersionMI();
		if($get_ver > LSMI_VERSION){
			$this->Viewer_Assign('last_installer_version',$get_ver);
		}
}

avatar
ссылки куда-то делись))
avatar
добавь ещё раз! или в приват
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.