From ceb93378515f6f085ce9de4985c8ceb581aa1bda Mon Sep 17 00:00:00 2001 From: cajus Date: Tue, 12 Apr 2011 06:57:02 +0000 Subject: [PATCH] Updated smarty git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@20702 594d385d-05f5-0310-b6e9-bd551577e9d8 --- gosa-core/Changelog | 1 + gosa-core/include/smarty/Smarty.class.php | 76 ++- .../smarty/plugins/function.html_options.php | 34 +- .../smarty/plugins/modifier.escape.php | 27 +- .../smarty/plugins/modifier.replace.php | 26 +- .../smarty/plugins/shared.make_timestamp.php | 4 +- .../smarty/plugins/shared.mb_str_replace.php | 38 ++ .../smarty_internal_compile_append.php | 8 +- .../smarty_internal_compile_assign.php | 1 + .../smarty_internal_compile_block.php | 2 +- .../smarty_internal_compile_function.php | 6 +- .../sysplugins/smarty_internal_compile_if.php | 6 +- .../smarty_internal_compile_include.php | 4 +- ...ernal_compile_private_registered_block.php | 3 + ...al_compile_private_registered_function.php | 3 + ...ernal_compile_private_special_variable.php | 6 +- .../smarty_internal_compile_while.php | 5 +- .../smarty_internal_configfilelexer.php | 21 +- .../smarty_internal_configfileparser.php | 84 ++- .../sysplugins/smarty_internal_data.php | 8 +- .../smarty_internal_get_include_path.php | 44 ++ .../sysplugins/smarty_internal_register.php | 5 +- .../sysplugins/smarty_internal_template.php | 51 +- .../smarty_internal_templatecompilerbase.php | 10 +- .../smarty_internal_templatelexer.php | 204 +++--- .../smarty_internal_templateparser.php | 621 +++++++++--------- .../sysplugins/smarty_internal_utility.php | 10 +- 27 files changed, 694 insertions(+), 614 deletions(-) create mode 100644 gosa-core/include/smarty/plugins/shared.mb_str_replace.php create mode 100644 gosa-core/include/smarty/sysplugins/smarty_internal_get_include_path.php diff --git a/gosa-core/Changelog b/gosa-core/Changelog index b4db44f86..616ade693 100644 --- a/gosa-core/Changelog +++ b/gosa-core/Changelog @@ -6,6 +6,7 @@ GOsa2 changelog - Updated account expiration checks. - Fixed acl resolution to be case insensitive. - Fixed mail address check for user templates. + - Updated integrated smarty to 3.0.7 * gosa 2.7 - Updated design. CSS3, mostly w3c conform. diff --git a/gosa-core/include/smarty/Smarty.class.php b/gosa-core/include/smarty/Smarty.class.php index 75c90ffc7..feb88171e 100644 --- a/gosa-core/include/smarty/Smarty.class.php +++ b/gosa-core/include/smarty/Smarty.class.php @@ -3,7 +3,7 @@ /** * Project: Smarty: the PHP compiling template engine * File: Smarty.class.php - * SVN: $Id: Smarty.class.php 3845 2010-12-05 17:21:02Z uwe.tews@googlemail.com $ + * SVN: $Id: Smarty.class.php 3895 2010-12-31 13:47:12Z uwe.tews@googlemail.com $ * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -28,7 +28,7 @@ * @author Monte Ohrt * @author Uwe Tews * @package Smarty - * @version 3.0.6 + * @version 3.0.7 */ /** @@ -87,7 +87,7 @@ class Smarty extends Smarty_Internal_Data { * constant definitions */ // smarty version - const SMARTY_VERSION = 'Smarty-3.0.6'; + const SMARTY_VERSION = 'Smarty-3.0.7'; //define variable scopes const SCOPE_LOCAL = 0; const SCOPE_PARENT = 1; @@ -181,7 +181,7 @@ class Smarty extends Smarty_Internal_Data { // 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 = false; //Controls whether hidden config sections/vars are read from the file. // config vars public $config_vars = array(); // assigned tpl vars @@ -259,31 +259,6 @@ class Smarty extends Smarty_Internal_Data { $this->cache_dir = '.' . DS . 'cache' . DS; $this->config_dir = '.' . DS . 'configs' . DS; $this->debug_tpl = SMARTY_DIR . 'debug.tpl'; - if (!$this->debugging && $this->debugging_ctrl == 'URL') { - if (isset($_SERVER['QUERY_STRING'])) { - $_query_string = $_SERVER['QUERY_STRING']; - } else { - $_query_string = ''; - } - if (false !== strpos($_query_string, $this->smarty_debug_id)) { - if (false !== strpos($_query_string, $this->smarty_debug_id . '=on')) { - // enable debugging for this browser session - setcookie('SMARTY_DEBUG', true); - $this->debugging = true; - } elseif (false !== strpos($_query_string, $this->smarty_debug_id . '=off')) { - // disable debugging for this browser session - setcookie('SMARTY_DEBUG', false); - $this->debugging = false; - } else { - // enable debugging for this page - $this->debugging = true; - } - } else { - if (isset($_COOKIE['SMARTY_DEBUG'])) { - $this->debugging = true; - } - } - } if (isset($_SERVER['SCRIPT_NAME'])) { $this->assignGlobal('SCRIPT_NAME', $_SERVER['SCRIPT_NAME']); } @@ -317,10 +292,36 @@ class Smarty extends Smarty_Internal_Data { } // create template object if necessary ($template instanceof $this->template_class)? $_template = $template : - $_template = $this->createTemplate ($template, $cache_id, $compile_id, $parent); + $_template = $this->createTemplate ($template, $cache_id, $compile_id, $parent, false); if (isset($this->error_reporting)) { $_smarty_old_error_level = error_reporting($this->error_reporting); } + // check URL debugging control + if (!$this->debugging && $this->debugging_ctrl == 'URL') { + if (isset($_SERVER['QUERY_STRING'])) { + $_query_string = $_SERVER['QUERY_STRING']; + } else { + $_query_string = ''; + } + if (false !== strpos($_query_string, $this->smarty_debug_id)) { + if (false !== strpos($_query_string, $this->smarty_debug_id . '=on')) { + // enable debugging for this browser session + setcookie('SMARTY_DEBUG', true); + $this->debugging = true; + } elseif (false !== strpos($_query_string, $this->smarty_debug_id . '=off')) { + // disable debugging for this browser session + setcookie('SMARTY_DEBUG', false); + $this->debugging = false; + } else { + // enable debugging for this page + $this->debugging = true; + } + } else { + if (isset($_COOKIE['SMARTY_DEBUG'])) { + $this->debugging = true; + } + } + } // obtain data for cache modified check if ($this->cache_modified_check && $this->caching && $display) { $_isCached = $_template->isCached() && !$_template->has_nocache_code; @@ -330,7 +331,7 @@ class Smarty extends Smarty_Internal_Data { $_gmt_mtime = ''; } } - // return redered template + // return rendered template if ((!$this->caching || $_template->resource_object->isEvaluated) && (isset($this->autoload_filters['output']) || isset($this->registered_filters['output']))) { $_output = Smarty_Internal_Filter_Handler::runFilter('output', $_template->getRenderedTemplate(), $_template); } else { @@ -396,7 +397,7 @@ class Smarty extends Smarty_Internal_Data { $parent = $this; } if (!($template instanceof $this->template_class)) { - $template = $this->createTemplate ($template, $cache_id, $compile_id, $parent); + $template = $this->createTemplate ($template, $cache_id, $compile_id, $parent, false); } // return cache status of template return $template->isCached(); @@ -417,12 +418,13 @@ class Smarty extends Smarty_Internal_Data { * creates a template object * * @param string $template the resource handle of the template file - * @param object $parent next higher level of Smarty variables * @param mixed $cache_id cache id to be used with this template * @param mixed $compile_id compile id to be used with this template + * @param object $parent next higher level of Smarty variables + * @param boolean $do_clone flag is Smarty object shall be cloned * @returns object template object */ - public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null) + public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null, $do_clone = true) { if (!empty($cache_id) && (is_object($cache_id) || is_array($cache_id))) { $parent = $cache_id; @@ -443,7 +445,11 @@ class Smarty extends Smarty_Internal_Data { $tpl = $this->template_objects[$_templateId]; } else { // create new template object - $tpl = new $this->template_class($template, clone $this, $parent, $cache_id, $compile_id); + if ($do_clone) { + $tpl = new $this->template_class($template, clone $this, $parent, $cache_id, $compile_id); + } else { + $tpl = new $this->template_class($template, $this, $parent, $cache_id, $compile_id); + } } } else { // just return a copy of template class diff --git a/gosa-core/include/smarty/plugins/function.html_options.php b/gosa-core/include/smarty/plugins/function.html_options.php index 65c77c659..7ac039028 100644 --- a/gosa-core/include/smarty/plugins/function.html_options.php +++ b/gosa-core/include/smarty/plugins/function.html_options.php @@ -37,12 +37,17 @@ function smarty_function_html_options($params, $template) $options = null; $selected = array(); $output = null; + $id = null; + $class = null; $extra = ''; + $options_extra = ''; foreach($params as $_key => $_val) { switch ($_key) { case 'name': + case 'class': + case 'id': $$_key = (string)$_val; break; @@ -74,43 +79,52 @@ function smarty_function_html_options($params, $template) /* raise error here? */ $_html_result = ''; + $_idx = 0; if (isset($options)) { - foreach ($options as $_key => $_val) - $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected); + foreach ($options as $_key => $_val) { + $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected, $id, $class, $_idx); + } } else { foreach ($values as $_i => $_key) { $_val = isset($output[$_i]) ? $output[$_i] : ''; - $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected); + $_html_result .= smarty_function_html_options_optoutput($_key, $_val, $selected, $id, $class, $_idx); } } if (!empty($name)) { - $_html_result = '' . "\n"; + $_html_class = !empty($class) ? ' class="'.$class.'"' : ''; + $_html_id = !empty($id) ? ' id="'.$id.'"' : ''; + $_html_result = '' . "\n"; } return $_html_result; } -function smarty_function_html_options_optoutput($key, $value, $selected) +function smarty_function_html_options_optoutput($key, $value, $selected, $id, $class, &$idx) { if (!is_array($value)) { $_html_result = '' . "\n"; + $idx++; } else { - $_html_result = smarty_function_html_options_optgroup($key, $value, $selected); - } + $_idx = 0; + $_html_result = smarty_function_html_options_optgroup($key, $value, $selected, $id.'-'.$idx, $class, $_idx); + $idx++; + } return $_html_result; } -function smarty_function_html_options_optgroup($key, $values, $selected) +function smarty_function_html_options_optgroup($key, $values, $selected, $id, $class, &$idx) { $optgroup_html = '' . "\n"; foreach ($values as $key => $value) { - $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected); + $optgroup_html .= smarty_function_html_options_optoutput($key, $value, $selected, $id, $class, $idx); } $optgroup_html .= "\n"; return $optgroup_html; diff --git a/gosa-core/include/smarty/plugins/modifier.escape.php b/gosa-core/include/smarty/plugins/modifier.escape.php index dae592689..37bc0e30e 100644 --- a/gosa-core/include/smarty/plugins/modifier.escape.php +++ b/gosa-core/include/smarty/plugins/modifier.escape.php @@ -22,25 +22,6 @@ */ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = SMARTY_RESOURCE_CHAR_SET) { - if (!function_exists('mb_str_replace')) { - // simulate the missing PHP mb_str_replace function - function mb_str_replace($needles, $replacements, $haystack) - { - $rep = (array)$replacements; - foreach ((array)$needles as $key => $needle) { - $replacement = $rep[$key]; - $needle_len = mb_strlen($needle); - $replacement_len = mb_strlen($replacement); - $pos = mb_strpos($haystack, $needle, 0); - while ($pos !== false) { - $haystack = mb_substr($haystack, 0, $pos) . $replacement - . mb_substr($haystack, $pos + $needle_len); - $pos = mb_strpos($haystack, $needle, $pos + $replacement_len); - } - } - return $haystack; - } - } switch ($esc_type) { case 'html': return htmlspecialchars($string, ENT_QUOTES, $char_set); @@ -85,12 +66,8 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = SMARTY_ return strtr($string, array('\\' => '\\\\', "'" => "\\'", '"' => '\\"', "\r" => '\\r', "\n" => '\\n', ' '<\/')); case 'mail': - // safe way to display e-mail address on a web page - if (function_exists('mb_substr')) { - return mb_str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string); - } else { - return str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string); - } + require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php'); + return smarty_mb_str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string); case 'nonstd': // escape non-standard chars, such as ms document quotes diff --git a/gosa-core/include/smarty/plugins/modifier.replace.php b/gosa-core/include/smarty/plugins/modifier.replace.php index 98195ffb4..0636a1914 100644 --- a/gosa-core/include/smarty/plugins/modifier.replace.php +++ b/gosa-core/include/smarty/plugins/modifier.replace.php @@ -22,30 +22,8 @@ */ function smarty_modifier_replace($string, $search, $replace) { - if (!function_exists('mb_str_replace')) { - // simulate the missing PHP mb_str_replace function - function mb_str_replace($needles, $replacements, $haystack) - { - $rep = (array)$replacements; - foreach ((array)$needles as $key => $needle) { - $replacement = $rep[$key]; - $needle_len = mb_strlen($needle); - $replacement_len = mb_strlen($replacement); - $pos = mb_strpos($haystack, $needle, 0); - while ($pos !== false) { - $haystack = mb_substr($haystack, 0, $pos) . $replacement - . mb_substr($haystack, $pos + $needle_len); - $pos = mb_strpos($haystack, $needle, $pos + $replacement_len); - } - } - return $haystack; - } - } - if (function_exists('mb_substr')) { - return mb_str_replace($search, $replace, $string); - } else { - return str_replace($search, $replace, $string); - } + require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php'); + return smarty_mb_str_replace($search, $replace, $string); } ?> \ No newline at end of file diff --git a/gosa-core/include/smarty/plugins/shared.make_timestamp.php b/gosa-core/include/smarty/plugins/shared.make_timestamp.php index 832488bae..9789f53f7 100644 --- a/gosa-core/include/smarty/plugins/shared.make_timestamp.php +++ b/gosa-core/include/smarty/plugins/shared.make_timestamp.php @@ -22,7 +22,7 @@ function smarty_make_timestamp($string) return time(); } elseif ($string instanceof DateTime) { return $string->getTimestamp(); - } elseif (preg_match('/^\d{14}$/', $string)) { + } elseif (strlen($string)==14 && ctype_digit($string)) { // it is mysql timestamp format of YYYYMMDDHHMMSS? return mktime(substr($string, 8, 2),substr($string, 10, 2),substr($string, 12, 2), substr($string, 4, 2),substr($string, 6, 2),substr($string, 0, 4)); @@ -40,4 +40,4 @@ function smarty_make_timestamp($string) } } -?> \ No newline at end of file +?> diff --git a/gosa-core/include/smarty/plugins/shared.mb_str_replace.php b/gosa-core/include/smarty/plugins/shared.mb_str_replace.php new file mode 100644 index 000000000..8bc156f08 --- /dev/null +++ b/gosa-core/include/smarty/plugins/shared.mb_str_replace.php @@ -0,0 +1,38 @@ + \ No newline at end of file diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_append.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_append.php index 8b6c4ee8b..98e696e30 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_append.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_append.php @@ -13,10 +13,6 @@ * Smarty Internal Plugin Compile Append Class */ class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign { - // attribute definitions - public $required_attributes = array('var', 'value'); - public $shorttag_order = array('var', 'value'); - public $optional_attributes = array('scope', 'index'); /** * Compiles code for the {append} tag @@ -29,6 +25,10 @@ class Smarty_Internal_Compile_Append extends Smarty_Internal_Compile_Assign { public function compile($args, $compiler, $parameter) { $this->compiler = $compiler; + // the following must be assigned at runtime because it will be overwritten in parent class + $this->required_attributes = array('var', 'value'); + $this->shorttag_order = array('var', 'value'); + $this->optional_attributes = array('scope','index'); // check and get attributes $_attr = $this->_get_attributes($args); // map to compile assign attributes diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_assign.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_assign.php index b7dab7c41..8d8c643af 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_assign.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_assign.php @@ -25,6 +25,7 @@ class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase { public function compile($args, $compiler, $parameter) { $this->compiler = $compiler; + // the following must be assigned at runtime because it will be overwritten in Smarty_Internal_Compile_Append $this->required_attributes = array('var', 'value'); $this->shorttag_order = array('var', 'value'); $this->optional_attributes = array('scope'); diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_block.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_block.php index b1b64374a..cd1ca281b 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_block.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_block.php @@ -96,7 +96,7 @@ class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase { $stack_count = count($compiler->_tag_stack); while (--$stack_count >= 0) { if ($compiler->_tag_stack[$stack_count][0] == 'block') { - $_name = trim($compiler->_tag_stack[$stack_count][1][0]['name'] ,"'"); + $_name = trim($compiler->_tag_stack[$stack_count][1][0]['name'] ,"'\""); break; } } diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_function.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_function.php index 54429ebd8..db2409a30 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_function.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_function.php @@ -42,8 +42,10 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase { $_name = trim($_attr['name'], "'\""); unset($_attr['name']); $compiler->template->properties['function'][$_name]['parameter'] = array(); + $_smarty_tpl = $compiler->template; foreach ($_attr as $_key => $_data) { - $compiler->template->properties['function'][$_name]['parameter'][$_key] = $_data; + eval ('$tmp='.$_data.';'); + $compiler->template->properties['function'][$_name]['parameter'][$_key] = $tmp; } $compiler->smarty->template_functions[$_name]['parameter'] = $compiler->template->properties['function'][$_name]['parameter']; if ($compiler->template->caching) { @@ -52,7 +54,7 @@ class Smarty_Internal_Compile_Function extends Smarty_Internal_CompileBase { $output = "tpl_vars; - foreach (\$_smarty_tpl->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(trim(\$value,'\''));}; + foreach (\$_smarty_tpl->template_functions['{$_name}']['parameter'] as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}; foreach (\$params as \$key => \$value) {\$_smarty_tpl->tpl_vars[\$key] = new Smarty_variable(\$value);}?>"; } // Init temporay context diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_if.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_if.php index 2d9d2c6a8..41e6597e4 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_if.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_if.php @@ -42,7 +42,7 @@ class Smarty_Internal_Compile_If extends Smarty_Internal_CompileBase { $_nocache = ''; } if (is_array($parameter['if condition']['var'])) { - $_output = "tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache2);\n"; + $_output = "tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache);\n"; $_output .= "if (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value".$parameter['if condition']['var']['smarty_internal_index']." = ".$parameter['if condition']['value']."){?>"; } else { $_output = "tpl_vars[".$parameter['if condition']['var']."] = new Smarty_Variable(\$_smarty_tpl->getVariable(".$parameter['if condition']['var'].",null,true,false)->value{$_nocache});"; @@ -118,7 +118,7 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase { if ($condition_by_assign) { $this->_open_tag('elseif', array($nesting + 1, $compiler->tag_nocache)); if (is_array($parameter['if condition']['var'])) { - $_output = "tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache2);\n"; + $_output = "tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache);\n"; $_output .= "if (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value".$parameter['if condition']['var']['smarty_internal_index']." = ".$parameter['if condition']['value']."){?>"; } else { $_output = "tpl_vars[".$parameter['if condition']['var']."] = new Smarty_Variable(\$_smarty_tpl->getVariable(".$parameter['if condition']['var'].",null,true,false)->value{$_nocache});"; @@ -136,7 +136,7 @@ class Smarty_Internal_Compile_Elseif extends Smarty_Internal_CompileBase { $this->_open_tag('elseif', array($nesting + 1, $compiler->tag_nocache)); if ($condition_by_assign) { if (is_array($parameter['if condition']['var'])) { - $_output = "{$tmp}tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache2);\n"; + $_output = "{$tmp}tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache);\n"; $_output .= "if (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value".$parameter['if condition']['var']['smarty_internal_index']." = ".$parameter['if condition']['value']."){?>"; } else { $_output = "{$tmp}tpl_vars[".$parameter['if condition']['var']."] = new Smarty_Variable(\$_smarty_tpl->getVariable(".$parameter['if condition']['var'].",null,true,false)->value{$_nocache});"; diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_include.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_include.php index ea3231019..01d260eb7 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_include.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_include.php @@ -163,7 +163,9 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase { $_output .= ""; } else { $_output .= " echo \$_template->getRenderedTemplate();?>"; - $_output .= "updateParentVariables($_parent_scope);?>"; + if ($_parent_scope != Smarty::SCOPE_LOCAL) { + $_output .= "updateParentVariables($_parent_scope);?>"; + } } } $_output .= ""; diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_block.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_block.php index 37e1de73d..054036241 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_block.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_block.php @@ -41,6 +41,9 @@ class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_C foreach ($_attr as $_key => $_value) { if (is_int($_key)) { $_paramsArray[] = "$_key=>$_value"; + } elseif ($this->compiler->template->caching && in_array($_key,$compiler->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$tag][2])) { + $_value = str_replace("'","^#^",$_value); + $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^"; } else { $_paramsArray[] = "'$_key'=>$_value"; } diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_function.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_function.php index ca4e68dba..f79edf684 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_function.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_function.php @@ -43,6 +43,9 @@ class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Interna foreach ($_attr as $_key => $_value) { if (is_int($_key)) { $_paramsArray[] = "$_key=>$_value"; + } elseif ($this->compiler->template->caching && in_array($_key,$compiler->smarty->registered_plugins[Smarty::PLUGIN_FUNCTION][$tag][2])) { + $_value = str_replace("'","^#^",$_value); + $_paramsArray[] = "'$_key'=>^#^.var_export($_value,true).^#^"; } else { $_paramsArray[] = "'$_key'=>$_value"; } diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_special_variable.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_special_variable.php index f9a8535c7..5d6ae8015 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_special_variable.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_special_variable.php @@ -56,12 +56,10 @@ class Smarty_Internal_Compile_Private_Special_Variable extends Smarty_Internal_C break; case 'template': - $_template_name = $compiler->template->template_resource; - return "'$_template_name'"; + return 'basename($_smarty_tpl->getTemplateFilepath())'; case 'current_dir': - $_template_dir_name = dirname($compiler->template->getTemplateFilepath()); - return "'$_template_dir_name'"; + return 'dirname($_smarty_tpl->getTemplateFilepath())'; case 'version': $_version = Smarty::SMARTY_VERSION; diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_while.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_while.php index c7fd462f8..7e87a2291 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_while.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_while.php @@ -41,13 +41,12 @@ class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase { } } else { $_nocache = ''; - $_nocache2 = ''; } if (is_array($parameter['if condition']['var'])) { - $_output = "tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache2);\n"; + $_output = "tpl_vars[".$parameter['if condition']['var']['var']."]) || !is_array(\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value)) \$_smarty_tpl->createLocalArrayVariable(".$parameter['if condition']['var']['var']."$_nocache);\n"; $_output .= "while (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value".$parameter['if condition']['var']['smarty_internal_index']." = ".$parameter['if condition']['value']."){?>"; } else { - $_output = "tpl_vars[".$parameter['if condition']['var']."] = new Smarty_Variable(\$_smarty_tpl->getVariable(".$parameter['if condition']['var'].")->value{$_nocache},null,true,false);"; + $_output = "tpl_vars[".$parameter['if condition']['var']."] = new Smarty_Variable(\$_smarty_tpl->getVariable(".$parameter['if condition']['var'].",null,true,false)->value{$_nocache});"; $_output .= "while (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']."]->value = ".$parameter['if condition']['value']."){?>"; } return $_output; diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_configfilelexer.php b/gosa-core/include/smarty/sysplugins/smarty_internal_configfilelexer.php index 3c4249c89..9186fe22f 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_configfilelexer.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_configfilelexer.php @@ -7,7 +7,6 @@ * @subpackage Config * @author Uwe Tews */ - /** * Smarty Internal Plugin Configfilelexer */ @@ -21,10 +20,10 @@ class Smarty_Internal_Configfilelexer public $node; public $line; private $state = 1; - public $smarty_token_names = array ( // Text for parser error messages - ); - - + public $smarty_token_names = array ( // Text for parser error messages + ); + + function __construct($data, $smarty) { // set instance object @@ -85,7 +84,7 @@ class Smarty_Internal_Configfilelexer if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^(#)|^(\\[)|^(\\])|^(=)|^([ \t\r]+)|^(\n)|^([0-9]*[a-zA-Z_]\\w*)/"; + $yy_global_pattern = "/^(#)|^(\\[)|^(\\])|^(=)|^([ \t\r]+)|^(\n)|^([0-9]*[a-zA-Z_]\\w*)/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -192,7 +191,7 @@ class Smarty_Internal_Configfilelexer if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^([ \t\r]+)|^(\\d+\\.\\d+(?=[ \t\r]*[\n#]))|^(\\d+(?=[ \t\r]*[\n#]))|^('[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(?=[ \t\r]*[\n#]))|^(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"(?=[ \t\r]*[\n#]))|^(\"\"\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"\"\"(?=[ \t\r]*[\n#]))|^([a-zA-Z]+(?=[ \t\r]*[\n#]))|^([^\n]+?(?=[ \t\r]*\n))|^(\n)/"; + $yy_global_pattern = "/^([ \t\r]+)|^(\\d+\\.\\d+(?=[ \t\r]*[\n#]))|^(\\d+(?=[ \t\r]*[\n#]))|^('[^'\\\\]*(?:\\\\.[^'\\\\]*)*'(?=[ \t\r]*[\n#]))|^(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"(?=[ \t\r]*[\n#]))|^(\"\"\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"\"\"(?=[ \t\r]*[\n#]))|^([a-zA-Z]+(?=[ \t\r]*[\n#]))|^([^\n]+?(?=[ \t\r]*\n))|^(\n)/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -313,7 +312,7 @@ class Smarty_Internal_Configfilelexer if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^([^\n]+?(?=[ \t\r]*\n))/"; + $yy_global_pattern = "/^([^\n]+?(?=[ \t\r]*\n))/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -382,7 +381,7 @@ class Smarty_Internal_Configfilelexer if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^([ \t\r]+)|^([^\n]+?(?=[ \t\r]*\n))|^(\n)/"; + $yy_global_pattern = "/^([ \t\r]+)|^([^\n]+?(?=[ \t\r]*\n))|^(\n)/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -460,7 +459,7 @@ class Smarty_Internal_Configfilelexer if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^(\\.)|^(.*?(?=[\.=[\]\r\n]))/"; + $yy_global_pattern = "/^(\\.)|^(.*?(?=[\.=[\]\r\n]))/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -522,6 +521,6 @@ class Smarty_Internal_Configfilelexer $this->yypopstate(); } -} +} ?> \ No newline at end of file diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_configfileparser.php b/gosa-core/include/smarty/sysplugins/smarty_internal_configfileparser.php index d8bb95c2d..0b5a57343 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_configfileparser.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_configfileparser.php @@ -113,7 +113,6 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser if (in_array(strtolower($str) ,array('on','yes','true'))) { $res = true; } else { - assert(in_array(strtolower($str), array('off','no','false'))); $res = false; } return $res; @@ -164,7 +163,7 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser private function add_global_vars(Array $vars) { if (!isset($this->compiler->config_data['vars'])) { - $this->compiler->config_data['vars'] = Array(); + $this->compiler->config_data['vars'] = Array(); } foreach ($vars as $var) { $this->set_var($var, $this->compiler->config_data); @@ -179,7 +178,7 @@ class Smarty_Internal_Configfileparser#line 79 "smarty_internal_configfileparser $this->set_var($var, $this->compiler->config_data['sections'][$section_name]); } } -#line 175 "smarty_internal_configfileparser.php" +#line 174 "smarty_internal_configfileparser.php" const TPC_OPENB = 1; const TPC_SECTION = 2; @@ -404,7 +403,7 @@ static public $yy_action = array( $this->yystack[$this->yyidx]->stateno, self::$yyRuleInfo[$yyruleno]['lhs']); if (isset(self::$yyExpectedTokens[$nextstate])) { - $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]); + $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]); if (in_array($token, self::$yyExpectedTokens[$nextstate], true)) { $this->yyidx = $yyidx; @@ -439,8 +438,8 @@ static public $yy_action = array( } break; } while (true); - $this->yyidx = $yyidx; - $this->yystack = $stack; + $this->yyidx = $yyidx; + $this->yystack = $stack; return array_unique($expected); } @@ -583,11 +582,11 @@ static public $yy_action = array( while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } -#line 127 "smarty_internal_configfileparser.y" +#line 126 "smarty_internal_configfileparser.y" $this->internalError = true; $this->compiler->trigger_config_file_error("Stack overflow in configfile parser"); -#line 586 "smarty_internal_configfileparser.php" +#line 585 "smarty_internal_configfileparser.php" return; } $yytos = new TPC_yyStackEntry; @@ -652,51 +651,51 @@ static public $yy_action = array( 15 => 15, 16 => 16, ); -#line 133 "smarty_internal_configfileparser.y" +#line 132 "smarty_internal_configfileparser.y" function yy_r0(){ $this->_retvalue = null; } -#line 653 "smarty_internal_configfileparser.php" -#line 136 "smarty_internal_configfileparser.y" +#line 652 "smarty_internal_configfileparser.php" +#line 135 "smarty_internal_configfileparser.y" function yy_r1(){ $this->add_global_vars($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = null; } -#line 656 "smarty_internal_configfileparser.php" -#line 142 "smarty_internal_configfileparser.y" +#line 655 "smarty_internal_configfileparser.php" +#line 141 "smarty_internal_configfileparser.y" function yy_r4(){ $this->add_section_vars($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = null; } -#line 659 "smarty_internal_configfileparser.php" -#line 143 "smarty_internal_configfileparser.y" +#line 658 "smarty_internal_configfileparser.php" +#line 142 "smarty_internal_configfileparser.y" function yy_r5(){ if ($this->smarty->config_read_hidden) { $this->add_section_vars($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + 0]->minor); } $this->_retvalue = null; } -#line 662 "smarty_internal_configfileparser.php" -#line 146 "smarty_internal_configfileparser.y" +#line 661 "smarty_internal_configfileparser.php" +#line 145 "smarty_internal_configfileparser.y" function yy_r6(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -#line 665 "smarty_internal_configfileparser.php" -#line 147 "smarty_internal_configfileparser.y" +#line 664 "smarty_internal_configfileparser.php" +#line 146 "smarty_internal_configfileparser.y" function yy_r7(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor, Array($this->yystack[$this->yyidx + 0]->minor)); } -#line 668 "smarty_internal_configfileparser.php" -#line 148 "smarty_internal_configfileparser.y" +#line 667 "smarty_internal_configfileparser.php" +#line 147 "smarty_internal_configfileparser.y" function yy_r8(){ $this->_retvalue = Array(); } -#line 671 "smarty_internal_configfileparser.php" -#line 152 "smarty_internal_configfileparser.y" +#line 670 "smarty_internal_configfileparser.php" +#line 151 "smarty_internal_configfileparser.y" function yy_r9(){ $this->_retvalue = Array("key" => $this->yystack[$this->yyidx + -2]->minor, "value" => $this->yystack[$this->yyidx + 0]->minor); } -#line 674 "smarty_internal_configfileparser.php" -#line 154 "smarty_internal_configfileparser.y" +#line 673 "smarty_internal_configfileparser.php" +#line 153 "smarty_internal_configfileparser.y" function yy_r10(){ $this->_retvalue = (float) $this->yystack[$this->yyidx + 0]->minor; } -#line 677 "smarty_internal_configfileparser.php" -#line 155 "smarty_internal_configfileparser.y" +#line 676 "smarty_internal_configfileparser.php" +#line 154 "smarty_internal_configfileparser.y" function yy_r11(){ $this->_retvalue = (int) $this->yystack[$this->yyidx + 0]->minor; } -#line 680 "smarty_internal_configfileparser.php" -#line 156 "smarty_internal_configfileparser.y" +#line 679 "smarty_internal_configfileparser.php" +#line 155 "smarty_internal_configfileparser.y" function yy_r12(){ $this->_retvalue = $this->parse_bool($this->yystack[$this->yyidx + 0]->minor); } -#line 683 "smarty_internal_configfileparser.php" -#line 157 "smarty_internal_configfileparser.y" +#line 682 "smarty_internal_configfileparser.php" +#line 156 "smarty_internal_configfileparser.y" function yy_r13(){ $this->_retvalue = self::parse_single_quoted_string($this->yystack[$this->yyidx + 0]->minor); } -#line 686 "smarty_internal_configfileparser.php" -#line 158 "smarty_internal_configfileparser.y" +#line 685 "smarty_internal_configfileparser.php" +#line 157 "smarty_internal_configfileparser.y" function yy_r14(){ $this->_retvalue = self::parse_double_quoted_string($this->yystack[$this->yyidx + 0]->minor); } -#line 689 "smarty_internal_configfileparser.php" -#line 159 "smarty_internal_configfileparser.y" +#line 688 "smarty_internal_configfileparser.php" +#line 158 "smarty_internal_configfileparser.y" function yy_r15(){ $this->_retvalue = self::parse_tripple_double_quoted_string($this->yystack[$this->yyidx + 0]->minor); } -#line 692 "smarty_internal_configfileparser.php" -#line 160 "smarty_internal_configfileparser.y" +#line 691 "smarty_internal_configfileparser.php" +#line 159 "smarty_internal_configfileparser.y" function yy_r16(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 695 "smarty_internal_configfileparser.php" +#line 694 "smarty_internal_configfileparser.php" private $_retvalue; @@ -753,12 +752,12 @@ static public $yy_action = array( function yy_syntax_error($yymajor, $TOKEN) { -#line 120 "smarty_internal_configfileparser.y" +#line 119 "smarty_internal_configfileparser.y" $this->internalError = true; $this->yymajor = $yymajor; $this->compiler->trigger_config_file_error(); -#line 758 "smarty_internal_configfileparser.php" +#line 757 "smarty_internal_configfileparser.php" } function yy_accept() @@ -769,13 +768,13 @@ static public $yy_action = array( while ($this->yyidx >= 0) { $stack = $this->yy_pop_parser_stack(); } -#line 112 "smarty_internal_configfileparser.y" +#line 111 "smarty_internal_configfileparser.y" $this->successful = !$this->internalError; $this->internalError = false; $this->retvalue = $this->_retvalue; //echo $this->retvalue."\n\n"; -#line 776 "smarty_internal_configfileparser.php" +#line 775 "smarty_internal_configfileparser.php" } function doParse($yymajor, $yytokenvalue) @@ -868,5 +867,4 @@ static public $yy_action = array( } while ($yymajor != self::YYNOCODE && $this->yyidx >= 0); } } - ?> \ No newline at end of file diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_data.php b/gosa-core/include/smarty/sysplugins/smarty_internal_data.php index 178188271..609376ecb 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_data.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_data.php @@ -196,7 +196,9 @@ class Smarty_Internal_Data { $_ptr = $this; } while ($_ptr !== null) { foreach ($_ptr->tpl_vars AS $key => $var) { - $_result[$key] = $var->value; + if (!array_key_exists($key, $_result)) { + $_result[$key] = $var->value; + } } // not found, try at parent if ($search_parents) { @@ -207,7 +209,9 @@ class Smarty_Internal_Data { } if ($search_parents && isset(Smarty::$global_tpl_vars)) { foreach (Smarty::$global_tpl_vars AS $key => $var) { - $_result[$key] = $var->value; + if (!array_key_exists($key, $_result)) { + $_result[$key] = $var->value; + } } } return $_result; diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_get_include_path.php b/gosa-core/include/smarty/sysplugins/smarty_internal_get_include_path.php new file mode 100644 index 000000000..b9f193162 --- /dev/null +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_get_include_path.php @@ -0,0 +1,44 @@ + \ No newline at end of file diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_register.php b/gosa-core/include/smarty/sysplugins/smarty_internal_register.php index aee615840..edaa7ff13 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_register.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_register.php @@ -35,10 +35,7 @@ class Smarty_Internal_Register { } elseif (!is_callable($callback)) { throw new Exception("Plugin \"{$tag}\" not callable"); } else { - $this->smarty->registered_plugins[$type][$tag] = array($callback, (bool) $cacheable); - if (isset($cache_attr)&&in_array($type, array(Smarty::PLUGIN_BLOCK, Smarty::PLUGIN_FUNCTION))) { - $this->smarty->registered_plugins[$type][$tag][] = (array) $cache_attr; - } + $this->smarty->registered_plugins[$type][$tag] = array($callback, (bool) $cacheable, (array) $cache_attr); } } diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_template.php b/gosa-core/include/smarty/sysplugins/smarty_internal_template.php index d361b4c61..070fb840d 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_template.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_template.php @@ -273,7 +273,16 @@ class Smarty_Internal_Template extends Smarty_Internal_Data { } if ($this->smarty->debugging) { Smarty_Internal_Debug::end_compile($this); - } + } + // release objects to free memory + Smarty_Internal_TemplateCompilerBase::$_tag_objects = array(); + unset($this->compiler_object->parser->root_buffer, + $this->compiler_object->parser->current_buffer, + $this->compiler_object->parser, + $this->compiler_object->lex, + $this->compiler_object->template, + $this->compiler_object + ); } /** @@ -593,17 +602,27 @@ class Smarty_Internal_Template extends Smarty_Internal_Data { { if ($file == null) { $file = $this->resource_name; - } - foreach((array)$this->smarty->template_dir as $_template_dir) { - if (strpos('/\\', substr($_template_dir, -1)) === false) { - $_template_dir .= DS; - } - - $_filepath = $_template_dir . $file; - if (file_exists($_filepath)) - return $_filepath; - } - if (file_exists($file)) return $file; + } + // relative file name? + if (!preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $file)) { + foreach((array)$this->smarty->template_dir as $_template_dir) { + if (strpos('/\\', substr($_template_dir, -1)) === false) { + $_template_dir .= DS; + } + $_filepath = $_template_dir . $file; + if (file_exists($_filepath)) { + return $_filepath; + } + if (!preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $_template_dir)) { + // try PHP include_path + if (($_filepath = Smarty_Internal_Get_Include_Path::getIncludePath($_filepath)) !== false) { + return $_filepath; + } + } + } + } + // try absolute filepath + if (file_exists($file)) return $file; // no tpl file found if (!empty($this->smarty->default_template_handler_func)) { if (!is_callable($this->smarty->default_template_handler_func)) { @@ -813,7 +832,7 @@ class Smarty_Internal_Template extends Smarty_Internal_Data { } /** - * creates a loacal Smarty variable for array assignments + * creates a local Smarty variable for array assignments */ public function createLocalArrayVariable($tpl_var, $nocache = false, $scope = Smarty::SCOPE_LOCAL) { @@ -842,14 +861,10 @@ class Smarty_Internal_Template extends Smarty_Internal_Data { { if (is_array($value) === true || $value instanceof Countable) { return count($value); - } elseif ($value instanceof ArrayAccess) { - if ($value->offsetExists(0)) { - return 1; - } } elseif ($value instanceof Iterator) { $value->rewind(); if ($value->valid()) { - return 1; + return iterator_count($value); } } elseif ($value instanceof PDOStatement) { return $value->rowCount(); diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_templatecompilerbase.php b/gosa-core/include/smarty/sysplugins/smarty_internal_templatecompilerbase.php index 38d612e0a..76cec5dc1 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_templatecompilerbase.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_templatecompilerbase.php @@ -33,7 +33,7 @@ class Smarty_Internal_TemplateCompilerBase { { $this->nocache_hash = str_replace('.', '-', uniqid(rand(), true)); } - // abstract function doCompile($_content); + /** * Methode to compile a Smarty template * @@ -196,7 +196,12 @@ class Smarty_Internal_TemplateCompilerBase { if ($plugin_type == Smarty::PLUGIN_BLOCK && $this->smarty->loadPlugin('smarty_compiler_' . $tag)) { $plugin = 'smarty_compiler_' . $tag; if (is_callable($plugin)) { - return $plugin($args, $this->smarty); + // convert arguments format for old compiler plugins + $new_args = array(); + foreach ($args as $mixed) { + $new_args = array_merge($new_args, $mixed); + } + return $plugin($new_args, $this->smarty); } if (class_exists($plugin, false)) { $plugin_object = new $plugin; @@ -364,6 +369,7 @@ class Smarty_Internal_TemplateCompilerBase { ($this->nocache || $this->tag_nocache || $this->template->forceNocache == 2)) { $this->template->has_nocache_code = true; $_output = str_replace("'", "\'", $content); + $_output = str_replace("^#^", "'", $_output); $_output = "nocache_hash}%%*/" . $_output . "/*/%%SmartyNocache:{$this->nocache_hash}%%*/';?>"; // make sure we include modifer plugins for nocache code if (isset($this->template->saved_modifier)) { diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_templatelexer.php b/gosa-core/include/smarty/sysplugins/smarty_internal_templatelexer.php index 2210aba04..5e0e496a3 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_templatelexer.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_templatelexer.php @@ -79,8 +79,6 @@ class Smarty_Internal_Templatelexer function __construct($data,$compiler) { - // set instance object - self::instance($this); // $this->data = preg_replace("/(\r\n|\r|\n)/", "\n", $data); $this->data = $data; $this->counter = 0; @@ -93,14 +91,6 @@ class Smarty_Internal_Templatelexer $this->smarty_token_names['LDEL'] = $this->smarty->left_delimiter; $this->smarty_token_names['RDEL'] = $this->smarty->right_delimiter; } - public static function &instance($new_instance = null) - { - static $instance = null; - if (isset($new_instance) && is_object($new_instance)) - $instance = $new_instance; - return $instance; - } - private $_yy_state = 1; @@ -154,11 +144,12 @@ class Smarty_Internal_Templatelexer 22 => 0, 23 => 2, 26 => 0, + 27 => 0, ); if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^(".$this->ldel."[$]smarty\\.block\\.child".$this->rdel.")|^(\\{\\})|^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\\s{1,}strip\\s{1,}".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."\\s{1,}\/strip\\s{1,}".$this->rdel.")|^(".$this->ldel."\\s*literal\\s*".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s*(if|elseif|else if|while)(?![^\s]))|^(".$this->ldel."\\s*for(?![^\s]))|^(".$this->ldel."\\s*foreach(?![^\s]))|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^(\\?>)|^(<%)|^(%>)|^(([\S\s]*?)(?=([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?|\\?>|<%|%>)))|^([\S\s]+)/"; + $yy_global_pattern = "/^(".$this->ldel."[$]smarty\\.block\\.child".$this->rdel.")|^(\\{\\})|^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\\s{1,}strip\\s{1,}".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."\\s{1,}\/strip\\s{1,}".$this->rdel.")|^(".$this->ldel."\\s*literal\\s*".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s*(if|elseif|else if|while)(?![^\s]))|^(".$this->ldel."\\s*for(?![^\s]))|^(".$this->ldel."\\s*foreach(?![^\s]))|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^(\\?>)|^(<%)|^(%>)|^(([\S\s]*?)(?=([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?|\\?>|<%|%>)))|^([\S\s]+)|^(.)/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -374,6 +365,11 @@ class Smarty_Internal_Templatelexer function yy_r1_26($yy_subpatterns) { + $this->token = Smarty_Internal_Templateparser::TP_OTHER; + } + function yy_r1_27($yy_subpatterns) + { + $this->token = Smarty_Internal_Templateparser::TP_OTHER; } @@ -392,26 +388,34 @@ class Smarty_Internal_Templatelexer 10 => 0, 11 => 0, 12 => 0, - 13 => 1, - 15 => 1, - 17 => 1, + 13 => 0, + 14 => 0, + 15 => 0, + 16 => 0, + 17 => 0, + 18 => 0, 19 => 0, - 20 => 0, - 21 => 0, + 20 => 1, 22 => 1, 24 => 1, - 26 => 1, - 28 => 1, - 30 => 1, - 32 => 1, - 34 => 1, - 36 => 1, - 38 => 1, - 40 => 1, - 42 => 1, - 44 => 0, - 45 => 0, - 46 => 0, + 26 => 0, + 27 => 0, + 28 => 0, + 29 => 0, + 30 => 0, + 31 => 0, + 32 => 0, + 33 => 0, + 34 => 0, + 35 => 0, + 36 => 0, + 37 => 0, + 38 => 0, + 39 => 0, + 40 => 0, + 41 => 0, + 42 => 0, + 43 => 3, 47 => 0, 48 => 0, 49 => 0, @@ -419,8 +423,9 @@ class Smarty_Internal_Templatelexer 51 => 0, 52 => 0, 53 => 0, - 54 => 3, - 58 => 0, + 54 => 0, + 55 => 1, + 57 => 1, 59 => 0, 60 => 0, 61 => 0, @@ -428,8 +433,10 @@ class Smarty_Internal_Templatelexer 63 => 0, 64 => 0, 65 => 0, - 66 => 1, - 68 => 1, + 66 => 0, + 67 => 0, + 68 => 0, + 69 => 0, 70 => 0, 71 => 0, 72 => 0, @@ -437,22 +444,11 @@ class Smarty_Internal_Templatelexer 74 => 0, 75 => 0, 76 => 0, - 77 => 0, - 78 => 0, - 79 => 0, - 80 => 0, - 81 => 0, - 82 => 0, - 83 => 0, - 84 => 0, - 85 => 0, - 86 => 0, - 87 => 0, ); if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s*(if|elseif|else if|while)(?![^\s]))|^(".$this->ldel."\\s*for(?![^\s]))|^(".$this->ldel."\\s*foreach(?![^\s]))|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\+\\+|--)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(0[xX][0-9a-fA-F]+)|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)/"; + $yy_global_pattern = "/^('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s*(if|elseif|else if|while)(?![^\s]))|^(".$this->ldel."\\s*for(?![^\s]))|^(".$this->ldel."\\s*foreach(?![^\s]))|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+as\\s+)|^(\\s+to\\s+)|^(\\s+step\\s+)|^(\\s+instanceof\\s+)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+eq\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(le|lte)\\s+)|^(\\s*>\\s*|\\s+gt\\s+)|^(\\s*<\\s*|\\s+lt\\s+)|^(\\s+mod\\s+)|^(!\\s*|not\\s+)|^(\\s*&&\\s*|\\s*and\\s+)|^(\\s*\\|\\|\\s*|\\s*or\\s+)|^(\\s*xor\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\)\\s*)|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^(\\+\\+|--)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^(0[xX][0-9a-fA-F]+)|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -602,279 +598,279 @@ class Smarty_Internal_Templatelexer $this->token = Smarty_Internal_Templateparser::TP_AS; } - function yy_r2_15($yy_subpatterns) + function yy_r2_14($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_TO; } - function yy_r2_17($yy_subpatterns) + function yy_r2_15($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_STEP; } - function yy_r2_19($yy_subpatterns) + function yy_r2_16($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF; } - function yy_r2_20($yy_subpatterns) + function yy_r2_17($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_IDENTITY; } - function yy_r2_21($yy_subpatterns) + function yy_r2_18($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY; } - function yy_r2_22($yy_subpatterns) + function yy_r2_19($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_EQUALS; } - function yy_r2_24($yy_subpatterns) + function yy_r2_20($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS; } - function yy_r2_26($yy_subpatterns) + function yy_r2_22($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL; } - function yy_r2_28($yy_subpatterns) + function yy_r2_24($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL; } - function yy_r2_30($yy_subpatterns) + function yy_r2_26($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN; } - function yy_r2_32($yy_subpatterns) + function yy_r2_27($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN; } - function yy_r2_34($yy_subpatterns) + function yy_r2_28($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_MOD; } - function yy_r2_36($yy_subpatterns) + function yy_r2_29($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_NOT; } - function yy_r2_38($yy_subpatterns) + function yy_r2_30($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_LAND; } - function yy_r2_40($yy_subpatterns) + function yy_r2_31($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_LOR; } - function yy_r2_42($yy_subpatterns) + function yy_r2_32($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_LXOR; } - function yy_r2_44($yy_subpatterns) + function yy_r2_33($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISODDBY; } - function yy_r2_45($yy_subpatterns) + function yy_r2_34($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY; } - function yy_r2_46($yy_subpatterns) + function yy_r2_35($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISODD; } - function yy_r2_47($yy_subpatterns) + function yy_r2_36($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD; } - function yy_r2_48($yy_subpatterns) + function yy_r2_37($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY; } - function yy_r2_49($yy_subpatterns) + function yy_r2_38($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY; } - function yy_r2_50($yy_subpatterns) + function yy_r2_39($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISEVEN; } - function yy_r2_51($yy_subpatterns) + function yy_r2_40($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN; } - function yy_r2_52($yy_subpatterns) + function yy_r2_41($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY; } - function yy_r2_53($yy_subpatterns) + function yy_r2_42($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY; } - function yy_r2_54($yy_subpatterns) + function yy_r2_43($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_TYPECAST; } - function yy_r2_58($yy_subpatterns) + function yy_r2_47($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_OPENP; } - function yy_r2_59($yy_subpatterns) + function yy_r2_48($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_CLOSEP; } - function yy_r2_60($yy_subpatterns) + function yy_r2_49($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_OPENB; } - function yy_r2_61($yy_subpatterns) + function yy_r2_50($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_CLOSEB; } - function yy_r2_62($yy_subpatterns) + function yy_r2_51($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_PTR; } - function yy_r2_63($yy_subpatterns) + function yy_r2_52($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_APTR; } - function yy_r2_64($yy_subpatterns) + function yy_r2_53($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_EQUAL; } - function yy_r2_65($yy_subpatterns) + function yy_r2_54($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_INCDEC; } - function yy_r2_66($yy_subpatterns) + function yy_r2_55($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_UNIMATH; } - function yy_r2_68($yy_subpatterns) + function yy_r2_57($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_MATH; } - function yy_r2_70($yy_subpatterns) + function yy_r2_59($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_DOLLAR; } - function yy_r2_71($yy_subpatterns) + function yy_r2_60($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON; } - function yy_r2_72($yy_subpatterns) + function yy_r2_61($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON; } - function yy_r2_73($yy_subpatterns) + function yy_r2_62($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_COLON; } - function yy_r2_74($yy_subpatterns) + function yy_r2_63($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_AT; } - function yy_r2_75($yy_subpatterns) + function yy_r2_64($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_HATCH; } - function yy_r2_76($yy_subpatterns) + function yy_r2_65($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_QUOTE; $this->yypushstate(self::DOUBLEQUOTEDSTRING); } - function yy_r2_77($yy_subpatterns) + function yy_r2_66($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_BACKTICK; $this->yypopstate(); } - function yy_r2_78($yy_subpatterns) + function yy_r2_67($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_VERT; } - function yy_r2_79($yy_subpatterns) + function yy_r2_68($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_DOT; } - function yy_r2_80($yy_subpatterns) + function yy_r2_69($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_COMMA; } - function yy_r2_81($yy_subpatterns) + function yy_r2_70($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ANDSYM; } - function yy_r2_82($yy_subpatterns) + function yy_r2_71($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_QMARK; } - function yy_r2_83($yy_subpatterns) + function yy_r2_72($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_HEX; } - function yy_r2_84($yy_subpatterns) + function yy_r2_73($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_ID; } - function yy_r2_85($yy_subpatterns) + function yy_r2_74($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_INTEGER; } - function yy_r2_86($yy_subpatterns) + function yy_r2_75($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_SPACE; } - function yy_r2_87($yy_subpatterns) + function yy_r2_76($yy_subpatterns) { $this->token = Smarty_Internal_Templateparser::TP_OTHER; @@ -898,7 +894,7 @@ class Smarty_Internal_Templatelexer if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^(".$this->ldel."\\s*literal\\s*".$this->rdel.")|^(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|^([\t ]*[\r\n]+[\t ]*)|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^(\\?>)|^(<%)|^(%>)|^(([\S\s]*?)(?=([\t ]*[\r\n]+[\t ]*|".$this->ldel."\/?literal".$this->rdel."|<\\?|<%)))|^([\S\s]+)/"; + $yy_global_pattern = "/^(".$this->ldel."\\s*literal\\s*".$this->rdel.")|^(".$this->ldel."\\s*\/literal\\s*".$this->rdel.")|^([\t ]*[\r\n]+[\t ]*)|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^(\\?>)|^(<%)|^(%>)|^(([\S\s]*?)(?=([\t ]*[\r\n]+[\t ]*|".$this->ldel."\/?literal".$this->rdel."|<\\?|<%)))|^(.)/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -1018,11 +1014,12 @@ class Smarty_Internal_Templatelexer 12 => 0, 13 => 3, 17 => 0, + 18 => 0, ); if ($this->counter >= strlen($this->data)) { return false; // end of input } - $yy_global_pattern = "/^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s*(if|elseif|else if|while)(?![^\s]))|^(".$this->ldel."\\s*for(?![^\s]))|^(".$this->ldel."\\s*foreach(?![^\s]))|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$[0-9]*[a-zA-Z_]\\w*)|^(\\$)|^(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel."|\\$|`\\$|\")))|^([\S\s]+)/"; + $yy_global_pattern = "/^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s*(if|elseif|else if|while)(?![^\s]))|^(".$this->ldel."\\s*for(?![^\s]))|^(".$this->ldel."\\s*foreach(?![^\s]))|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$[0-9]*[a-zA-Z_]\\w*)|^(\\$)|^(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel."|\\$|`\\$|\")))|^([\S\s]+)|^(.)/iS"; do { if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) { @@ -1173,6 +1170,11 @@ class Smarty_Internal_Templatelexer function yy_r4_17($yy_subpatterns) { + $this->token = Smarty_Internal_Templateparser::TP_OTHER; + } + function yy_r4_18($yy_subpatterns) + { + $this->token = Smarty_Internal_Templateparser::TP_OTHER; } diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_templateparser.php b/gosa-core/include/smarty/sysplugins/smarty_internal_templateparser.php index 342d2bea7..90e1c9762 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_templateparser.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_templateparser.php @@ -97,8 +97,6 @@ class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php private $internalError = false; function __construct($lex, $compiler) { - // set instance object - self::instance($this); $this->lex = $lex; $this->compiler = $compiler; $this->smarty = $this->compiler->smarty; @@ -116,27 +114,18 @@ class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php $this->asp_tags = (ini_get('asp_tags') != '0'); $this->current_buffer = $this->root_buffer = new _smarty_template_buffer($this); } - public static function &instance($new_instance = null) - { - static $instance = null; - if (isset($new_instance) && is_object($new_instance)) - $instance = $new_instance; - return $instance; - } public static function escape_start_tag($tag_text) { $tag = preg_replace('/\A<\?(.*)\z/', '<?\1', $tag_text, -1 , $count); //Escape tag - assert($tag !== false && $count === 1); return $tag; } public static function escape_end_tag($tag_text) { - assert($tag_text === '?>'); return '?>'; } -#line 132 "smarty_internal_templateparser.php" +#line 121 "smarty_internal_templateparser.php" const TP_VERT = 1; const TP_COLON = 2; @@ -1739,11 +1728,11 @@ static public $yy_action = array( while ($this->yyidx >= 0) { $this->yy_pop_parser_stack(); } -#line 84 "smarty_internal_templateparser.y" +#line 73 "smarty_internal_templateparser.y" $this->internalError = true; $this->compiler->trigger_template_error("Stack overflow in template parser"); -#line 1742 "smarty_internal_templateparser.php" +#line 1731 "smarty_internal_templateparser.php" return; } $yytos = new TP_yyStackEntry; @@ -2165,13 +2154,13 @@ static public $yy_action = array( 196 => 196, 198 => 198, ); -#line 95 "smarty_internal_templateparser.y" +#line 84 "smarty_internal_templateparser.y" function yy_r0(){ $this->_retvalue = $this->root_buffer->to_smarty_php(); } -#line 2166 "smarty_internal_templateparser.php" -#line 101 "smarty_internal_templateparser.y" +#line 2155 "smarty_internal_templateparser.php" +#line 90 "smarty_internal_templateparser.y" function yy_r1(){ $this->current_buffer->append_subtree($this->yystack[$this->yyidx + 0]->minor); } -#line 2169 "smarty_internal_templateparser.php" -#line 113 "smarty_internal_templateparser.y" +#line 2158 "smarty_internal_templateparser.php" +#line 102 "smarty_internal_templateparser.y" function yy_r4(){ if ($this->compiler->has_code) { $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array(); @@ -2182,14 +2171,14 @@ static public $yy_action = array( $this->compiler->has_variable_string = false; $this->block_nesting_level = count($this->compiler->_tag_stack); } -#line 2181 "smarty_internal_templateparser.php" -#line 125 "smarty_internal_templateparser.y" +#line 2170 "smarty_internal_templateparser.php" +#line 114 "smarty_internal_templateparser.y" function yy_r5(){ $this->_retvalue = new _smarty_tag($this, ''); } -#line 2184 "smarty_internal_templateparser.php" -#line 128 "smarty_internal_templateparser.y" +#line 2173 "smarty_internal_templateparser.php" +#line 117 "smarty_internal_templateparser.y" function yy_r6(){ $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor); } -#line 2187 "smarty_internal_templateparser.php" -#line 131 "smarty_internal_templateparser.y" +#line 2176 "smarty_internal_templateparser.php" +#line 120 "smarty_internal_templateparser.y" function yy_r7(){ if ($this->php_handling == Smarty::PHP_PASSTHRU) { $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)); @@ -2201,8 +2190,8 @@ static public $yy_action = array( $this->_retvalue = new _smarty_text($this, ''); } } -#line 2200 "smarty_internal_templateparser.php" -#line 143 "smarty_internal_templateparser.y" +#line 2189 "smarty_internal_templateparser.php" +#line 132 "smarty_internal_templateparser.y" function yy_r8(){if ($this->is_xml) { $this->compiler->tag_nocache = true; $this->is_xml = true; @@ -2217,8 +2206,8 @@ static public $yy_action = array( $this->_retvalue = new _smarty_text($this, ''); } } -#line 2216 "smarty_internal_templateparser.php" -#line 159 "smarty_internal_templateparser.y" +#line 2205 "smarty_internal_templateparser.php" +#line 148 "smarty_internal_templateparser.y" function yy_r9(){ if ($this->php_handling == Smarty::PHP_PASSTHRU) { $this->_retvalue = new _smarty_text($this, '<%'); @@ -2238,8 +2227,8 @@ static public $yy_action = array( } } } -#line 2237 "smarty_internal_templateparser.php" -#line 180 "smarty_internal_templateparser.y" +#line 2226 "smarty_internal_templateparser.php" +#line 169 "smarty_internal_templateparser.y" function yy_r10(){ if ($this->php_handling == Smarty::PHP_PASSTHRU) { $this->_retvalue = new _smarty_text($this, '%>'); @@ -2259,159 +2248,159 @@ static public $yy_action = array( } } } -#line 2258 "smarty_internal_templateparser.php" -#line 200 "smarty_internal_templateparser.y" +#line 2247 "smarty_internal_templateparser.php" +#line 189 "smarty_internal_templateparser.y" function yy_r11(){if ($this->lex->strip) { $this->_retvalue = new _smarty_text($this, preg_replace('![\$this->yystack[$this->yyidx + 0]->minor ]*[\r\n]+[\$this->yystack[$this->yyidx + 0]->minor ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor))); } else { $this->_retvalue = new _smarty_text($this, self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)); } } -#line 2266 "smarty_internal_templateparser.php" -#line 208 "smarty_internal_templateparser.y" +#line 2255 "smarty_internal_templateparser.php" +#line 197 "smarty_internal_templateparser.y" function yy_r12(){ $this->compiler->tag_nocache = true; $this->is_xml = true; $this->_retvalue = new _smarty_text($this, $this->compiler->processNocacheCode("", $this->compiler, true)); } -#line 2269 "smarty_internal_templateparser.php" -#line 211 "smarty_internal_templateparser.y" +#line 2258 "smarty_internal_templateparser.php" +#line 200 "smarty_internal_templateparser.y" function yy_r13(){if ($this->lex->strip) { $this->_retvalue = new _smarty_text($this, preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor)); } else { $this->_retvalue = new _smarty_text($this, $this->yystack[$this->yyidx + 0]->minor); } } -#line 2277 "smarty_internal_templateparser.php" -#line 217 "smarty_internal_templateparser.y" +#line 2266 "smarty_internal_templateparser.php" +#line 206 "smarty_internal_templateparser.y" function yy_r14(){ $this->_retvalue = new _smarty_linebreak($this, $this->yystack[$this->yyidx + 0]->minor); } -#line 2282 "smarty_internal_templateparser.php" -#line 222 "smarty_internal_templateparser.y" +#line 2271 "smarty_internal_templateparser.php" +#line 211 "smarty_internal_templateparser.y" function yy_r15(){ $this->_retvalue = ''; } -#line 2285 "smarty_internal_templateparser.php" -#line 223 "smarty_internal_templateparser.y" +#line 2274 "smarty_internal_templateparser.php" +#line 212 "smarty_internal_templateparser.y" function yy_r16(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -#line 2288 "smarty_internal_templateparser.php" -#line 225 "smarty_internal_templateparser.y" +#line 2277 "smarty_internal_templateparser.php" +#line 214 "smarty_internal_templateparser.y" function yy_r17(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2291 "smarty_internal_templateparser.php" -#line 228 "smarty_internal_templateparser.y" +#line 2280 "smarty_internal_templateparser.php" +#line 217 "smarty_internal_templateparser.y" function yy_r19(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2294 "smarty_internal_templateparser.php" -#line 230 "smarty_internal_templateparser.y" +#line 2283 "smarty_internal_templateparser.php" +#line 219 "smarty_internal_templateparser.y" function yy_r21(){ $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor); } -#line 2297 "smarty_internal_templateparser.php" -#line 232 "smarty_internal_templateparser.y" +#line 2286 "smarty_internal_templateparser.php" +#line 221 "smarty_internal_templateparser.y" function yy_r23(){ $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor); } -#line 2300 "smarty_internal_templateparser.php" -#line 233 "smarty_internal_templateparser.y" +#line 2289 "smarty_internal_templateparser.php" +#line 222 "smarty_internal_templateparser.y" function yy_r24(){ $this->_retvalue = '<%'; } -#line 2303 "smarty_internal_templateparser.php" -#line 234 "smarty_internal_templateparser.y" +#line 2292 "smarty_internal_templateparser.php" +#line 223 "smarty_internal_templateparser.y" function yy_r25(){ $this->_retvalue = '%>'; } -#line 2306 "smarty_internal_templateparser.php" -#line 242 "smarty_internal_templateparser.y" +#line 2295 "smarty_internal_templateparser.php" +#line 231 "smarty_internal_templateparser.y" function yy_r26(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 2309 "smarty_internal_templateparser.php" -#line 243 "smarty_internal_templateparser.y" +#line 2298 "smarty_internal_templateparser.php" +#line 232 "smarty_internal_templateparser.y" function yy_r27(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor)); } -#line 2312 "smarty_internal_templateparser.php" -#line 245 "smarty_internal_templateparser.y" +#line 2301 "smarty_internal_templateparser.php" +#line 234 "smarty_internal_templateparser.y" function yy_r29(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + -1]->minor,array('value'=>$this->yystack[$this->yyidx + -3]->minor,'modifierlist'=>$this->yystack[$this->yyidx + -2]->minor)); } -#line 2315 "smarty_internal_templateparser.php" -#line 253 "smarty_internal_templateparser.y" +#line 2304 "smarty_internal_templateparser.php" +#line 242 "smarty_internal_templateparser.y" function yy_r31(){ $this->_retvalue = $this->compiler->compileTag('assign',array(array('value'=>$this->yystack[$this->yyidx + -1]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'"))); } -#line 2318 "smarty_internal_templateparser.php" -#line 255 "smarty_internal_templateparser.y" +#line 2307 "smarty_internal_templateparser.php" +#line 244 "smarty_internal_templateparser.y" function yy_r33(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>"'".$this->yystack[$this->yyidx + -4]->minor."'")),$this->yystack[$this->yyidx + -1]->minor)); } -#line 2321 "smarty_internal_templateparser.php" -#line 256 "smarty_internal_templateparser.y" +#line 2310 "smarty_internal_templateparser.php" +#line 245 "smarty_internal_templateparser.y" function yy_r34(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + -2]->minor),array('var'=>$this->yystack[$this->yyidx + -4]->minor['var'])),$this->yystack[$this->yyidx + -1]->minor),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -4]->minor['smarty_internal_index'])); } -#line 2324 "smarty_internal_templateparser.php" -#line 258 "smarty_internal_templateparser.y" +#line 2313 "smarty_internal_templateparser.php" +#line 247 "smarty_internal_templateparser.y" function yy_r35(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor); } -#line 2327 "smarty_internal_templateparser.php" -#line 259 "smarty_internal_templateparser.y" +#line 2316 "smarty_internal_templateparser.php" +#line 248 "smarty_internal_templateparser.y" function yy_r36(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array()); } -#line 2330 "smarty_internal_templateparser.php" -#line 261 "smarty_internal_templateparser.y" +#line 2319 "smarty_internal_templateparser.php" +#line 250 "smarty_internal_templateparser.y" function yy_r37(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor)); } -#line 2333 "smarty_internal_templateparser.php" -#line 263 "smarty_internal_templateparser.y" +#line 2322 "smarty_internal_templateparser.php" +#line 252 "smarty_internal_templateparser.y" function yy_r38(){ $this->_retvalue = ''.$this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + -1]->minor).'_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>'; } -#line 2338 "smarty_internal_templateparser.php" -#line 267 "smarty_internal_templateparser.y" +#line 2327 "smarty_internal_templateparser.php" +#line 256 "smarty_internal_templateparser.y" function yy_r39(){ $this->_retvalue = ''.$this->compiler->compileTag($this->yystack[$this->yyidx + -5]->minor,$this->yystack[$this->yyidx + -1]->minor,array('object_methode'=>$this->yystack[$this->yyidx + -3]->minor)).'_retvalue .= $this->compiler->compileTag('private_modifier',array(),array('modifierlist'=>$this->yystack[$this->yyidx + -2]->minor,'value'=>'ob_get_clean()')).'?>'; } -#line 2343 "smarty_internal_templateparser.php" -#line 271 "smarty_internal_templateparser.y" +#line 2332 "smarty_internal_templateparser.php" +#line 260 "smarty_internal_templateparser.y" function yy_r40(){ $tag = trim(substr($this->yystack[$this->yyidx + -3]->minor,$this->lex->ldel_length)); $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 2346 "smarty_internal_templateparser.php" -#line 272 "smarty_internal_templateparser.y" +#line 2335 "smarty_internal_templateparser.php" +#line 261 "smarty_internal_templateparser.y" function yy_r41(){ $tag = trim(substr($this->yystack[$this->yyidx + -4]->minor,$this->lex->ldel_length)); $this->_retvalue = $this->compiler->compileTag(($tag == 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + -1]->minor,array('if condition'=>$this->yystack[$this->yyidx + -2]->minor)); } -#line 2349 "smarty_internal_templateparser.php" -#line 276 "smarty_internal_templateparser.y" +#line 2338 "smarty_internal_templateparser.php" +#line 265 "smarty_internal_templateparser.y" function yy_r44(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -10]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -7]->minor),array('var'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),1); } -#line 2353 "smarty_internal_templateparser.php" -#line 279 "smarty_internal_templateparser.y" +#line 2342 "smarty_internal_templateparser.php" +#line 268 "smarty_internal_templateparser.y" function yy_r45(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; } -#line 2356 "smarty_internal_templateparser.php" -#line 280 "smarty_internal_templateparser.y" +#line 2345 "smarty_internal_templateparser.php" +#line 269 "smarty_internal_templateparser.y" function yy_r46(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2359 "smarty_internal_templateparser.php" -#line 281 "smarty_internal_templateparser.y" +#line 2348 "smarty_internal_templateparser.php" +#line 270 "smarty_internal_templateparser.y" function yy_r47(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -4]->minor),array('to'=>$this->yystack[$this->yyidx + -2]->minor))),0); } -#line 2362 "smarty_internal_templateparser.php" -#line 282 "smarty_internal_templateparser.y" +#line 2351 "smarty_internal_templateparser.php" +#line 271 "smarty_internal_templateparser.y" function yy_r48(){ $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('to'=>$this->yystack[$this->yyidx + -4]->minor),array('step'=>$this->yystack[$this->yyidx + -2]->minor))),0); } -#line 2365 "smarty_internal_templateparser.php" -#line 284 "smarty_internal_templateparser.y" +#line 2354 "smarty_internal_templateparser.php" +#line 273 "smarty_internal_templateparser.y" function yy_r49(){ $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + -1]->minor); } -#line 2368 "smarty_internal_templateparser.php" -#line 286 "smarty_internal_templateparser.y" +#line 2357 "smarty_internal_templateparser.php" +#line 275 "smarty_internal_templateparser.y" function yy_r50(){ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor)))); } -#line 2372 "smarty_internal_templateparser.php" -#line 288 "smarty_internal_templateparser.y" +#line 2361 "smarty_internal_templateparser.php" +#line 277 "smarty_internal_templateparser.y" function yy_r51(){ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor)))); } -#line 2376 "smarty_internal_templateparser.php" -#line 290 "smarty_internal_templateparser.y" +#line 2365 "smarty_internal_templateparser.php" +#line 279 "smarty_internal_templateparser.y" function yy_r52(){ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor)))); } -#line 2380 "smarty_internal_templateparser.php" -#line 292 "smarty_internal_templateparser.y" +#line 2369 "smarty_internal_templateparser.php" +#line 281 "smarty_internal_templateparser.y" function yy_r53(){ $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + -1]->minor,array(array('from'=>$this->yystack[$this->yyidx + -8]->minor),array('item'=>$this->yystack[$this->yyidx + -2]->minor),array('key'=>$this->yystack[$this->yyidx + -5]->minor)))); } -#line 2384 "smarty_internal_templateparser.php" -#line 296 "smarty_internal_templateparser.y" +#line 2373 "smarty_internal_templateparser.php" +#line 285 "smarty_internal_templateparser.y" function yy_r54(){ $this->_retvalue = SMARTY_INTERNAL_COMPILE_BLOCK::compileChildBlock($this->compiler); } -#line 2387 "smarty_internal_templateparser.php" -#line 300 "smarty_internal_templateparser.y" +#line 2376 "smarty_internal_templateparser.php" +#line 289 "smarty_internal_templateparser.y" function yy_r55(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array()); } -#line 2390 "smarty_internal_templateparser.php" -#line 302 "smarty_internal_templateparser.y" +#line 2379 "smarty_internal_templateparser.php" +#line 291 "smarty_internal_templateparser.y" function yy_r56(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 2394 "smarty_internal_templateparser.php" -#line 305 "smarty_internal_templateparser.y" +#line 2383 "smarty_internal_templateparser.php" +#line 294 "smarty_internal_templateparser.y" function yy_r57(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 2397 "smarty_internal_templateparser.php" -#line 306 "smarty_internal_templateparser.y" +#line 2386 "smarty_internal_templateparser.php" +#line 295 "smarty_internal_templateparser.y" function yy_r58(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor.'close',array(),array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + -1]->minor)); } -#line 2400 "smarty_internal_templateparser.php" -#line 312 "smarty_internal_templateparser.y" +#line 2389 "smarty_internal_templateparser.php" +#line 301 "smarty_internal_templateparser.y" function yy_r59(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor; } -#line 2403 "smarty_internal_templateparser.php" -#line 314 "smarty_internal_templateparser.y" +#line 2392 "smarty_internal_templateparser.php" +#line 303 "smarty_internal_templateparser.y" function yy_r60(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -#line 2406 "smarty_internal_templateparser.php" -#line 316 "smarty_internal_templateparser.y" +#line 2395 "smarty_internal_templateparser.php" +#line 305 "smarty_internal_templateparser.y" function yy_r61(){ $this->_retvalue = array(); } -#line 2409 "smarty_internal_templateparser.php" -#line 319 "smarty_internal_templateparser.y" +#line 2398 "smarty_internal_templateparser.php" +#line 308 "smarty_internal_templateparser.y" function yy_r62(){ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) { $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'true'); } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) { @@ -2420,86 +2409,86 @@ static public $yy_action = array( $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'null'); } else $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>"'".$this->yystack[$this->yyidx + 0]->minor."'"); } -#line 2419 "smarty_internal_templateparser.php" -#line 327 "smarty_internal_templateparser.y" +#line 2408 "smarty_internal_templateparser.php" +#line 316 "smarty_internal_templateparser.y" function yy_r63(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); } -#line 2422 "smarty_internal_templateparser.php" -#line 329 "smarty_internal_templateparser.y" +#line 2411 "smarty_internal_templateparser.php" +#line 318 "smarty_internal_templateparser.y" function yy_r65(){ $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'"; } -#line 2425 "smarty_internal_templateparser.php" -#line 332 "smarty_internal_templateparser.y" +#line 2414 "smarty_internal_templateparser.php" +#line 321 "smarty_internal_templateparser.y" function yy_r68(){$this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); } -#line 2428 "smarty_internal_templateparser.php" -#line 339 "smarty_internal_templateparser.y" +#line 2417 "smarty_internal_templateparser.php" +#line 328 "smarty_internal_templateparser.y" function yy_r70(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; } -#line 2431 "smarty_internal_templateparser.php" -#line 341 "smarty_internal_templateparser.y" +#line 2420 "smarty_internal_templateparser.php" +#line 330 "smarty_internal_templateparser.y" function yy_r71(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); } -#line 2434 "smarty_internal_templateparser.php" -#line 343 "smarty_internal_templateparser.y" +#line 2423 "smarty_internal_templateparser.php" +#line 332 "smarty_internal_templateparser.y" function yy_r73(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -#line 2437 "smarty_internal_templateparser.php" -#line 354 "smarty_internal_templateparser.y" +#line 2426 "smarty_internal_templateparser.php" +#line 343 "smarty_internal_templateparser.y" function yy_r76(){$this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')'; } -#line 2440 "smarty_internal_templateparser.php" -#line 356 "smarty_internal_templateparser.y" +#line 2429 "smarty_internal_templateparser.php" +#line 345 "smarty_internal_templateparser.y" function yy_r77(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor; } -#line 2443 "smarty_internal_templateparser.php" -#line 362 "smarty_internal_templateparser.y" +#line 2432 "smarty_internal_templateparser.php" +#line 351 "smarty_internal_templateparser.y" function yy_r80(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2446 "smarty_internal_templateparser.php" -#line 365 "smarty_internal_templateparser.y" +#line 2435 "smarty_internal_templateparser.php" +#line 354 "smarty_internal_templateparser.y" function yy_r81(){ $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor)); } -#line 2449 "smarty_internal_templateparser.php" -#line 369 "smarty_internal_templateparser.y" +#line 2438 "smarty_internal_templateparser.php" +#line 358 "smarty_internal_templateparser.y" function yy_r82(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2452 "smarty_internal_templateparser.php" -#line 370 "smarty_internal_templateparser.y" +#line 2441 "smarty_internal_templateparser.php" +#line 359 "smarty_internal_templateparser.y" function yy_r83(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2455 "smarty_internal_templateparser.php" -#line 371 "smarty_internal_templateparser.y" +#line 2444 "smarty_internal_templateparser.php" +#line 360 "smarty_internal_templateparser.y" function yy_r84(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2458 "smarty_internal_templateparser.php" -#line 373 "smarty_internal_templateparser.y" +#line 2447 "smarty_internal_templateparser.php" +#line 362 "smarty_internal_templateparser.y" function yy_r86(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2461 "smarty_internal_templateparser.php" -#line 374 "smarty_internal_templateparser.y" +#line 2450 "smarty_internal_templateparser.php" +#line 363 "smarty_internal_templateparser.y" function yy_r87(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2464 "smarty_internal_templateparser.php" -#line 375 "smarty_internal_templateparser.y" +#line 2453 "smarty_internal_templateparser.php" +#line 364 "smarty_internal_templateparser.y" function yy_r88(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2467 "smarty_internal_templateparser.php" -#line 376 "smarty_internal_templateparser.y" +#line 2456 "smarty_internal_templateparser.php" +#line 365 "smarty_internal_templateparser.y" function yy_r89(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2470 "smarty_internal_templateparser.php" -#line 377 "smarty_internal_templateparser.y" +#line 2459 "smarty_internal_templateparser.php" +#line 366 "smarty_internal_templateparser.y" function yy_r90(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2473 "smarty_internal_templateparser.php" -#line 378 "smarty_internal_templateparser.y" +#line 2462 "smarty_internal_templateparser.php" +#line 367 "smarty_internal_templateparser.y" function yy_r91(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; } -#line 2476 "smarty_internal_templateparser.php" -#line 384 "smarty_internal_templateparser.y" +#line 2465 "smarty_internal_templateparser.php" +#line 373 "smarty_internal_templateparser.y" function yy_r97(){$this->prefix_number++; $this->compiler->prefix_code[] = 'prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>'; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number; } -#line 2479 "smarty_internal_templateparser.php" -#line 390 "smarty_internal_templateparser.y" +#line 2468 "smarty_internal_templateparser.php" +#line 379 "smarty_internal_templateparser.y" function yy_r98(){ $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.' ? $_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'\')->value : '.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + -2]->minor', null, true, false)->nocache; } -#line 2482 "smarty_internal_templateparser.php" -#line 391 "smarty_internal_templateparser.y" +#line 2471 "smarty_internal_templateparser.php" +#line 380 "smarty_internal_templateparser.y" function yy_r99(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor; } -#line 2485 "smarty_internal_templateparser.php" -#line 398 "smarty_internal_templateparser.y" +#line 2474 "smarty_internal_templateparser.php" +#line 387 "smarty_internal_templateparser.y" function yy_r102(){ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2488 "smarty_internal_templateparser.php" -#line 404 "smarty_internal_templateparser.y" +#line 2477 "smarty_internal_templateparser.php" +#line 393 "smarty_internal_templateparser.y" function yy_r107(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2491 "smarty_internal_templateparser.php" -#line 405 "smarty_internal_templateparser.y" +#line 2480 "smarty_internal_templateparser.php" +#line 394 "smarty_internal_templateparser.y" function yy_r108(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'; } -#line 2494 "smarty_internal_templateparser.php" -#line 406 "smarty_internal_templateparser.y" +#line 2483 "smarty_internal_templateparser.php" +#line 395 "smarty_internal_templateparser.y" function yy_r109(){ $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2497 "smarty_internal_templateparser.php" -#line 408 "smarty_internal_templateparser.y" +#line 2486 "smarty_internal_templateparser.php" +#line 397 "smarty_internal_templateparser.y" function yy_r110(){ if (preg_match('~^true$~i', $this->yystack[$this->yyidx + 0]->minor)) { $this->_retvalue = 'true'; } elseif (preg_match('~^false$~i', $this->yystack[$this->yyidx + 0]->minor)) { @@ -2508,11 +2497,11 @@ static public $yy_action = array( $this->_retvalue = 'null'; } else $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'"; } -#line 2507 "smarty_internal_templateparser.php" -#line 419 "smarty_internal_templateparser.y" +#line 2496 "smarty_internal_templateparser.php" +#line 408 "smarty_internal_templateparser.y" function yy_r112(){ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")"; } -#line 2510 "smarty_internal_templateparser.php" -#line 425 "smarty_internal_templateparser.y" +#line 2499 "smarty_internal_templateparser.php" +#line 414 "smarty_internal_templateparser.y" function yy_r115(){if (!$this->security || isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor]) || $this->smarty->security_policy->isTrustedStaticClass($this->yystack[$this->yyidx + -2]->minor, $this->compiler)) { if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) { $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor; @@ -2523,15 +2512,15 @@ static public $yy_action = array( $this->compiler->trigger_template_error ("static class '".$this->yystack[$this->yyidx + -2]->minor."' is undefined or not allowed by security setting"); } } -#line 2522 "smarty_internal_templateparser.php" -#line 435 "smarty_internal_templateparser.y" +#line 2511 "smarty_internal_templateparser.php" +#line 424 "smarty_internal_templateparser.y" function yy_r116(){ if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).'::'.$this->yystack[$this->yyidx + 0]->minor;} else { $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].'::'.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor['var'],"'"), null, true, false)->nocache;} } -#line 2526 "smarty_internal_templateparser.php" -#line 438 "smarty_internal_templateparser.y" +#line 2515 "smarty_internal_templateparser.php" +#line 427 "smarty_internal_templateparser.y" function yy_r117(){ $this->prefix_number++; $this->compiler->prefix_code[] = ''.$this->yystack[$this->yyidx + 0]->minor.'prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '$_tmp'.$this->prefix_number; } -#line 2529 "smarty_internal_templateparser.php" -#line 448 "smarty_internal_templateparser.y" +#line 2518 "smarty_internal_templateparser.php" +#line 437 "smarty_internal_templateparser.y" function yy_r119(){if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') { $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']); $this->_retvalue = $smarty_var; @@ -2547,105 +2536,105 @@ static public $yy_action = array( $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"), null, true, false)->nocache; } } -#line 2546 "smarty_internal_templateparser.php" -#line 464 "smarty_internal_templateparser.y" +#line 2535 "smarty_internal_templateparser.php" +#line 453 "smarty_internal_templateparser.y" function yy_r120(){if (isset($this->compiler->local_var[$this->yystack[$this->yyidx + -2]->minor])) { $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor; } else { $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor; } $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; } -#line 2554 "smarty_internal_templateparser.php" -#line 473 "smarty_internal_templateparser.y" +#line 2543 "smarty_internal_templateparser.php" +#line 462 "smarty_internal_templateparser.y" function yy_r122(){$this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')'; } -#line 2557 "smarty_internal_templateparser.php" -#line 474 "smarty_internal_templateparser.y" +#line 2546 "smarty_internal_templateparser.php" +#line 463 "smarty_internal_templateparser.y" function yy_r123(){$this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')'; } -#line 2560 "smarty_internal_templateparser.php" -#line 477 "smarty_internal_templateparser.y" +#line 2549 "smarty_internal_templateparser.php" +#line 466 "smarty_internal_templateparser.y" function yy_r124(){$this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); } -#line 2563 "smarty_internal_templateparser.php" -#line 483 "smarty_internal_templateparser.y" +#line 2552 "smarty_internal_templateparser.php" +#line 472 "smarty_internal_templateparser.y" function yy_r125(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2566 "smarty_internal_templateparser.php" -#line 485 "smarty_internal_templateparser.y" +#line 2555 "smarty_internal_templateparser.php" +#line 474 "smarty_internal_templateparser.y" function yy_r126(){return; } -#line 2569 "smarty_internal_templateparser.php" -#line 489 "smarty_internal_templateparser.y" +#line 2558 "smarty_internal_templateparser.php" +#line 478 "smarty_internal_templateparser.y" function yy_r127(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor .')->value]'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + 0]->minor', null, true, false)->nocache; } -#line 2572 "smarty_internal_templateparser.php" -#line 490 "smarty_internal_templateparser.y" +#line 2561 "smarty_internal_templateparser.php" +#line 479 "smarty_internal_templateparser.y" function yy_r128(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor.']'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; } -#line 2575 "smarty_internal_templateparser.php" -#line 491 "smarty_internal_templateparser.y" +#line 2564 "smarty_internal_templateparser.php" +#line 480 "smarty_internal_templateparser.y" function yy_r129(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']"; } -#line 2578 "smarty_internal_templateparser.php" -#line 492 "smarty_internal_templateparser.y" +#line 2567 "smarty_internal_templateparser.php" +#line 481 "smarty_internal_templateparser.y" function yy_r130(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; } -#line 2581 "smarty_internal_templateparser.php" -#line 493 "smarty_internal_templateparser.y" +#line 2570 "smarty_internal_templateparser.php" +#line 482 "smarty_internal_templateparser.y" function yy_r131(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; } -#line 2584 "smarty_internal_templateparser.php" -#line 495 "smarty_internal_templateparser.y" +#line 2573 "smarty_internal_templateparser.php" +#line 484 "smarty_internal_templateparser.y" function yy_r132(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; } -#line 2587 "smarty_internal_templateparser.php" -#line 496 "smarty_internal_templateparser.y" +#line 2576 "smarty_internal_templateparser.php" +#line 485 "smarty_internal_templateparser.y" function yy_r133(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; } -#line 2590 "smarty_internal_templateparser.php" -#line 500 "smarty_internal_templateparser.y" +#line 2579 "smarty_internal_templateparser.php" +#line 489 "smarty_internal_templateparser.y" function yy_r135(){$this->_retvalue = '[]'; } -#line 2593 "smarty_internal_templateparser.php" -#line 508 "smarty_internal_templateparser.y" +#line 2582 "smarty_internal_templateparser.php" +#line 497 "smarty_internal_templateparser.y" function yy_r137(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2596 "smarty_internal_templateparser.php" -#line 510 "smarty_internal_templateparser.y" +#line 2585 "smarty_internal_templateparser.php" +#line 499 "smarty_internal_templateparser.y" function yy_r138(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; } -#line 2599 "smarty_internal_templateparser.php" -#line 512 "smarty_internal_templateparser.y" +#line 2588 "smarty_internal_templateparser.php" +#line 501 "smarty_internal_templateparser.y" function yy_r139(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2602 "smarty_internal_templateparser.php" -#line 517 "smarty_internal_templateparser.y" +#line 2591 "smarty_internal_templateparser.php" +#line 506 "smarty_internal_templateparser.y" function yy_r140(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;} else { $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor['var'],"'"), null, true, false)->nocache;} } -#line 2606 "smarty_internal_templateparser.php" -#line 520 "smarty_internal_templateparser.y" +#line 2595 "smarty_internal_templateparser.php" +#line 509 "smarty_internal_templateparser.y" function yy_r141(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; } -#line 2609 "smarty_internal_templateparser.php" -#line 522 "smarty_internal_templateparser.y" +#line 2598 "smarty_internal_templateparser.php" +#line 511 "smarty_internal_templateparser.y" function yy_r142(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2612 "smarty_internal_templateparser.php" -#line 524 "smarty_internal_templateparser.y" +#line 2601 "smarty_internal_templateparser.php" +#line 513 "smarty_internal_templateparser.y" function yy_r143(){if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '_') { $this->compiler->trigger_template_error (self::Err1); } $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2619 "smarty_internal_templateparser.php" -#line 529 "smarty_internal_templateparser.y" +#line 2608 "smarty_internal_templateparser.php" +#line 518 "smarty_internal_templateparser.y" function yy_r144(){if ($this->security) { $this->compiler->trigger_template_error (self::Err2); } $this->_retvalue = '->{$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor .')->value'.$this->yystack[$this->yyidx + 0]->minor.'}'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor,"'"), null, true, false)->nocache; } -#line 2626 "smarty_internal_templateparser.php" -#line 534 "smarty_internal_templateparser.y" +#line 2615 "smarty_internal_templateparser.php" +#line 523 "smarty_internal_templateparser.y" function yy_r145(){if ($this->security) { $this->compiler->trigger_template_error (self::Err2); } $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -#line 2633 "smarty_internal_templateparser.php" -#line 539 "smarty_internal_templateparser.y" +#line 2622 "smarty_internal_templateparser.php" +#line 528 "smarty_internal_templateparser.y" function yy_r146(){if ($this->security) { $this->compiler->trigger_template_error (self::Err2); } $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; } -#line 2640 "smarty_internal_templateparser.php" -#line 545 "smarty_internal_templateparser.y" +#line 2629 "smarty_internal_templateparser.php" +#line 534 "smarty_internal_templateparser.y" function yy_r147(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2643 "smarty_internal_templateparser.php" -#line 551 "smarty_internal_templateparser.y" +#line 2632 "smarty_internal_templateparser.php" +#line 540 "smarty_internal_templateparser.y" function yy_r148(){if (!$this->security || $this->smarty->security_policy->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) { if (strcasecmp($this->yystack[$this->yyidx + -3]->minor,'isset') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'empty') === 0 || strcasecmp($this->yystack[$this->yyidx + -3]->minor,'array') === 0 || is_callable($this->yystack[$this->yyidx + -3]->minor)) { $func_name = strtolower($this->yystack[$this->yyidx + -3]->minor); @@ -2672,115 +2661,115 @@ static public $yy_action = array( } } } -#line 2671 "smarty_internal_templateparser.php" -#line 581 "smarty_internal_templateparser.y" +#line 2660 "smarty_internal_templateparser.php" +#line 570 "smarty_internal_templateparser.y" function yy_r149(){if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) == '_') { $this->compiler->trigger_template_error (self::Err1); } $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". implode(',',$this->yystack[$this->yyidx + -1]->minor) .")"; } -#line 2678 "smarty_internal_templateparser.php" -#line 586 "smarty_internal_templateparser.y" +#line 2667 "smarty_internal_templateparser.php" +#line 575 "smarty_internal_templateparser.y" function yy_r150(){if ($this->security) { $this->compiler->trigger_template_error (self::Err2); } $this->prefix_number++; $this->compiler->prefix_code[] = 'prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = '$_tmp'.$this->prefix_number.'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')'; } -#line 2685 "smarty_internal_templateparser.php" -#line 594 "smarty_internal_templateparser.y" +#line 2674 "smarty_internal_templateparser.php" +#line 583 "smarty_internal_templateparser.y" function yy_r151(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor)); } -#line 2688 "smarty_internal_templateparser.php" -#line 603 "smarty_internal_templateparser.y" +#line 2677 "smarty_internal_templateparser.php" +#line 592 "smarty_internal_templateparser.y" function yy_r154(){$this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor))); } -#line 2691 "smarty_internal_templateparser.php" -#line 604 "smarty_internal_templateparser.y" +#line 2680 "smarty_internal_templateparser.php" +#line 593 "smarty_internal_templateparser.y" function yy_r155(){$this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)); } -#line 2694 "smarty_internal_templateparser.php" -#line 607 "smarty_internal_templateparser.y" +#line 2683 "smarty_internal_templateparser.php" +#line 596 "smarty_internal_templateparser.y" function yy_r157(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -#line 2697 "smarty_internal_templateparser.php" -#line 612 "smarty_internal_templateparser.y" +#line 2686 "smarty_internal_templateparser.php" +#line 601 "smarty_internal_templateparser.y" function yy_r158(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); } -#line 2700 "smarty_internal_templateparser.php" -#line 614 "smarty_internal_templateparser.y" +#line 2689 "smarty_internal_templateparser.php" +#line 603 "smarty_internal_templateparser.y" function yy_r159(){$this->_retvalue = array(); } -#line 2703 "smarty_internal_templateparser.php" -#line 616 "smarty_internal_templateparser.y" +#line 2692 "smarty_internal_templateparser.php" +#line 605 "smarty_internal_templateparser.y" function yy_r160(){$this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); } -#line 2706 "smarty_internal_templateparser.php" -#line 626 "smarty_internal_templateparser.y" +#line 2695 "smarty_internal_templateparser.php" +#line 615 "smarty_internal_templateparser.y" function yy_r165(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2709 "smarty_internal_templateparser.php" -#line 628 "smarty_internal_templateparser.y" +#line 2698 "smarty_internal_templateparser.php" +#line 617 "smarty_internal_templateparser.y" function yy_r166(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; } -#line 2712 "smarty_internal_templateparser.php" -#line 637 "smarty_internal_templateparser.y" +#line 2701 "smarty_internal_templateparser.php" +#line 626 "smarty_internal_templateparser.y" function yy_r167(){$this->_retvalue = '=='; } -#line 2715 "smarty_internal_templateparser.php" -#line 638 "smarty_internal_templateparser.y" +#line 2704 "smarty_internal_templateparser.php" +#line 627 "smarty_internal_templateparser.y" function yy_r168(){$this->_retvalue = '!='; } -#line 2718 "smarty_internal_templateparser.php" -#line 639 "smarty_internal_templateparser.y" +#line 2707 "smarty_internal_templateparser.php" +#line 628 "smarty_internal_templateparser.y" function yy_r169(){$this->_retvalue = '>'; } -#line 2721 "smarty_internal_templateparser.php" -#line 640 "smarty_internal_templateparser.y" +#line 2710 "smarty_internal_templateparser.php" +#line 629 "smarty_internal_templateparser.y" function yy_r170(){$this->_retvalue = '<'; } -#line 2724 "smarty_internal_templateparser.php" -#line 641 "smarty_internal_templateparser.y" +#line 2713 "smarty_internal_templateparser.php" +#line 630 "smarty_internal_templateparser.y" function yy_r171(){$this->_retvalue = '>='; } -#line 2727 "smarty_internal_templateparser.php" -#line 642 "smarty_internal_templateparser.y" +#line 2716 "smarty_internal_templateparser.php" +#line 631 "smarty_internal_templateparser.y" function yy_r172(){$this->_retvalue = '<='; } -#line 2730 "smarty_internal_templateparser.php" -#line 643 "smarty_internal_templateparser.y" +#line 2719 "smarty_internal_templateparser.php" +#line 632 "smarty_internal_templateparser.y" function yy_r173(){$this->_retvalue = '==='; } -#line 2733 "smarty_internal_templateparser.php" -#line 644 "smarty_internal_templateparser.y" +#line 2722 "smarty_internal_templateparser.php" +#line 633 "smarty_internal_templateparser.y" function yy_r174(){$this->_retvalue = '!=='; } -#line 2736 "smarty_internal_templateparser.php" -#line 645 "smarty_internal_templateparser.y" +#line 2725 "smarty_internal_templateparser.php" +#line 634 "smarty_internal_templateparser.y" function yy_r175(){$this->_retvalue = '%'; } -#line 2739 "smarty_internal_templateparser.php" -#line 647 "smarty_internal_templateparser.y" +#line 2728 "smarty_internal_templateparser.php" +#line 636 "smarty_internal_templateparser.y" function yy_r176(){$this->_retvalue = '&&'; } -#line 2742 "smarty_internal_templateparser.php" -#line 648 "smarty_internal_templateparser.y" +#line 2731 "smarty_internal_templateparser.php" +#line 637 "smarty_internal_templateparser.y" function yy_r177(){$this->_retvalue = '||'; } -#line 2745 "smarty_internal_templateparser.php" -#line 649 "smarty_internal_templateparser.y" +#line 2734 "smarty_internal_templateparser.php" +#line 638 "smarty_internal_templateparser.y" function yy_r178(){$this->_retvalue = ' XOR '; } -#line 2748 "smarty_internal_templateparser.php" -#line 654 "smarty_internal_templateparser.y" +#line 2737 "smarty_internal_templateparser.php" +#line 643 "smarty_internal_templateparser.y" function yy_r179(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; } -#line 2751 "smarty_internal_templateparser.php" -#line 656 "smarty_internal_templateparser.y" +#line 2740 "smarty_internal_templateparser.php" +#line 645 "smarty_internal_templateparser.y" function yy_r181(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; } -#line 2754 "smarty_internal_templateparser.php" -#line 657 "smarty_internal_templateparser.y" +#line 2743 "smarty_internal_templateparser.php" +#line 646 "smarty_internal_templateparser.y" function yy_r182(){ return; } -#line 2757 "smarty_internal_templateparser.php" -#line 658 "smarty_internal_templateparser.y" +#line 2746 "smarty_internal_templateparser.php" +#line 647 "smarty_internal_templateparser.y" function yy_r183(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2760 "smarty_internal_templateparser.php" -#line 659 "smarty_internal_templateparser.y" +#line 2749 "smarty_internal_templateparser.php" +#line 648 "smarty_internal_templateparser.y" function yy_r184(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; } -#line 2763 "smarty_internal_templateparser.php" -#line 666 "smarty_internal_templateparser.y" +#line 2752 "smarty_internal_templateparser.php" +#line 655 "smarty_internal_templateparser.y" function yy_r186(){ $this->_retvalue = "''"; } -#line 2766 "smarty_internal_templateparser.php" -#line 667 "smarty_internal_templateparser.y" +#line 2755 "smarty_internal_templateparser.php" +#line 656 "smarty_internal_templateparser.y" function yy_r187(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php(); } -#line 2769 "smarty_internal_templateparser.php" -#line 669 "smarty_internal_templateparser.y" +#line 2758 "smarty_internal_templateparser.php" +#line 658 "smarty_internal_templateparser.y" function yy_r188(){ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; } -#line 2772 "smarty_internal_templateparser.php" -#line 670 "smarty_internal_templateparser.y" +#line 2761 "smarty_internal_templateparser.php" +#line 659 "smarty_internal_templateparser.y" function yy_r189(){ $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor); } -#line 2775 "smarty_internal_templateparser.php" -#line 672 "smarty_internal_templateparser.y" +#line 2764 "smarty_internal_templateparser.php" +#line 661 "smarty_internal_templateparser.y" function yy_r190(){ $this->_retvalue = new _smarty_code($this, $this->yystack[$this->yyidx + -1]->minor); } -#line 2778 "smarty_internal_templateparser.php" -#line 674 "smarty_internal_templateparser.y" +#line 2767 "smarty_internal_templateparser.php" +#line 663 "smarty_internal_templateparser.y" function yy_r192(){if (isset($this->compiler->local_var["'".substr($this->yystack[$this->yyidx + 0]->minor,1)."'"])) { $this->_retvalue = new _smarty_code($this, '$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value'); } else { @@ -2788,21 +2777,21 @@ static public $yy_action = array( } $this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor,"'"), null, true, false)->nocache; } -#line 2787 "smarty_internal_templateparser.php" -#line 682 "smarty_internal_templateparser.y" +#line 2776 "smarty_internal_templateparser.php" +#line 671 "smarty_internal_templateparser.y" function yy_r194(){ $this->_retvalue = new _smarty_code($this, '('.$this->yystack[$this->yyidx + -1]->minor.')'); } -#line 2790 "smarty_internal_templateparser.php" -#line 683 "smarty_internal_templateparser.y" +#line 2779 "smarty_internal_templateparser.php" +#line 672 "smarty_internal_templateparser.y" function yy_r195(){ $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor); } -#line 2795 "smarty_internal_templateparser.php" -#line 686 "smarty_internal_templateparser.y" +#line 2784 "smarty_internal_templateparser.php" +#line 675 "smarty_internal_templateparser.y" function yy_r196(){ $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor); } -#line 2798 "smarty_internal_templateparser.php" -#line 693 "smarty_internal_templateparser.y" +#line 2787 "smarty_internal_templateparser.php" +#line 682 "smarty_internal_templateparser.y" function yy_r198(){$this->_retvalue = ''; } -#line 2801 "smarty_internal_templateparser.php" +#line 2790 "smarty_internal_templateparser.php" private $_retvalue; @@ -2859,12 +2848,12 @@ static public $yy_action = array( function yy_syntax_error($yymajor, $TOKEN) { -#line 77 "smarty_internal_templateparser.y" +#line 66 "smarty_internal_templateparser.y" $this->internalError = true; $this->yymajor = $yymajor; $this->compiler->trigger_template_error(); -#line 2864 "smarty_internal_templateparser.php" +#line 2853 "smarty_internal_templateparser.php" } function yy_accept() @@ -2875,13 +2864,13 @@ static public $yy_action = array( while ($this->yyidx >= 0) { $stack = $this->yy_pop_parser_stack(); } -#line 69 "smarty_internal_templateparser.y" +#line 58 "smarty_internal_templateparser.y" $this->successful = !$this->internalError; $this->internalError = false; $this->retvalue = $this->_retvalue; //echo $this->retvalue."\n\n"; -#line 2882 "smarty_internal_templateparser.php" +#line 2871 "smarty_internal_templateparser.php" } function doParse($yymajor, $yytokenvalue) diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_utility.php b/gosa-core/include/smarty/sysplugins/smarty_internal_utility.php index 3c64e58ac..b532e4a1e 100644 --- a/gosa-core/include/smarty/sysplugins/smarty_internal_utility.php +++ b/gosa-core/include/smarty/sysplugins/smarty_internal_utility.php @@ -78,7 +78,7 @@ class Smarty_Internal_Utility { flush(); $_start_time = microtime(true); try { - $_tpl = $this->smarty->createTemplate($_template_file); + $_tpl = $this->smarty->createTemplate($_template_file,null,null,null,false); if ($_tpl->mustCompile()) { $_tpl->compileTemplateSource(); echo ' compiled in ', microtime(true) - $_start_time, ' seconds'; @@ -86,12 +86,16 @@ class Smarty_Internal_Utility { } else { echo ' is up to date'; flush(); - } - } + } + } catch (Exception $e) { echo 'Error: ', $e->getMessage(), "

"; $_error_count++; } + // free memory + $this->smarty->template_objects = array(); + $_tpl->smarty->template_objects = array(); + $_tpl = null; if ($max_errors !== null && $_error_count == $max_errors) { echo '

too many errors'; exit(); -- 2.30.2