Manual:Using custom namespaces/ja

組み込みの名前空間に加えて、内容を分離してより論理的な組織化を可能にするために、カスタムの名前空間をMediaWikiに追加することが可能です.

$wgExtraNamespacesコンフィギュレーションディレクティブを使用することでカスタムの名前空間は管理が簡単です.

カスタムの名前空間を作成する
Custom namespaces are created via manipulation of the $wgExtraNamespace global variable. Manipulation of this variable must be completed before completion of MediaWiki initialization; for instance it cannot be manipulated in a extension post initialization hook. As an example of simple custom namespace creation, one can add an appropriate line to LocalSettings.php, 例です.

名前空間の定義で定数500の使用を記述しました. すべての名前空間は数字のインデックスを要求します; カスタムの名前空間のために、これらは100で始まります. In choosing such an index, you may want to avoid any that is listed in extension namespace registration as being used by an extension, since you might want to install that extension later. It is important to remember that an even namespace index denotes a subject namespace, whereas an odd index denotes a discussion ("talk") namespace. It is recommended that you define a discussion namespace with each custom namespace, so the declaration above might be expanded to:

内容の名前空間
サイトの統計ページを構築するとき(Special:Statisticsを参照)、MediaWikiはある合計値を計算するためにデータベースに保存された変数を使用します. 一つの特定の合計値は"記事の数"もしくは"内容ページの数"の合計値です.

記事もしくは適切な内容としてページがみなされるようにするために、次のことをしなければなりません:


 * mainの名前空間において、もしくはcontent名前空間を定義する
 * redirectページではないように
 * 少なくとも内部リンクを含む

追加の内容を保持するカスタムの名前空間を作成するとき、コンフィギュレーションにこれを示すことはよいアイディアです. $wgContentNamespacesコンフィギュレーションディレクティブ経由で行われます.

上記の例を拡張するために、次の内容をLocalSettings.phpに追加します:

これでMediaWikiはページが含んでいる基準(criteria)と合う場合に"Foo"名前空間にあるページを記事と見なすようになり、サイト統計カウンターをアップデートするときにインクルードされます.

Running maintenance scripts

 * $wgContentNamespacesの値を調整するとき、内部の統計キャッシュをアップデートするmaintenance/updateArticleCount.phpスクリプトを実行することはよいアイディアです (see: Manual:Maintenance scripts).

Why you would want a custom namespace
A custom namespace can be used to hold content that should not be shown on the search results page, for example pages that are used only for transclusion.

既存のページを取り扱う
ページレコードを保存するとき、MediaWikiはタイトルのテキストに加えて、名前空間の数値インデックスを使用します. ページが存在しない名前空間に作成されたとき、例えば、"Bar:Some page"、メインの名前空間にあるものとして取り扱われます.

"Bar"のためにカスタムの名前空間を後で追加する場合、このことによって問題を起こす可能性があります. MediaWikiは適切な名前空間経由でインデックスされたページを探しますが、見つからないので、内容にアクセスできません.

この問題を修正するために、3つの主要なアプローチがあります.

衝突するページを移動させる
影響されるページ数が小さい場合(例えば、サイトコンフィギュレーションで名前空間が定義される前に"Bar"は5つのページを持つ場合、)次のアプローチが適用できます:


 * 1) コンフィギュレーションファイルにある名前空間の定義をコメントアウトする
 * 2) それぞれ影響されるページにアクセスをして、擬似名前空間に移動させる、例えば、Bar:Some page"を"Bar2:Some page"に移動させる
 * 3) 名前空間の定義をアンコメントする
 * 4) 影響されるページを新しい名前空間に戻す

メンテナンススクリプトを使用する
maintenanceディレクトリ内に、大規模のページに対してより効果的に上記のオペレーションを実行するメンテナンススクリプトがあります; namespaceDupes.php. シンプルですが、すべてのMediaWikiメンテナンススクリプトと同様に、最初に利用可能な使い方情報(--helpを使用します)をオプションとして最初に尋ねることができます.

Use a database query
To move all pages "Bar:Some page" into namespace 500, drop the following database query: To handle discussion pages:

カスタム名前空間を削除する
上記で書かれた問題はカスタム名前空間が削除されるときにも起こります; MediaWikiは名前空間のための数値インデックスをもはや認識しないので、望むページのためにメインの名前空間を探そうとしますが、内容にアクセスできません. 多くのサイトではremoved名前空間が必要ではないので、これはほとんど起こりません. しかし問題があります. (See mailing list discussion).

Avoid namespace conflicts
In order for you to avoid namespace conflicts [e. g. your namespace has the same number as a namespace defined by an extension, the extension namespace list shows you which numbers to avoid to prevent conflicts.

Defining $wgNamespacesToBeSearchedDefault, $wgNamespacesWithSubpages, $wgContentNamespaces or $wgNamespaceAliases for an ID not associated to any existing namespace in $wgExtraNamespaces doesn't break the wiki; MediaWiki gracefully ignores such configurations.

Styling namespaces (e.g. Background)
To set the background color of pages in the specified namespace, add following code to your common.css: where "500" is your namespace index, #f3f3ff is the namespace background color.

関連項目

 * Manual:Configuration settings
 * $wgNamespacesToBeSearchedDefault
 * Namespace manager　元々はMW1.6-wikidataとサクセサのために提案されました. 現在はOmegaWikiプロジェクトによって使用されています.
 * Extension:Simple namespaces special:interwiki extensionの修正バージョンで、namespace managerを特別ページとして提供します.
 * Extension:NamespacePermissions and Extension:Lockdown to control access to namespaces
 * Extension namespace registration
 * Maintenance scripts