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. |