Remove ParserOptions::setSkin() (deprecated since 1.19)
[lhc/web/wiklou.git] / includes / parser / Preprocessor_DOM.php
index dbbeddb..f5fc3ec 100644 (file)
@@ -984,6 +984,7 @@ class PPFrame_DOM implements PPFrame {
        var $depth;
 
        private $volatile = false;
+       private $ttl = null;
 
        /**
         * @var array
@@ -1233,13 +1234,29 @@ class PPFrame_DOM implements PPFrame {
                                        $attrs = $xpath->query( 'attr', $contextNode );
                                        $inners = $xpath->query( 'inner', $contextNode );
                                        $closes = $xpath->query( 'close', $contextNode );
-                                       $params = array(
-                                               'name' => new PPNode_DOM( $names->item( 0 ) ),
-                                               'attr' => $attrs->length > 0 ? new PPNode_DOM( $attrs->item( 0 ) ) : null,
-                                               'inner' => $inners->length > 0 ? new PPNode_DOM( $inners->item( 0 ) ) : null,
-                                               'close' => $closes->length > 0 ? new PPNode_DOM( $closes->item( 0 ) ) : null,
-                                       );
-                                       $out .= $this->parser->extensionSubstitution( $params, $this );
+                                       if ( $flags & PPFrame::NO_TAGS ) {
+                                               $s = '<' . $this->expand( $names->item( 0 ), $flags );
+                                               if ( $attrs->length > 0 ) {
+                                                       $s .= $this->expand( $attrs->item( 0 ), $flags );
+                                               }
+                                               if ( $inners->length > 0 ) {
+                                                       $s .= '>' . $this->expand( $inners->item( 0 ), $flags );
+                                                       if ( $closes->length > 0 ) {
+                                                               $s .= $this->expand( $closes->item( 0 ), $flags );
+                                                       }
+                                               } else {
+                                                       $s .= '/>';
+                                               }
+                                               $out .= $s;
+                                       } else {
+                                               $params = array(
+                                                       'name' => new PPNode_DOM( $names->item( 0 ) ),
+                                                       'attr' => $attrs->length > 0 ? new PPNode_DOM( $attrs->item( 0 ) ) : null,
+                                                       'inner' => $inners->length > 0 ? new PPNode_DOM( $inners->item( 0 ) ) : null,
+                                                       'close' => $closes->length > 0 ? new PPNode_DOM( $closes->item( 0 ) ) : null,
+                                               );
+                                               $out .= $this->parser->extensionSubstitution( $params, $this );
+                                       }
                                } elseif ( $contextNode->nodeName == 'h' ) {
                                        # Heading
                                        $s = $this->expand( $contextNode->childNodes, $flags );
@@ -1505,6 +1522,26 @@ class PPFrame_DOM implements PPFrame {
        function isVolatile() {
                return $this->volatile;
        }
+
+       /**
+        * Set the TTL
+        *
+        * @param int $ttl
+        */
+       function setTTL( $ttl ) {
+               if ( $ttl !== null && ( $this->ttl === null || $ttl < $this->ttl ) ) {
+                       $this->ttl = $ttl;
+               }
+       }
+
+       /**
+        * Get the TTL
+        *
+        * @return int|null
+        */
+       function getTTL() {
+               return $this->ttl;
+       }
 }
 
 /**
@@ -1664,6 +1701,11 @@ class PPTemplateFrame_DOM extends PPFrame_DOM {
                parent::setVolatile( $flag );
                $this->parent->setVolatile( $flag );
        }
+
+       function setTTL( $ttl ) {
+               parent::setTTL( $ttl );
+               $this->parent->setTTL( $ttl );
+       }
 }
 
 /**