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

Печать RSS
207

Автор
Чатланин
0
Пишем тут вопросы по шаблонизаторам.
Желательно без флуда на тему "есть лучше" или "шаблоны - Зло".
Думаю пользователи сами выбирают с чем работать.

Добавлено через 01:14 сек.
Вопрос такой по Smarty:
Как такую строку разместить в foot.tpl?
round( microtime( 1 ) - STARTTIME, 4 )
если в smarty3 теги {php} вызывают предупреждение и по умолчанию отключены
Изменил: Александр (11.03.2013 / 22:00)
Ю

deleted
0
1, я конечно не работал со смарти, но может быть присвоить все это дело переменной и отправить в шаблонизатор.
Автор
Чатланин
0
2. DanteS, в обычном случае я бы так и сделал, но это foot. В таком случае мне придется в каждом файле Скрипта в конце определять эту переменную
O

Пацак
0
{php} только

Голубые штаны
0
rastoman (10 Марта 2013 / 11:08)
2. DanteS, в обычном случае я бы так и сделал, но это foot. В таком случае мне придется в каждом файле Скрипта в конце определять эту переменную
для футера и хидера я обычно делаю пользовательскую функцию, в которой передаю все данные в них, чтобы не прописывать на каждой странице много кода.

Например, сделай так:
<?
// ф-я для генерации массива данных для футера
function tpl_footer(){
	return array(
		// тут все, что надо передать в футер
	);
}

// тут передаюся все данные в футер одной строкой
$smarty -> assign('array', tpl_footer());

А вообще, Смарти - зло. Юзай что-то попроще. Смарти делали для статических сайтов. Для динамических он мало годится. Ты кешем динамики забьешь все дисковое пространство. Уже не раз это обсуждалось.
Изменил: Дмитрий (10.03.2013 / 14:55)
Автор
Чатланин
0
Посмотрел в сторону Twig.
Вот только не нашел в документации (может плохо искал) такую информацию:
есть ли возможность, как в смарти, в шаблоне получать данные глобальных массивов? {smarty.server.document_root}, {smarty.session.login}, {smarty.const.r}
а в twig? константу можно так {{constant('R')}}, а вот server и session не нашел. так же не нашел можно ли вызвать мою функцию из скрипта.
например
if(user())
один вид шаблона
else
другой вид
Автор
Чатланин
0
может покажется не корректным, но поставил такой костыль в 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'],
	);
}
Изменил: Александр (11.03.2013 / 23:48)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск