Index: branches/5.2.x/core/kernel/nparser/ntags.php =================================================================== --- branches/5.2.x/core/kernel/nparser/ntags.php +++ branches/5.2.x/core/kernel/nparser/ntags.php @@ -404,42 +404,47 @@ { $o = parent::Open($tag); - if ($o === false) { + if ( $o === false ) { // some required params not passed return $o; } + $param_name = $tag['NP']['name']; $capture_params = $tag['NP']; - $capture_params['name'] = '__capture_' . $tag['NP']['name']; + $capture_params['name'] = '__capture_' . $param_name; $capture_to_pass = $this->Parser->CompileParamsArray($capture_params); - $code[] = "if (isset(\$_parser->Captures['{$tag['NP']['name']}'])) {"; - $code[] = "\${$tag['NP']['name']} = \$_parser->ParseBlock($capture_to_pass);"; + $code[] = "if (isset(\$_parser->Captures['{$param_name}'])) {"; + $code[] = "\t\${$param_name} = \$_parser->ParseBlock($capture_to_pass);"; + $code[] = "\t\$params['{$param_name}'] = \${$param_name};"; + $code[] = "\t\$tmp_{$param_name} = \${$param_name};"; $code[] = "}"; $code[] = "else {"; + $to_pass = $this->Parser->CompileParamsArray($tag['NP']); - $code[] = '$_p_ =& $_parser->GetProcessor(\'m\');'; - $code[] = '$_tag_params = ' . $to_pass . ';'; - $code[] = "\${$tag['NP']['name']} = \$_p_->PostProcess(\${$tag['NP']['name']}, \$_p_->PreparePostProcess(\$_tag_params));"; + $code[] = "\t" . '$_p_ =& $_parser->GetProcessor(\'m\');'; + $code[] = "\t" . '$_tag_params = ' . $to_pass . ';'; + $code[] = "\t\$tmp_{$param_name} = \$_p_->PostProcess(\${$param_name}, \$_p_->PreparePostProcess(\$_tag_params));"; $code[] = "}"; - if (array_key_exists('result_to_var', $tag['NP']) && $tag['NP']['result_to_var']) { - $code[] = "\$params['{$tag['NP']['result_to_var']}'] = \$_parser->GetParam('{$tag['NP']['result_to_var']}');"; + if ( array_key_exists('result_to_var', $tag['NP']) && $tag['NP']['result_to_var'] ) { + $result_to_var = $tag['NP']['result_to_var']; + $code[] = "\${$result_to_var} = \$_parser->GetParam('{$result_to_var}');"; - if (array_key_exists('plus', $tag['NP'])) { - $code[] = "\$params['{$tag['NP']['result_to_var']}'] += {$tag['NP']['plus']};"; + if ( array_key_exists('plus', $tag['NP']) ) { + $code[] = "\${$result_to_var} += {$tag['NP']['plus']};"; } - $code[] = "\${$tag['NP']['result_to_var']} = \$params['{$tag['NP']['result_to_var']}'];"; + $code[] = "\$params['{$result_to_var}'] = \${$result_to_var};"; } - elseif (array_key_exists('plus', $tag['NP'])) { - $code[] = "\${$tag['NP']['name']} += {$tag['NP']['plus']};"; + elseif ( array_key_exists('plus', $tag['NP']) ) { + $code[] = "\$tmp_{$param_name} += {$tag['NP']['plus']};"; } - $code[] = "\$params['{$tag['NP']['name']}'] = \${$tag['NP']['name']};"; - $code[] = "echo (\${$tag['NP']['name']});"; + $code[] = "echo (\$tmp_{$param_name});"; $this->AppendCode($o, $code); + return $o; } }