Обработать выход шаблона smarty функцией

Сенсей

Новичок
Обработать выход шаблона smarty функцией

Не знаю как бы это объяснить популярно...

есть функция которая налету преобразовывает урлы в ЧПУ

Пока извратился так (в конце php файла где идет вывод шаблона):

ob_start();
$smarty->display('Blogs/custom/1/index_page.tpl');
$contents = ob_get_contents();
ob_end_clean();
url_rewrite($contents);
echo $contents;

Но в каждом файле писать это - легче застрелиться...
Можно как то автоматизировать процесс? Где в смарти полазиить что бы конечный вывод страницы обрабатывался функией url_rewrite() ?
 

HraKK

Мудак
Команда форума
попробуй так
echo url_rewrite($smarty->fetch('lalalala'));
 

zerkms

TDD infected
Команда форума
читал про фильтры вывода или постфильтры?
 

Сенсей

Новичок
zerkms
Неа.. не читал... это относится к смарти? Пойду в мануале полазяю... на тему post filter поищу...
 

avenger_msoft

Новичок
Я делал так:
PHP:
function __callback_URL_Rebuild($__matches) {
	return $__matches[1] . URL::__Rebuild($__matches[2]) . $__matches[1];
}

function smarty_outputfilter_Communicator_Rewrite_URL($source, &$smarty) {
	if ($GLOBALS['confv']["URL_Rewrite"] === 1) {
		$source = preg_replace_callback(
				"# (['\"]{1}) " . "?index\.php" . "(?:\?) ( (?:(?!(<|>|\\1)).)* ) ?\\1{1}? #ixU",
			"__callback_URL_Rebuild", $source);
	}

	return $source;
}
А затем:
PHP:
$smarty->load_filter('output', 'Communicator_Rewrite_URL');
 
Сверху