| Index: trunk/phase3/includes/parser/CoreParserFunctions.php |
| — | — | @@ -47,6 +47,12 @@ |
| 48 | 48 | $parser->setFunctionHook( 'pagesincategory', array( __CLASS__, 'pagesincategory' ), SFH_NO_HASH ); |
| 49 | 49 | $parser->setFunctionHook( 'pagesize', array( __CLASS__, 'pagesize' ), SFH_NO_HASH ); |
| 50 | 50 | $parser->setFunctionHook( 'protectionlevel', array( __CLASS__, 'protectionlevel' ), SFH_NO_HASH ); |
| | 51 | + $parser->setFunctionHook( 'namespace', array( __CLASS__, 'namespace' ), SFH_NO_HASH ); |
| | 52 | + $parser->setFunctionHook( 'namespacee', array( __CLASS__, 'namespacee' ), SFH_NO_HASH ); |
| | 53 | + $parser->setFunctionHook( 'talkspace', array( __CLASS__, 'talkspace' ), SFH_NO_HASH ); |
| | 54 | + $parser->setFunctionHook( 'talkspacee', array( __CLASS__, 'talkspacee' ), SFH_NO_HASH ); |
| | 55 | + $parser->setFunctionHook( 'subjectspace', array( __CLASS__, 'subjectspace' ), SFH_NO_HASH ); |
| | 56 | + $parser->setFunctionHook( 'subjectspacee', array( __CLASS__, 'subjectspacee' ), SFH_NO_HASH ); |
| 51 | 57 | $parser->setFunctionHook( 'tag', array( __CLASS__, 'tagObj' ), SFH_OBJECT_ARGS ); |
| 52 | 58 | |
| 53 | 59 | if ( $wgAllowDisplayTitle ) { |
| — | — | @@ -248,6 +254,48 @@ |
| 249 | 255 | return self::formatRaw( SiteStats::numberingroup( strtolower( $name ) ), $raw ); |
| 250 | 256 | } |
| 251 | 257 | |
| | 258 | + |
| | 259 | + /* |
| | 260 | + * Given a title, return the namespace name that would be given by the |
| | 261 | + * corresponding magic word |
| | 262 | + */ |
| | 263 | + static function namespace( $parser, $title = null ) { |
| | 264 | + $t = Title::newFromText( $title ); |
| | 265 | + if ( is_null($t) ) |
| | 266 | + return ''; |
| | 267 | + return str_replace( '_', ' ', $t->getNsText() ); |
| | 268 | + } |
| | 269 | + static function namespacee( $parser, $title = null ) { |
| | 270 | + $t = Title::newFromText( $title ); |
| | 271 | + if ( is_null($t) ) |
| | 272 | + return ''; |
| | 273 | + return wfUrlencode( $t->getNsText() ); |
| | 274 | + } |
| | 275 | + static function talkspace( $parser, $title = null ) { |
| | 276 | + $t = Title::newFromText( $title ); |
| | 277 | + if ( is_null($t) || !$t->canTalk() ) |
| | 278 | + return ''; |
| | 279 | + return str_replace( '_', ' ', $t->getTalkNsText() ); |
| | 280 | + } |
| | 281 | + static function talkspacee( $parser, $title = null ) { |
| | 282 | + $t = Title::newFromText( $title ); |
| | 283 | + if ( is_null($t) || !$t->canTalk() ) |
| | 284 | + return ''; |
| | 285 | + return wfUrlencode( $t->getTalkNsText() ); |
| | 286 | + } |
| | 287 | + static function subjectspace( $parser, $title = null ) { |
| | 288 | + $t = Title::newFromText( $title ); |
| | 289 | + if ( is_null($t) ) |
| | 290 | + return ''; |
| | 291 | + return str_replace( '_', ' ', $t->getSubjectNsText() ); |
| | 292 | + } |
| | 293 | + static function subjectspacee( $parser, $title = null ) { |
| | 294 | + $t = Title::newFromText( $title ); |
| | 295 | + if ( is_null($t) ) |
| | 296 | + return ''; |
| | 297 | + return wfUrlencode( $t->getSubjectNsText() ); |
| | 298 | + } |
| | 299 | + |
| 252 | 300 | /** |
| 253 | 301 | * Return the number of pages in the given category, or 0 if it's nonexis- |
| 254 | 302 | * tent. This is an expensive parser function and can't be called too many |
| Index: trunk/phase3/RELEASE-NOTES |
| — | — | @@ -73,6 +73,8 @@ |
| 74 | 74 | "mw-confirmemail-pending" |
| 75 | 75 | * Local redirects to foreign images are now displayed on the ImagePage when |
| 76 | 76 | viewing on the local wiki. |
| | 77 | +* The {{NAMESPACE}}, {{TALKSPACE}}, and {{SUBJECTSPACE}} magic words can now be |
| | 78 | + used as parser functions to return the desired namespace for a given title. |
| 77 | 79 | |
| 78 | 80 | === Bug fixes in 1.15 === |
| 79 | 81 | * (bug 16968) Special:Upload no longer throws useless warnings. |