Новости | 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[] ее уже не видно:(