Jump to content

Manual:カスタム名前空間の使用方法

From mediawiki.org
Revision as of 14:52, 18 September 2007 by Courant (talk | contribs) (Manual:Using custom namespaces 16:50, 3 September 2007 translation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

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

カスタムの名前空間を作成する

カスタム名前空間を作成するために、適切な行をLocalSettings.phpを追加します。例です。

$wgExtraNamespaces[100] = "Foo";

名前空間の定義で定数100の使用を記述しました。すべての名前空間は数字のインデックスを要求します; カスタムの名前空間のために、これらは100で始まります。覚えておくべき他のポイントは偶数の名前空間インデックスは内容の名前空間を意味し、反対に奇数のインデックスはノート(discussion)の名前空間を意味します。上記の宣言が次のように拡張されるようにそれぞれのカスタム名前空間でノート(descussion)名前空間を定義することはよくあることです:

$wgExtraNamespaces[100] = "Foo";
$wgExtraNamespaces[101] = "Foo_talk";

内容の名前空間

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

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

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

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

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

$wgContentNamespaces[] = 100;

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

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

MW 1.10.0ではupdateArticleCount.phpスクリプトがこれらの統計を正確にアップデートしませんでした(最初のカスタム名前空間に対してアップデートをしましたが、$wgContentNamespaces配列に設定されている全部にはアップデートされませんでした)。修正は代わりにinitStats.php --updateを実行すれば適切に動作します。Paul-lmi 17:39, 21 July 2007 (UTC)
MW 1.8.5で同じ経験をしました --oKtosiTe - talk 16:50, 3 September 2007 (UTC)

既存のページを取り扱う

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

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

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

衝突するページを移動させる

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

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

メンテナンススクリプトを使用する

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

カスタム名前空間を削除する

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

関連項目