(bug 13603) Added siprop=usergroups to meta=siteinfo. Patch by Mormegil
[lhc/web/wiklou.git] / includes / Parser_OldPP.php
index c48ed3b..7462397 100644 (file)
@@ -30,6 +30,13 @@ class Parser_OldPP
        const COLON_STATE_COMMENTDASH = 6;
        const COLON_STATE_COMMENTDASHDASH = 7;
 
+       // Allowed values for $this->mOutputType
+       // Parameter to startExternalParse().
+       const OT_HTML = 1;
+       const OT_WIKI = 2;
+       const OT_PREPROCESS = 3;
+       const OT_MSG = 4;
+
        /**#@+
         * @private
         */
@@ -81,6 +88,7 @@ class Parser_OldPP
                if ( !$this->mFirstCall ) {
                        return;
                }
+               $this->mFirstCall = false;
                
                wfProfileIn( __METHOD__ );
                global $wgAllowDisplayTitle, $wgAllowSlowParserFunctions;
@@ -128,7 +136,8 @@ class Parser_OldPP
                }
 
                $this->initialiseVariables();
-               $this->mFirstCall = false;
+
+               wfRunHooks( 'ParserFirstCallInit', array( &$this ) );
                wfProfileOut( __METHOD__ );
        }
 
@@ -193,10 +202,10 @@ class Parser_OldPP
                $this->mOutputType = $ot;
                // Shortcut alias
                $this->ot = array(
-                       'html' => $ot == OT_HTML,
-                       'wiki' => $ot == OT_WIKI,
-                       'msg' => $ot == OT_MSG,
-                       'pre' => $ot == OT_PREPROCESS,
+                       'html' => $ot == self::OT_HTML,
+                       'wiki' => $ot == self::OT_WIKI,
+                       'msg' => $ot == self::OT_MSG,
+                       'pre' => $ot == self::OT_PREPROCESS,
                );
        }
 
@@ -244,7 +253,7 @@ class Parser_OldPP
                        $this->mRevisionId = $revid;
                        $this->mRevisionTimestamp = null;
                }
-               $this->setOutputType( OT_HTML );
+               $this->setOutputType( self::OT_HTML );
                wfRunHooks( 'ParserBeforeStrip', array( &$this, &$text, &$this->mStripState ) );
                $text = $this->strip( $text, $this->mStripState );
                wfRunHooks( 'ParserAfterStrip', array( &$this, &$text, &$this->mStripState ) );
