Merge "Misc fixes in RevisionDelete.php."
[lhc/web/wiklou.git] / includes / parser / Preprocessor_DOM.php
index 74a7164..f991df2 100644 (file)
@@ -56,7 +56,7 @@ class Preprocessor_DOM implements Preprocessor {
        }
 
        /**
-        * @param $args
+        * @param $args array
         * @return PPCustomFrame_DOM
         */
        function newCustomFrame( $args ) {
@@ -926,7 +926,7 @@ class PPFrame_DOM implements PPFrame {
         *
         * @return PPTemplateFrame_DOM
         */
-       function newChild( $args = false, $title = false ) {
+       function newChild( $args = false, $title = false, $indexOffset = 0 ) {
                $namedArgs = array();
                $numberedArgs = array();
                if ( $title === false ) {
@@ -938,6 +938,9 @@ class PPFrame_DOM implements PPFrame {
                                $args = $args->node;
                        }
                        foreach ( $args as $arg ) {
+                               if ( $arg instanceof PPNode ) {
+                                       $arg = $arg->node;
+                               }
                                if ( !$xpath ) {
                                        $xpath = new DOMXPath( $arg->ownerDocument );
                                }
@@ -947,6 +950,7 @@ class PPFrame_DOM implements PPFrame {
                                if ( $nameNodes->item( 0 )->hasAttributes() ) {
                                        // Numbered parameter
                                        $index = $nameNodes->item( 0 )->attributes->getNamedItem( 'index' )->textContent;
+                                       $index = $index - $indexOffset;
                                        $numberedArgs[$index] = $value->item( 0 );
                                        unset( $namedArgs[$index] );
                                } else {
@@ -989,6 +993,9 @@ class PPFrame_DOM implements PPFrame {
                }
                wfProfileIn( __METHOD__ );
                ++$expansionDepth;
+               if ( $expansionDepth > $this->parser->mHighestExpansionDepth ) {
+                       $this->parser->mHighestExpansionDepth = $expansionDepth;
+               }
 
                if ( $root instanceof PPNode_DOM ) {
                        $root = $root->node;
@@ -1546,6 +1553,10 @@ class PPCustomFrame_DOM extends PPFrame_DOM {
                }
                return $this->args[$index];
        }
+
+       function getArguments() {
+               return $this->args;
+       }
 }
 
 /**