| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
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[] ее уже не видно:(