Index: trunk/core/kernel/processors/tag_processor.php =================================================================== diff -u -N -r6093 -r6583 --- trunk/core/kernel/processors/tag_processor.php (.../tag_processor.php) (revision 6093) +++ trunk/core/kernel/processors/tag_processor.php (.../tag_processor.php) (revision 6583) @@ -49,27 +49,39 @@ $this->Application->Debugger->appendHTML('Processing PreParsed Tag '.$Method.' in '.$this->Prefix); } + $backup_prefix = $this->Prefix; + $backup_special = $this->Special; + + // process all possible flags: begin + $flags = Array('js_escape', 'result_to_var', 'pass_params'); + $flag_values = Array(); + + foreach ($flags as $flag_name) { + $flag_values[$flag_name] = false; + if (isset($params[$flag_name])) { + $flag_values[$flag_name] = $params[$flag_name]; + unset($params[$flag_name]); + } + } + // process all possible flags: end + // pass_params for non ParseBlock tags :) - if (isset($params['pass_params']) && $params['pass_params']) { + if ($flag_values['pass_params']) { $params = array_merge_recursive2($this->Application->Parser->Params, $params); - unset($params['pass_params']); } - $backup_prefix = $this->Prefix; - $backup_special = $this->Special; - $ret = $this->$Method($params); $this->Prefix = $backup_prefix; $this->Special = $backup_special; - if (isset($params['js_escape']) && $params['js_escape']) { + if ($flag_values['js_escape']) { $ret = str_replace('\'', ''', $ret); $ret = addslashes($ret); $ret = str_replace(Array("\r", "\n"), Array('\r', '\n'), $ret); } - if (isset($params['result_to_var'])) { - $this->Application->Parser->SetParam($params['result_to_var'], $ret); + if ($flag_values['result_to_var']) { + $this->Application->Parser->SetParam($flag_values['result_to_var'], $ret); $ret = ''; } return $ret;