From: Stéphane Jacob Date: Tue, 12 Apr 2011 07:20:06 +0000 (+0200) Subject: Add smarty prefilter to allow access to const field of classes (Closes #1204). X-Git-Tag: core/1.1.4~5 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=36b41c6c79c3a434b7e5b374befb3090105dd3aa;p=platal.git Add smarty prefilter to allow access to const field of classes (Closes #1204). Signed-off-by: Stéphane Jacob --- diff --git a/ChangeLog b/ChangeLog index 82da5f6..244759e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ ================================================================================ VERSION 1.1.4 XX XX XXXX +New: + * #1204: Add smarty prefilter to allow access to const field of classes -JAC + From branch 1.1.3: * #1451: Fix dynPost -FRU diff --git a/classes/plpage.php b/classes/plpage.php index 56b0c8a..2a0e3ee 100644 --- a/classes/plpage.php +++ b/classes/plpage.php @@ -60,6 +60,7 @@ abstract class PlPage extends Smarty . " actuellement désactivée, en particulier aucune donnée ne sera sauvegardée"); } $this->register_prefilter('at_to_globals'); + $this->register_prefilter('get_class_constants'); } // }}} @@ -459,6 +460,27 @@ function at_to_globals($tpl_source, $smarty) } // }}} +// {{{ function get_class_constants() + +/** + * helper + */ + +function _get_class_const($class, $const) +{ + return var_export(constant($class . '::' . $const), true); +} + +/** + * Compilation plugin used to import class constants through calls to #Class::CONSTANT# + */ + +function get_class_constants($tpl_source, $smarty) +{ + return preg_replace('/#([a-zA-Z0-9_]+)::([A-Z0-9_]+)#/e', '_get_class_const(\'\\1\',\'\\2\')', $tpl_source); +} + +// }}} // {{{ function trimwhitespace function trimwhitespace($source, $smarty)