smarty template engine
Monday, December 01, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


Фильтры вывода

Когда шаблон выводится через display() или fetch(), результат может быть пропущен через один или несколько фильтров вывода. Отличие их от постфильтров состоит в том, что постфильтры действуют на уже скомпилированный шаблон, перед его записью на диск, в то время как фильтры вывода обрабатывают шаблон в момент его исполнения.

Фильтры вывода могут быть или зарегистрированы или загружены из папки плагинов с помощью функции load_filter(), или с помощью установки переменной $autoload_filters. Smarty передаёт фильтру результат обработки шаблона в качестве первого аргумента и предполагает, что функция вернёт результат своей работы.

Пример 15-4. Использование фильтра вывода

<?php
// код в вашем скрипте
function protect_email($tpl_output, &$smarty)
{
    
$tpl_output =
       
preg_replace('!(\S+)@([a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,3}|[0-9]{1,3}))!',
                    
'$1%40$2'$tpl_output);
    return 
$tpl_output;
}

// регистрация фильтра вывода
$smarty->register_outputfilter('protect_email'); 
$smarty->display('index.tpl');

// теперь все адреса электронной почты в выводе шаблона будут
// обработаны несложной функцией защиты от спам-ботов
?>

См. также register_outpurfilter(), load_filter(), $autoload_filters, постфильтрі и $plugins_dir.




 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.