azett 52bf429a01 Replaced Smarty 2.6.31-dev with v 4.0.4, keeping the FP-specific Smarty plugins.
Updated calls to current Smarty API (register_function()/register_modifier()/register_block() -> registerPlugin(); assign_by_ref() -> assignByRef()).
Fixed file includes in templates with quotes.
Removed SmartyValidate.class.php includes.

Still work in progress as some errors still appear!
2022-01-23 15:02:33 +01:00

1.3 KiB

$compile_id

Persistant compile identifier. As an alternative to passing the same $compile_id to each and every function call, you can set this $compile_id and it will be used implicitly thereafter.

If you use the same template with different pre- and/or post-filters you must use a unique $compile_id to keep the compiled template files separated.

For example a prefilter that localizes your templates (that is: translates language dependend parts) at compile time, then you could use the current language as $compile_id and you will get a set of compiled templates for each language you use.

<?php
$smarty->compile_id = 'en';
?>

Another application would be to use the same compile directory across multiple domains / multiple virtual hosts.

<?php

$smarty->compile_id = $_SERVER['SERVER_NAME'];
$smarty->compile_dir = '/path/to/shared_compile_dir';

?>

Note

In Smarty 3 a $compile_id is no longer required to keep templates with same name in different $template_dir folders separated. The $template_dir file path is encoded in the file name of compiled and cached template files.