@@ -370,7 +379,7 @@ class Parser_OldPP
        function preprocess( $text, $title, $options, $revid = null ) {
                wfProfileIn( __METHOD__ );
                $this->clearState();
-               $this->setOutputType( OT_PREPROCESS );
+               $this->setOutputType( self::OT_PREPROCESS );
                $this->mOptions = $options;
                $this->mTitle = $title;
                if( $revid !== null ) {
@@ -506,7 +515,7 @@ class Parser_OldPP
        function strip( $text, $state, $stripcomments = false , $dontstrip = array () ) {
                global $wgContLang;
                wfProfileIn( __METHOD__ );
-               $render = ($this->mOutputType == OT_HTML);
+               $render = ($this->mOutputType == self::OT_HTML);
 
                $uniq_prefix = $this->mUniqPrefix;
                $commentState = new ReplacementArray;
@@ -2137,7 +2146,7 @@ class Parser_OldPP
                                                $inBlockElem = true;
                                        }
                                } else if ( !$inBlockElem && !$this->mInPre ) {
-                                       if ( ' ' == $t{0} and ( $this->mLastSection == 'pre' or trim($t) != '' ) ) {
+                                       if ( '' != $t and ' ' == $t{0} and ( $this->mLastSection == 'pre' or trim($t) != '' ) ) {
                                                // pre
                                                if ($this->mLastSection != 'pre') {
                                                        $paragraphStack = false;
@@ -2756,9 +2765,9 @@ class Parser_OldPP
         * taking care to avoid infinite loops.
         *
         * Note that the substitution depends on value of $mOutputType:
-        *  OT_WIKI: only {{subst:}} templates
-        *  OT_MSG: only magic variables
-        *  OT_HTML: all templates and magic variables
+        *  self::OT_WIKI: only {{subst:}} templates
+        *  self::OT_MSG: only magic variables
+        *  self::OT_HTML: all templates and magic variables
         *
         * @param string $tex The text to transform
         * @param array $args Key-value pairs representing template parameters to substitute
@@ -2781,7 +2790,7 @@ class Parser_OldPP
                if ( !$argsOnly ) {
                        $braceCallbacks[2] = array( &$this, 'braceSubstitution' );
                }
-               if ( $this->mOutputType != OT_MSG ) {
+               if ( $this->mOutputType != self::OT_MSG ) {
                        $braceCallbacks[3] = array( &$this, 'argSubstitution' );
                }
                if ( $braceCallbacks ) {
@@ -2817,7 +2826,7 @@ class Parser_OldPP
                $varname = $wgContLang->lc($matches[1]);
                wfProfileIn( $fname );
                $skip = false;
-               if ( $this->mOutputType == OT_WIKI ) {
+               if ( $this->mOutputType == self::OT_WIKI ) {
                        # Do only magic variables prefixed by SUBST
                        $mwSubst =& MagicWord::get( 'subst' );
                        if (!$mwSubst->matchStartAndRemove( $varname ))
@@ -3378,7 +3387,7 @@ class Parser_OldPP
 
                if ( array_key_exists( $arg, $inputArgs ) ) {
                        $text = $inputArgs[$arg];
-               } else if (($this->mOutputType == OT_HTML || $this->mOutputType == OT_PREPROCESS ) &&
+               } else if (($this->mOutputType == self::OT_HTML || $this->mOutputType == self::OT_PREPROCESS ) &&
                null != $matches['parts'] && count($matches['parts']) > 0) {
                        $text = $matches['parts'][0];
                }
@@ -3734,7 +3743,7 @@ class Parser_OldPP
        function preSaveTransform( $text, &$title, $user, $options, $clearState = true ) {
                $this->mOptions = $options;
                $this->mTitle =& $title;
-               $this->setOutputType( OT_WIKI );
+               $this->setOutputType( self::OT_WIKI );
 
                if ( $clearState ) {
                        $this->clearState();
@@ -3829,7 +3838,7 @@ class Parser_OldPP
         */
        function getUserSig( &$user ) {
                global $wgMaxSigChars;
-               
+
                $username = $user->getName();
                $nickname = $user->getOption( 'nickname' );
                $nickname = $nickname === '' ? $username : $nickname;
@@ -3884,7 +3893,7 @@ class Parser_OldPP
         */
        function cleanSig( $text, $parsing = false ) {
                global $wgTitle;
-               $this->startExternalParse( $wgTitle, new ParserOptions(), $parsing ? OT_WIKI : OT_MSG );
+               $this->startExternalParse( $this->mTitle, new ParserOptions(), $parsing ? self::OT_WIKI : self::OT_MSG );
 
                $substWord = MagicWord::get( 'subst' );
                $substRegex = '/\{\{(?!(?:' . $substWord->getBaseRegex() . '))/x' . $substWord->getRegexCase();
@@ -3950,7 +3959,7 @@ class Parser_OldPP
                        $this->mTitle = Title::newFromText('msg');
                }
                $this->mOptions = $options;
-               $this->setOutputType( OT_MSG );
+               $this->setOutputType( self::OT_MSG );
                $this->clearState();
                $text = $this->replaceVariables( $text );
 
@@ -4147,7 +4156,7 @@ class Parser_OldPP
                                        $colours[$pdbk] = ( $threshold == 0 || (
                                                                $s->page_len >= $threshold || # always true if $threshold <= 0
                                                                $s->page_is_redirect ||
-                                                               !Namespace::isContent( $s->page_namespace ) )
+                                                               !MWNamespace::isContent( $s->page_namespace ) )
                                                            ? 1 : 2 );
                                }
                        }
@@ -4689,7 +4698,7 @@ class Parser_OldPP
                $oldOutputType = $this->mOutputType;
                $oldOptions = $this->mOptions;
                $this->mOptions = new ParserOptions();
-               $this->setOutputType( OT_WIKI );
+               $this->setOutputType( self::OT_WIKI );
 
                $striptext = $this->strip( $text, $stripState, true );