Skip to content

Postfilters {#advanced.features.postfilters}

Template postfilters are PHP functions that your templates are ran through after they are compiled. Postfilters can be either registered or loaded from the plugins directory by using the loadFilter() function or by setting the $autoload_filters variable. Smarty will pass the compiled template code as the first argument, and expect the function to return the result of the processing.

<?php
// put this in your application
function add_header_comment($tpl_source, Smarty_Internal_Template $template)
{
    return "<?php echo \"<!-- Created by Smarty! -->\n\"; ?>\n".$tpl_source;
}

// register the postfilter
$smarty->registerFilter('post','add_header_comment');
$smarty->display('index.tpl');
?>

The postfilter above will make the compiled Smarty template index.tpl look like:

<!-- Created by Smarty! -->
{* rest of template content... *}

See also registerFilter(), prefilters, outputfilters, and loadFilter().