* Create a new Title from a prefixed DB key
*
* @param string $key The database key, which has underscores
- * instead of spaces, possibly including namespace and
- * interwiki prefixes
+ * instead of spaces, possibly including namespace and
+ * interwiki prefixes
* @return Title|null Title, or null on an error
*/
public static function newFromDBkey( $key ) {
*/
public function getNsText() {
if ( $this->isExternal() ) {
- // This probably shouldn't even happen,
- // but for interwiki transclusion it sometimes does.
- // Use the canonical namespaces if possible to try to
- // resolve a foreign namespace.
- if ( MWNamespace::exists( $this->mNamespace ) ) {
- return MWNamespace::getCanonicalName( $this->mNamespace );
+ // This probably shouldn't even happen, except for interwiki transclusion.
+ // If possible, use the canonical name for the foreign namespace.
+ $nsText = MWNamespace::getCanonicalName( $this->mNamespace );
+ if ( $nsText !== false ) {
+ return $nsText;
}
}
}
$dbw = wfGetDB( DB_MASTER );
- $dbw->onTransactionPreCommitOrIdle( function () {
- ResourceLoaderWikiModule::invalidateModuleCache( $this, null, null, wfWikiID() );
- } );
+ $dbw->onTransactionPreCommitOrIdle(
+ function () {
+ ResourceLoaderWikiModule::invalidateModuleCache( $this, null, null, wfWikiID() );
+ },
+ __METHOD__
+ );
$conds = $this->pageCond();
DeferredUpdates::addUpdate(
*/
public function getNamespaceKey( $prepend = 'nstab-' ) {
global $wgContLang;
- // Gets the subject namespace if this title
- $namespace = MWNamespace::getSubject( $this->getNamespace() );
- // Checks if canonical namespace name exists for namespace
- if ( MWNamespace::exists( $this->getNamespace() ) ) {
- // Uses canonical namespace name
- $namespaceKey = MWNamespace::getCanonicalName( $namespace );
- } else {
- // Uses text of namespace
+ // Gets the subject namespace of this title
+ $subjectNS = MWNamespace::getSubject( $this->getNamespace() );
+ // Prefer canonical namespace name for HTML IDs
+ $namespaceKey = MWNamespace::getCanonicalName( $subjectNS );
+ if ( $namespaceKey === false ) {
+ // Fallback to localised text
$namespaceKey = $this->getSubjectNsText();
}
// Makes namespace key lowercase