parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Я делаю так

Andre 04.05.2007 23:26 / 04.05.2007 23:27

Для вставки части шаблона в основной шаблон я сделал свой метод ^incHtml[Имя шаблона]. Имя шаблона и соответствующий ему файл хранятся в БД.
@incHtml[name]
$fname[^oSql.table{select file from templates where name = '$name'}]
^if($fname){
	^try{
		$result[^include[/templates/html/${fname.file}.html]]
	}{
		^if($MAIN._fErrors){$exception.handled(1)}
		$result[<div style="font-size: 12px^; background: #eeeeee^; padding: 5px">
В шаблоне <i>$name</i> указана несуществующая функция</div>]
	}
}{
	$result[<div style="font-size: 12px^; background: #eeeeee^; padding: 5px">
Шаблона <i>$name</i> не существует</div>]
}
В этом метода ^incHtml[] используется немного переделанный (или не переделанный, не помню уже) метод ^include[filename], который выглядит так
@include[sFileName][fFile]
^if(def $sFileName && -f $sFileName){
	$fFile[^file::load[text;$sFileName]]
	^if(def $caller.self){
		$result[^process[$caller.self]{^taint[as-is][$fFile.text]}]
	}{
#		backward
		$result[^process{^taint[as-is][$fFile.text]}]
	}
}{
	$result[]
}
Сам файл с шаблоном -- обычный html-код. Но иногда мне нужно передать туда некоторые параметры, к примеру в шаблоне top.html мне надо, чтобы на разных страницах был разный <title>. Я хочу, чтобы параметры можно было передавать при подключении шаблона в методе ^incHtml[имя шаблона;хэш параметров].

Примерно это должно быть так:
^incHtml[top;$.title[Главная страница сайта]]
, при этом в шаблоне писать
<title>$hParam.title</title>.
У меня получается что переменная передается не дальше метода ^include[], в ^process[] ее уже не видно:(