From b46b973b8e2ab250375853a96f1380271eb4e316 Mon Sep 17 00:00:00 2001 From: "Uwe.Tews" Date: Thu, 2 Apr 2009 12:24:50 +0000 Subject: [PATCH] - added setter/getter methodes - added $foo@first and $foo@last properties at {for} tag - added $set_timezone (true/false) property to setup optionally the default time zone --- change_log.txt | 7 +++++- libs/Smarty.class.php | 8 ++++-- libs/sysplugins/internal.compile_for.php | 2 ++ .../method.disablecachemodifycheck.php | 25 +++++++++++++++++++ .../method.disableconfigbooleanize.php | 25 +++++++++++++++++++ .../method.disableconfigoverwrite.php | 25 +++++++++++++++++++ .../method.disableconfigreadhidden.php | 25 +++++++++++++++++++ .../method.disabledefaulttimezone.php | 25 +++++++++++++++++++ .../method.enablecachemodifycheck.php | 25 +++++++++++++++++++ .../method.enableconfigbooleanize.php | 25 +++++++++++++++++++ .../method.enableconfigoverwrite.php | 25 +++++++++++++++++++ .../method.enableconfigreadhidden.php | 25 +++++++++++++++++++ .../method.enabledefaulttimezone.php | 25 +++++++++++++++++++ 13 files changed, 264 insertions(+), 3 deletions(-) create mode 100644 libs/sysplugins/method.disablecachemodifycheck.php create mode 100644 libs/sysplugins/method.disableconfigbooleanize.php create mode 100644 libs/sysplugins/method.disableconfigoverwrite.php create mode 100644 libs/sysplugins/method.disableconfigreadhidden.php create mode 100644 libs/sysplugins/method.disabledefaulttimezone.php create mode 100644 libs/sysplugins/method.enablecachemodifycheck.php create mode 100644 libs/sysplugins/method.enableconfigbooleanize.php create mode 100644 libs/sysplugins/method.enableconfigoverwrite.php create mode 100644 libs/sysplugins/method.enableconfigreadhidden.php create mode 100644 libs/sysplugins/method.enabledefaulttimezone.php diff --git a/change_log.txt b/change_log.txt index e114ed86..a67cf868 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,7 +1,12 @@ +04/02/2009 +- added setter/getter methodes +- added $foo@first and $foo@last properties at {for} tag +- added $set_timezone (true/false) property to setup optionally the default time zone + 03/31/2009 - bugfix smarty.class and internal.security_handler - added compile_check configuration -- added all setter/getter methodes +- added setter/getter methodes 03/30/2009 - added all major setter/getter methodes diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index 27f49aa1..239aa9de 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -102,7 +102,7 @@ class Smarty extends Smarty_Internal_TemplateBase { // config var settings public $config_overwrite = true; //Controls whether variables with the same name overwrite each other. public $config_booleanize = true; //Controls whether config values of on/true/yes and off/false/no get converted to boolean - public $config_read_hidden = true; //Controls whether hidden config sections/vars are read from the file. + public $config_read_hidden = true; //Controls whether hidden config sections/vars are read from the file. // config vars public $config_vars = array(); // assigned tpl vars @@ -153,13 +153,17 @@ class Smarty extends Smarty_Internal_TemplateBase { public $_smarty_vars = array(); // start time for execution time calculation public $start_time = 0; - + // set default time zone + public $set_timezone = true; /** * Class constructor, initializes basic smarty properties */ public function __construct() { mb_internal_encoding($this->resource_char_set); + if ($this->set_timezone and function_exists("date_default_timezone_set") and function_exists("date_default_timezone_get")) { + date_default_timezone_set(date_default_timezone_get()); + } $this->start_time = $this->_get_time(); // set exception handler if (!empty($this->exception_handler)) diff --git a/libs/sysplugins/internal.compile_for.php b/libs/sysplugins/internal.compile_for.php index de33ce13..f37f44c0 100644 --- a/libs/sysplugins/internal.compile_for.php +++ b/libs/sysplugins/internal.compile_for.php @@ -52,8 +52,10 @@ class Smarty_Internal_Compile_For extends Smarty_Internal_CompileBase { $output .= " \$_smarty_tpl->tpl_vars[$item]->index=-1;\n"; $output .= "if (\$_smarty_tpl->tpl_vars[$item]->total > 0){\n"; $output .= " foreach (\$_from as \$_smarty_tpl->tpl_vars[$item]->key => \$_smarty_tpl->tpl_vars[$item]->value){\n"; + $output .= " \$_smarty_tpl->tpl_vars[$item]->first = \$_smarty_tpl->tpl_vars[$item]->iteration === 0;\n"; $output .= " \$_smarty_tpl->tpl_vars[$item]->iteration++;\n"; $output .= " \$_smarty_tpl->tpl_vars[$item]->index++;\n"; + $output .= " \$_smarty_tpl->tpl_vars[$item]->last = \$_smarty_tpl->tpl_vars[$item]->iteration === \$_smarty_tpl->tpl_vars[$item]->total;\n"; $output .= "?>"; // return compiled code return $output; diff --git a/libs/sysplugins/method.disablecachemodifycheck.php b/libs/sysplugins/method.disablecachemodifycheck.php new file mode 100644 index 00000000..46d2e8cb --- /dev/null +++ b/libs/sysplugins/method.disablecachemodifycheck.php @@ -0,0 +1,25 @@ +smarty->cache_modified_check = false; + } +} + +?> diff --git a/libs/sysplugins/method.disableconfigbooleanize.php b/libs/sysplugins/method.disableconfigbooleanize.php new file mode 100644 index 00000000..6ec056f0 --- /dev/null +++ b/libs/sysplugins/method.disableconfigbooleanize.php @@ -0,0 +1,25 @@ +smarty->config_booleanize = false; + } +} + +?> diff --git a/libs/sysplugins/method.disableconfigoverwrite.php b/libs/sysplugins/method.disableconfigoverwrite.php new file mode 100644 index 00000000..3b9f5cd0 --- /dev/null +++ b/libs/sysplugins/method.disableconfigoverwrite.php @@ -0,0 +1,25 @@ +smarty->config_overwrite = false; + } +} + +?> diff --git a/libs/sysplugins/method.disableconfigreadhidden.php b/libs/sysplugins/method.disableconfigreadhidden.php new file mode 100644 index 00000000..bebfbaa8 --- /dev/null +++ b/libs/sysplugins/method.disableconfigreadhidden.php @@ -0,0 +1,25 @@ +smarty->config_read_hidden = false; + } +} + +?> diff --git a/libs/sysplugins/method.disabledefaulttimezone.php b/libs/sysplugins/method.disabledefaulttimezone.php new file mode 100644 index 00000000..fc2145e5 --- /dev/null +++ b/libs/sysplugins/method.disabledefaulttimezone.php @@ -0,0 +1,25 @@ +smarty->set_timezone = false; + } +} + +?> diff --git a/libs/sysplugins/method.enablecachemodifycheck.php b/libs/sysplugins/method.enablecachemodifycheck.php new file mode 100644 index 00000000..268ee71f --- /dev/null +++ b/libs/sysplugins/method.enablecachemodifycheck.php @@ -0,0 +1,25 @@ +smarty->cache_modified_check = true; + } +} + +?> diff --git a/libs/sysplugins/method.enableconfigbooleanize.php b/libs/sysplugins/method.enableconfigbooleanize.php new file mode 100644 index 00000000..8edead27 --- /dev/null +++ b/libs/sysplugins/method.enableconfigbooleanize.php @@ -0,0 +1,25 @@ +smarty->config_booleanize = true; + } +} + +?> diff --git a/libs/sysplugins/method.enableconfigoverwrite.php b/libs/sysplugins/method.enableconfigoverwrite.php new file mode 100644 index 00000000..364d491e --- /dev/null +++ b/libs/sysplugins/method.enableconfigoverwrite.php @@ -0,0 +1,25 @@ +smarty->config_overwrite = true; + } +} + +?> diff --git a/libs/sysplugins/method.enableconfigreadhidden.php b/libs/sysplugins/method.enableconfigreadhidden.php new file mode 100644 index 00000000..a87a8c2c --- /dev/null +++ b/libs/sysplugins/method.enableconfigreadhidden.php @@ -0,0 +1,25 @@ +smarty->config_read_hidden = true; + } +} + +?> diff --git a/libs/sysplugins/method.enabledefaulttimezone.php b/libs/sysplugins/method.enabledefaulttimezone.php new file mode 100644 index 00000000..466be0a0 --- /dev/null +++ b/libs/sysplugins/method.enabledefaulttimezone.php @@ -0,0 +1,25 @@ +smarty->set_timezone = true; + } +} + +?>