Index: branches/unlabeled/unlabeled-1.11.2/core/kernel/processors/tag_processor.php =================================================================== diff -u -r5858 -r5882 --- branches/unlabeled/unlabeled-1.11.2/core/kernel/processors/tag_processor.php (.../tag_processor.php) (revision 5858) +++ branches/unlabeled/unlabeled-1.11.2/core/kernel/processors/tag_processor.php (.../tag_processor.php) (revision 5882) @@ -1,7 +1,7 @@ ProcessParsedTag($tag->Tag, $tag->NP, $tag->getPrefixSpecial()); - + /*$Method=$tag->Tag; if(method_exists($this, $Method)) { //echo htmlspecialchars($tag->GetFullTag()).'
'; return $this->$Method($tag->NP); } - else + else { if ($this->Application->hasObject('TagsAggregator')) { $aggregator =& $this->Application->recallObject('TagsAggregator'); $tag_mapping = $aggregator->GetArrayValue($tag->Prefix, $Method); if ($tag_mapping) { - + $mapped_tag =& new Tag('', $this->Application->Parser); $mapped_tag->CopyFrom($tag); $mapped_tag->Processor = $tag_mapping[0]; $mapped_tag->Tag = $tag_mapping[1]; $mapped_tag->NP['PrefixSpecial'] = $tag->getPrefixSpecial(); $mapped_tag->RebuildTagData(); return $mapped_tag->DoProcessTag(); - } + } } trigger_error('Tag '.$Method.' Undefined in '.get_class($this).'[Agregated Tag]:
'.$tag->RebuildTagData().'',E_USER_WARNING); return false; }*/ } - + function ProcessParsedTag($tag, $params, $prefix) { $Method = $tag; @@ -48,26 +48,30 @@ if ($this->Application->isDebugMode() && constOn('DBG_SHOW_TAGS')) { $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; - + $ret = $this->$Method($params); - + $this->Prefix = $backup_prefix; $this->Special = $backup_special; - + if (isset($params['js_escape']) && $params['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); + $ret = ''; + } return $ret; } else @@ -83,16 +87,21 @@ $processor->Prefix = $tmp['prefix']; $processor->Special = getArrayValue($tag_mapping, 2) ? $tag_mapping[2] : $tmp['special']; $params['PrefixSpecial'] = $prefix; - return $processor->ProcessParsedTag($tag_mapping[1], $params, $prefix); + $ret = $processor->ProcessParsedTag($tag_mapping[1], $params, $prefix); + if (isset($params['result_to_var'])) { + $this->Application->Parser->SetParam($params['result_to_var'], $ret); + $ret = ''; + } + return $ret; } trigger_error('Tag '.$Method.' Undefined in '.get_class($this).'[Agregated Tag]:
'.$tag.'', E_USER_WARNING); } trigger_error('Tag Undefined:
'.$prefix.':'.$tag.'',E_USER_WARNING); return false; } } - - + + /** * Not tag, method for parameter * selection from list in this TagProcessor @@ -106,7 +115,7 @@ { if (!is_array($params)) return; if (!is_array($possible_names)) - + $possible_names = explode(',', $possible_names); foreach ($possible_names as $name) { @@ -121,13 +130,13 @@ var $Application; var $Prefixes = Array(); var $S; - + function ProcessorsPool() { $this->Application =& KernelApplication::Instance(); $this->S =& $this->Application->Session; } - + function RegisterPrefix($prefix, $path, $class) { // echo " RegisterPrefix $prefix, $path, $class
"; @@ -137,7 +146,7 @@ ); $this->Prefixes[$prefix] = $prefix_item; } - + function CreateProcessor($prefix, &$tag) { // echo " prefix : $prefix
"; @@ -148,12 +157,12 @@ $a_processor =& new $ClassName($prefix); $this->SetProcessor($prefix, $a_processor); } - + function SetProcessor($prefix, &$a_processor) { $this->Processors[$prefix] =& $a_processor; } - + function &GetProcessor($prefix, &$tag) { if (!isset($this->Processors[$prefix]))