Index: branches/unlabeled/unlabeled-1.12.8/core/kernel/processors/tag_processor.php =================================================================== diff -u -r6100 -r6564 --- branches/unlabeled/unlabeled-1.12.8/core/kernel/processors/tag_processor.php (.../tag_processor.php) (revision 6100) +++ branches/unlabeled/unlabeled-1.12.8/core/kernel/processors/tag_processor.php (.../tag_processor.php) (revision 6564) @@ -49,26 +49,38 @@ $this->Application->Debugger->appendHTML('Processing PreParsed Tag '.$Method.' in '.$this->Prefix); } - // pass_params for non ParseBlock tags :) - if (isset($params['pass_params']) && $params['pass_params']) { - $params = array_merge_recursive2($this->Application->Parser->Params, $params); - unset($params['pass_params']); - } - $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 ($flag_values['pass_params']) { + $params = array_merge_recursive2($this->Application->Parser->Params, $params); + } + $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'])) { + if ($flag_values['result_to_var']) { $this->Application->Parser->SetParam($params['result_to_var'], $ret); $ret = ''; }