From 36b41c6c79c3a434b7e5b374befb3090105dd3aa Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Tue, 12 Apr 2011 09:20:06 +0200 Subject: [PATCH] Add smarty prefilter to allow access to const field of classes (Closes #1204). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- ChangeLog | 3 +++ classes/plpage.php | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+) 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) -- 2.1.4