私は MediaWiki サイトを持っており、非常に単純な「記事を読む」機能 (編集/コメント オプションなし) を備えたタブを追加したいと考えています。マニュアルに従って名前空間を作成しようとしましたが、それでも機能しません。
LocalSettings.php のスニペットは次のようになります。
define("NS_ARTICLE", 500);
$wgExtraNamespaces[NS_ARTICLE] = "Article";
$wgNamespaceProtection[NS_ARTICLE] = array( '' );
$wgNamespacesWithSubpages[NS_ARTICLE] = true;
$wgContentNamespaces[] = NS_ARTICLE;
Title.php に新しいメソッドを作成しました。
public function getReadPage() {
return Title::makeTitle( MWNamespace::getRead( NS_ARTICLE ), $this->getDBkey() );
}
Namespace.php で:
public static function getRead( $index ) {
self::isMethodValidFor( $index, __METHOD__ );
return self::isTalk( $index )
? $index
: $index + 1;
}
そしてSkinTemplate.phpで:
$readPage = $title->getReadPage();
$content_navigation['namespaces']['article']['class'] = 'selected';
$content_navigation['namespaces']['article']['text'] = 'Article';
$content_navigation['namespaces']['article']['href'] = $readPage;
$content_navigation['namespaces']['article']['primary'] = true;
$content_navigation['namespaces']['article']['context'] = 'subject';
タブが表示されましたが、「Article:Title」ではなく「:Title」にリンクしています。「Article:Title」ページを探すと、次のメッセージが表示されます。
現在、このページにはテキストがありません。このページ タイトルを他のページで検索したり、関連するログを検索したり、このページを編集したりできます。
何か案は?