X-Git-Url: http://git.cyclocoop.org/%22%20.%20generer_url_ecrire%28%22articles_versions%22%2C%22id_article=%24id_article%22%29%20.%20%22?a=blobdiff_plain;f=includes%2Fparser%2FParserOutput.php;h=83f0f69ad8946ad73268b28495528c4ffa0e0f5c;hb=1a115f50040d1d3d2b72ca4b86c824d47fd23d5b;hp=5037ce18aa93143c2cbb341b2303b9d59f52f8a1;hpb=96efe0bc6634f42a72b6f18e7a69dce2388e2452;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/parser/ParserOutput.php b/includes/parser/ParserOutput.php index 5037ce18aa..83f0f69ad8 100644 --- a/includes/parser/ParserOutput.php +++ b/includes/parser/ParserOutput.php @@ -25,6 +25,7 @@ class ParserOutput extends CacheTime { public $mText, # The output text $mLanguageLinks, # List of the full text of language links, in the order they appear $mCategories, # Map of category names to sort keys + $mIndicators = array(), # Page status indicators, usually displayed in top-right corner $mTitleText, # title text of the chosen language variant $mLinks = array(), # 2-D map of NS/DBK to ID for the links in the document. ID=zero for broken. $mTemplates = array(), # 2-D map of NS/DBK to ID for the template references. ID=zero for broken. @@ -72,7 +73,6 @@ class ParserOutput extends CacheTime { } public function getText() { - wfProfileIn( __METHOD__ ); $text = $this->mText; if ( $this->mEditSectionTokens ) { $text = preg_replace_callback( @@ -110,7 +110,6 @@ class ParserOutput extends CacheTime { $text ); } - wfProfileOut( __METHOD__ ); return $text; } @@ -130,6 +129,13 @@ class ParserOutput extends CacheTime { return $this->mCategories; } + /** + * @since 1.25 + */ + public function getIndicators() { + return $this->mIndicators; + } + public function getTitleText() { return $this->mTitleText; } @@ -267,6 +273,13 @@ class ParserOutput extends CacheTime { $this->mCategories[$c] = $sort; } + /** + * @since 1.25 + */ + public function setIndicator( $id, $content ) { + $this->mIndicators[$id] = $content; + } + public function addLanguageLink( $t ) { $this->mLanguageLinks[] = $t; } @@ -471,6 +484,46 @@ class ParserOutput extends CacheTime { $this->mPreventClickjacking = $this->mPreventClickjacking || $out->getPreventClickjacking(); } + /** + * Add a tracking category, getting the title from a system message, + * or print a debug message if the title is invalid. + * + * Please add any message that you use with this function to + * $wgTrackingCategories. That way they will be listed on + * Special:TrackingCategories. + * + * @param string $msg Message key + * @param Title $title title of the page which is being tracked + * @return bool Whether the addition was successful + * @since 1.25 + */ + public function addTrackingCategory( $msg, $title ) { + if ( $title->getNamespace() === NS_SPECIAL ) { + wfDebug( __METHOD__ . ": Not adding tracking category $msg to special page!\n" ); + return false; + } + + // Important to parse with correct title (bug 31469) + $cat = wfMessage( $msg ) + ->title( $title ) + ->inContentLanguage() + ->text(); + + # Allow tracking categories to be disabled by setting them to "-" + if ( $cat === '-' ) { + return false; + } + + $containerCategory = Title::makeTitleSafe( NS_CATEGORY, $cat ); + if ( $containerCategory ) { + $this->addCategory( $containerCategory->getDBkey(), $this->getProperty( 'defaultsort' ) ?: '' ); + return true; + } else { + wfDebug( __METHOD__ . ": [[MediaWiki:$msg]] is not a valid title!\n" ); + return false; + } + } + /** * Override the title to be used for display * -- this is assumed to have been validated @@ -806,7 +859,7 @@ class ParserOutput extends CacheTime { } /** - * Save space for for serialization by removing useless values + * Save space for serialization by removing useless values * @return array */ public function __sleep() {