Вопрос-ответ по шаблонизаторам

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