Index: trunk/core/kernel/parser/construct_tags.php =================================================================== diff -u -r1560 -r2566 --- trunk/core/kernel/parser/construct_tags.php (.../construct_tags.php) (revision 1560) +++ trunk/core/kernel/parser/construct_tags.php (.../construct_tags.php) (revision 2566) @@ -142,7 +142,9 @@ } else { if (defined('EXPERIMENTAL_PRE_PARSE')) { - $this->Parser->AppendCode($tag->GetCode()); + if ($tag->Tag != 'block' && $tag->Tag != 'DefineElement') { + $this->Parser->AppendCode($tag->GetCode()); + } // $this->Parser->AppendCompiledCode( $tag->GetCode() ); } } @@ -205,6 +207,15 @@ array_unshift($code, '$o = \'\';'); array_unshift($code, '$application =& kApplication::Instance();'); array_unshift($code, 'extract($params);'); + + $defaults = '$defaults = Array('; + foreach ($this->NP as $name => $val) { + if ($name == 'name') continue; + $defaults .= '"'.$name.'" => "'.str_replace('"', '\"', $val).'",'; + } + $defaults .= ');'; + array_unshift($code, '$params = array_merge_recursive2($defaults, $params);'); + array_unshift($code, $defaults); $code[] = 'return $o;'; @@ -241,7 +252,7 @@ else { // append the tag itself to the block - while in block, we check every tag to be 'blockend' // if it is not - we need to append the tag to the buffer, which we'll parse later in 'parse_block' - if ($tag->Tag != 'block') { + //if ($tag->Tag != 'block') { if (defined('EXPERIMENTAL_PRE_PARSE') && isset($this->Application->PreParsedBlocks[$this->BlockName])) { return; } @@ -251,7 +262,7 @@ else { $this->Parser->AppendOutput($tag->GetFullTag()); } - } + //} return false; } }