Вопрос-ответ по шаблонизаторам
1.
Александр (10.03.2013 / 02:09)
Пишем тут вопросы по шаблонизаторам.
Желательно без флуда на тему "есть лучше" или "шаблоны - Зло".
Думаю пользователи сами выбирают с чем работать.
Добавлено через 01:14 сек.
Вопрос такой по Smarty:
Как такую строку разместить в foot.tpl?
round( microtime( 1 ) - STARTTIME, 4 )
если в smarty3 теги {php} вызывают предупреждение и по умолчанию отключены
2.
юЮЮфюв (10.03.2013 / 04:01)
1, я конечно не работал со смарти, но может быть присвоить все это дело переменной и отправить в шаблонизатор.
3.
Александр (10.03.2013 / 13:08)
2.
DanteS, в обычном случае я бы так и сделал, но это foot. В таком случае мне придется в каждом файле Скрипта в конце определять эту переменную
4.
orel (10.03.2013 / 14:22)
{php} только
5.
Дмитрий (10.03.2013 / 14:49)
rastoman (10 Марта 2013 / 11:08)
2. DanteS, в обычном случае я бы так и сделал, но это foot. В таком случае мне придется в каждом файле Скрипта в конце определять эту переменную
для футера и хидера я обычно делаю пользовательскую функцию, в которой передаю все данные в них, чтобы не прописывать на каждой странице много кода.
Например, сделай так:
<?
// ф-я для генерации массива данных для футера
function tpl_footer(){
return array(
// тут все, что надо передать в футер
);
}
// тут передаюся все данные в футер одной строкой
$smarty -> assign('array', tpl_footer());
А вообще, Смарти - зло. Юзай что-то попроще. Смарти делали для статических сайтов. Для динамических он мало годится. Ты кешем динамики забьешь все дисковое пространство. Уже не раз это обсуждалось.
6.
Александр (11.03.2013 / 22:08)
Посмотрел в сторону Twig.
Вот только не нашел в документации (может плохо искал) такую информацию:
есть ли возможность, как в смарти, в шаблоне получать данные глобальных массивов? {smarty.server.document_root}, {smarty.session.login}, {smarty.const.r}
а в twig? константу можно так {{constant('R')}}, а вот server и session не нашел. так же не нашел можно ли вызвать мою функцию из скрипта.
например
if(user())
один вид шаблона
else
другой вид
7.
Александр (11.03.2013 / 23:40)
может покажется не корректным, но поставил такой костыль в core.php в класс расширений twig
public function getGlobals()
{
$server = array();
foreach ( $_SERVER as $key => $val )
{
$server[strtolower( $key )] = $val;
}
return array(
'session' => $_SESSION,
'server' => $server,
'constant' => get_defined_constant(true)['user'],
'userfunc' => get_defined_functions()['user'],
);
}
URL:
https://visavi.net/topics/37050