Index: trunk/core/kernel/parser/tags.php =================================================================== diff -u -N -r4330 -r5219 --- trunk/core/kernel/parser/tags.php (.../tags.php) (revision 4330) +++ trunk/core/kernel/parser/tags.php (.../tags.php) (revision 5219) @@ -14,7 +14,7 @@ } function &GetTag($tag_data, &$parser, $inp_tag = 0) - { + { if (!isset($this->_Tag)) { $this->_Tag =& new Tag($tag_data, $parser, $inp_tag); } @@ -150,6 +150,7 @@ function ParseTagData($tag_data) { if (defined('EXPERIMENTAL_PRE_PARSE') ) { + $this->OriginalTagData = $tag_data; $tag_data = $this->PreParseReplaceParams($tag_data) . ' '; } else { @@ -291,7 +292,13 @@ function GetCode($echo=false) { - $pass_params = $this->NP; + $tmp_params = $this->NamedParams; + $splited = split("[ \t\n]{1}", $this->OriginalTagData, 2); + if (isset($splited[1]) && $splited[1]) { + $this->ParseNamedParams($splited[1]); + } + $pass_params = $this->NamedParams; + $this->NamedParams = $tmp_params; $code = Array(); @@ -346,13 +353,13 @@ case 'endif': $code[] = ' }'; return $code; - + case 'else': $code[] = ' }'; $code[] = ' else {'; return $code; } - + $code[] = '$tmp = $application->processPrefix("'.$this->getPrefixSpecial().'");'."\n"; $code[] = '$__tp = $tmp[\'prefix\'].\'_TagProcessor\';'."\n"; $code[] = '$p =& $application->recallObject($__tp);'."\n";