Extension:CategoryTree/ja

CategoryTree拡張機能はウィキのカテゴリ構造の動的なビューをツリーとして提供します. これは必要に応じてツリーの一部をロードするためにja:AJAXを使います. CategoryTreeは外部ツールとしてもともとはDaniel Kinzlerによって開発されました(meta:User:Duesentrieb/CategoryTreeを参照). のちにこれはTim Starlingの助けによってMediaWikiソフトウェアに統合されました.

使い方
CategoryTreeは3つの方法で使うことができます:
 * directly on the category pages,
 * ウィキページでインラインのカテゴリ構造を表示する"カスタムタグ"(もしくは"パーサー関数")
 * 特別ページとして追加する

CategoryTree拡張機能はカテゴリページに一覧が表示されるサブカテゴリに [+] "expand"ウィジェットを追加します. Javascriptが無効な場合、これらのウィジェットはカテゴリページに誘導してくれます(初期のバージョンでは、これは何もしません).

&lt;categorytree&gt; タグ
例:

カスタムタグは&lt;categorytree&gt;と呼ばれます. たとえば、ウィキページに&lt;categorytree&gt;Foo&lt;/categorytree&gt;を記載すると、そのページでFooカテゴリの内容が動的なツリーとして表示されます (右の例を参照). HTMLライクな構文を使って、タグは次の属性を受け入れます :


 * mode: ツリーに表示されるページを決定します. これはnamespacesオプションを使うことでオーバーライドできます. 許可される値は次のとおりです:
 * categories: サブカテゴリだけ表示する(コンフィギュレーション定数のCT_MODE_CATEGORIES)
 * pages: 画像以外のサブカテゴリとページを表示する(コンフィギュレーション定数のCT_MODE_PAGES)
 * all: すべてのページ、サブカテゴリ、画像などを表示する(コンフィギュレーション定数のCT_MODE_ALL)
 * parents: サブカテゴリの代わりに親カテゴリの一覧を表示する (コンフィギュレーション定数のCT_MODE_PARENTS). これはCategoryTreeに"inverse"オペレーションをさせます(2008年7月の36892以降でサポートされます).


 * depth: 最初に表示されるツリーのレベルを決めます. デフォルトは1で、0はルートノードのみを意味します. 最大値は指定されるモード、と$wgCategoryTreeMaxDepthオプションに依存します(2007年5月30日のr20410と20840の間に導入されました; 2008年6月の36864以降の$wgCategoryTreeDynamicTagでも、十分な機能があります)
 * onlyroot : 初期の状態でツリーの"root"ノードのみを表示するようにするには これを"on"にセットします. depth="0"と同等です. (2007年3月13日の20385で導入されました) 2008年7月の36864は廃止されました: 代わりにdepth="0"を使ってください.
 * hideroot: ツリーの"root"ノードを隠すにはこれを"on"、すなわちhideroot="on"にセットします. この例ではカテゴリのFooは表示されません.
 * hideprefix: ツリーのエントリから隠される名前空間のプレフィックスを決定します(2008年7月の36864以降). 可能な値は次のとおりです:
 * always: つねにプレフィックスを隠します. すべてのページが同じ名前から由来する場合に使います (コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_ALWAYS</tt>).
 * never: カテゴリに対してでも、名前空間のプレフィックスをけっして隠さない(コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_NEVER</tt>).
 * auto: カテゴリの名前空間を隠します. カテゴリのみが表示される場合、mode="categories"</tt>と同じです(コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_AUTO</tt>); これは古いデフォルトのふるまいと同等です(2008年6月以前).
 * categories: カテゴリの名前空間を隠しますが、ほかのすべてのプレフィックスを表示します(コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_CATEGORIES</tt>). これは新しいデフォルトのふるまいです(2008年7月以降の36864).


 * showcount: サブカテゴリの数を表示するにはこれを"on"、すなわちshowcount="on"</tt>にセットします(2008年7月の36864以降). これはページのインラインのカテゴリツリーに対してデフォルトごとに無効ですが、Special:CategoryTreeでカテゴリリストのデフォルトごとに有効になります.
 * namespaces: ツリーに表示されるページからの名前空間の一覧を決定します(2008年7月の36864以降). リストのエントリはスペースで区切られた名前空間の名前でなければなりません. メインの名前空間は"-"もしくは"0"によって表現できます. これはmode</tt>オプションをオーバーライドします.
 * class, style、id、etc: &lt;categorytree&gt; タグはブロック要素用の標準のすべてのHTML属性をサポートします(2008年7月の36864以降で、それ以前はstyle</tt>のみがサポートされました).

パーサー関数
25825 (2007-9-13)以降、ページのカテゴリツリーを置くのにパーサー関数の構文を使うこともできます. これは、たとえば </tt>などの異なる構文を使った &lt;categorytree&gt; タグのように機能します; オプションは名前つきのテンプレート名、たとえば  </tt>の構文を使って指定できます.

パーサー関数の構文を使うことは カテゴリを指定する際にマジックワード、テンプレートとテンプレートパラメータが使える利点があります. いくつかの例です:
 * "this pages"カテゴリツリーを表示するにはマジック変数を使う(カテゴリ説明ページに役立ちます):  </tt>.
 * カテゴリを指定するにはテンプレートを使う:  </tt> - ルートカテゴリの名前はTemplate:Root_categoryの内容によって定義されます
 * テンプレート内部でCategoryTreeを使うとき、カテゴリを指定するにはテンプレートパラメータを使います: Template:Bazでは </tt>は  を使って呼び出すことができます

Special:CategoryTreeページ
特別ページはSpecial:CategoryTreeと呼ばれます; カテゴリの名前を入力しブラウザでコンテンツにアクセスします.

CategoryTreeをインストールする
Note: CategoryTree拡張機能の最新バージョンはMediaWiki 1.13が必要です. 最初のバージョンはMediaWiki 1.8が必要です(リビジョン16385もしくはそれ以降).

最新のスナップショットをダウンロードしMediaWikiインストレーションのextensionsフォルダに展開します. 次の行をLocalSettings.phpファイル(最後の行付近)に追加します:

$wgUseAjax = true</tt>はMediaWikiのAjaxフレームワークを有効にすることに注意してください. これはCategoryTree拡張機能に必要です. AJAXは必要に応じてページの一部をロードするJavaScriptの用語です. これは最近のグラフィカルなWebブラウザすべてでサポートされます.

コンフィギュレーション
LocalSettings.phpファイルで指定できるオプションがいくつかあります:


 * $wgCategoryTreeMaxChildren: ツリーノードに表示できる子の最大数です. デフォルトは200です.
 * $wgCategoryTreeAllowTag: &lt;categorytree&gt; タグを有効にします. デフォルトはtrueです.
 * $wgCategoryTreeDynamicTag: &lt;categorytree&gt でツリーの最初のレベルのツリーを動的にロードします. この方法では、キャッシュを無効にする必要はありません. デフォルトはfalseです.
 * $wgCategoryTreeDisableCache: &lt;categorytree&gt; タグでページのパーサーキャッシュを無効にします. デフォルトはtrueです.
 * $wgCategoryTreeHTTPCache: 匿名利用者のHTTPキャッシュを有効にします. デフォルトはfalseです.
 * $wgCategoryTreeOmitNamespace : ページとカテゴリで名前空間を表示しない. デフォルトはfalseで、カテゴリのみを表示しないかぎり名前空間が表示されます. 2008年7月の36864で廃止されたので代わりに$wgCategoryTreeDefaultOptions['hideprefix']</tt>を使ってください
 * $wgCategoryTreeMaxDepth: &lt;category&gt; タグで深さのパラメータを使って初期に展開されるそれぞれのmodeの最大の深さを決める配列です. デフォルトでは、これは"categories"モードで2に、ほかのモードでは1にセットされます. たとえばcategoriesには3、ほかのモードには2にセットするには、$wgCategoryTreeMaxDepth = array(CT_MODE_PAGES => 2, CT_MODE_ALL => 2, CT_MODE_CATEGORIES => 3);</tt>を使うことができます.
 * $wgCategoryTreeDefaultMode : &lt;categorytree&gt; タグでmode属性が設定されていないときのデフォルトモード. 可能な値は<tt>CT_MODE_CATEGORIES</tt> (デフォルト)、<tt>CT_MODE_PAGES</tt>、もしくは <tt>CT_MODE_ALL</tt>になります.
 * $wgCategoryTreeCategoryPageMode : カテゴリページでツリーをレンダリングするときに使うモード. 2008年7月の36864に廃止されました: 代わりに<tt>$wgCategoryTreeCategoryPageOptions['mode']</tt>を使います.
 * $wgCategoryTreeForceHeaders: trueの場合、必要に応じてではなく、すべてのページでCategoryTreeが必要なスクリプトを強制します. CategoryTreeが通常の方法でたとえばカスタムスキンもしくはシステムメッセージに埋め込まれるときに必要な場合があります(2008年7月の36888以降).
 * $wgCategoryTreeSidebarRoot: カテゴリツリーをサイドバーに統合するために使うルートカテゴリ(2008年7月の36920以降). セットされていない場合、ツリーは統合されません(これはデフォルト). サイドバーへのCategoryTreeの統合はSkinTemplateにもとづくスキンのみ機能します. すなわち、Modern、Monobook、Chick、SimpleとMySkinは機能しますがStandard、NostalgiaもしくはCologneBlueは機能しません.
 * $wgCategoryTreeDefaultOptions: デフォルトのオプションは配列として適用します(2008年7月の36864以降). 利用可能なオプションは上記のとおりです. 例:
 * $wgCategoryTreeCategoryPageOptions: カテゴリページで配列として使うオプション(2008年7月の36864以降).
 * $wgCategoryTreeSpecialPageOptions: Special:CategoryTreeで配列として使うオプション(2008年7月の36864以降)
 * $wgCategoryTreeSidebarOptions: サイドバーでツリーを表示するときに配列として使うオプション(2008年7月の36920以降)

categorytree-member-num
デフォルトでは、カテゴリページでサブカテゴリの一覧を示すとき、それぞれのサブカテゴリの後に数字が表示され、これはサブカテゴリの数を示します:


 * My category name (5)

システムメッセージのMediaWiki:categorytree-member-numをオーバーライドすることでこのふるまいを変更できます. これは5つのパラメータをとります:

デフォルトの値は です.

Tip: 異なる部分を条件ごとに表示するif/then/elseロジックを提供するためにはParserFunctions拡張機能を使います. 例です:

すべての情報を出力するときにカンマとスペースを管理するコンフィギュレーション: 

CategoryTreeをインストールした後でウィキが壊れる

 * エラー出力機能をオンにする
 * すべてのファイルがインストールされていることを確認する
 * CategoryTree拡張機能のすべてのファイルが644モードで、and the CategoryTreeディレクトリが755モードであることを確認してください

LocalSettings.phpのオプションが効果ない

 * 拡張機能のファイルをインクルードした後でオプションを指定していることを確認してください.

[+]をクリックしても効果がない、JavaScriptエラーもしくはloadingになる

 * 期待どおりに動かない場合システムメッセージで &lt;categorytree&gt; タグを使っていることを確認してください(MediaWiki-Namespace) - これは既知の警告です. 次善策は、下記のを参照してください.
 * 拡張機能のファイルをインクルードする前にLocalSettings.phpで<tt>$wgUseAjax = true;</tt>があることを確認してください.
 * 拡張機能の最新バージョンを使っていることを確認してください - 開発の最先端のバージョンはです.
 * 書き換えルールもしくはエイリアスを使っている場合(たとえば"very short URLs"がある - ドキュメントルートでウィキページ)、/skinsディレクトリと同じように/extensionsディレクトリに例外ファイルがあることを確認してください. 下記の項目も参照してください.

ブラウザがCategoryTree.js かつ/もしくは CategoryTree.cssに対してbad MIMEタイプを報告する

 * Webサーバーが.jsと.cssファイルに対して正しいmimeタイプを使っていることを確認してください
 * ブラウザでURLを直接入力し ページが完全に提供されエラーが表示されていないことを確認してください; とりわけ:
 * 書き換えルールもしくはエイリアスを使っている場合(たとえば"very short URLs"がある - ドキュメントルートでウィキページ)、/skinsディレクトリと同じように/extensionsディレクトリに例外ファイルがあることを確認してください. 下記の項目も参照してください.

メンバーのカウントが間違っている、[+]の代わりに[x]が表示される
MediaWiki 1.13以降では、CategoryTreeはカテゴリのメンバーの数を表示し、その番号にもとづく子を持たないツリーのノードを[x]を表示します. この情報は新しいcategory tableにもとづいています. しかしながら、そのテーブルに現在の値を投入しても1.13にアップグレードするときは常に機能しません. その場合、<tt>populateCategory.php</tt>メンテナンススクリプトを実行し、必要であれば<tt>--force</tt>オプションをつけます.

関連項目
Bugzillaでの関連問題とソリューション

利用者のための注
カテゴリページのHTMLをパースするボットとスクリプトは従来の出力を強制するURLの<tt>notree</tt>パラメータを使うことができます. しかしながらHTML出力は一般的には安定していないので、カテゴリの一覧を取得するには<tt>api.php</tt>を使うようスクリプトを変更することをおすすめします.

"Category Not Found"メッセージ
Category Treeプラグインを実装しツリーを表示するコードを追加した後で、Category Not Foundというメッセージが見える場合、コンテントをカテゴリページに追加する必要があります. 基本的にカテゴリページを赤くすることはできません. カテゴリ名をクリックし、テキストをカテゴリページに追加すれば、ツリーはきちんと機能します.

システムメッセージとカスタムスキンでCategoryTreeを使う
システムメッセージもしくはサイドバーでCategoryTreeを使うには、すなわち、ページコンテントの代わりに、ユーザーインターフェイスの一部として使うには、サポートスクリプトがすべてのページにリンクされるように(通常、これらは"必要に応じて"リンクされますが、システムメッセージの検出は機能しません)、<tt>wgCategoryTreeForceHeaders</tt>を<tt>true</tt>にセットしなければなりません. これは36888 (2008年7月)以降に機能します. スクリプトをインクルードすることを強制せずにこれを試す場合、Clicking the [+] has no effect / gives JavaScript errorになります.

CategoryTreeの古いバージョンでは、この動かすためにコードを修正しなければなりません: <tt>CategoryTree.php</tt>ファイルで<tt>efCategoryTreeParserOutput</tt>関数を見つけ、条件ブロックを削除すれば次のようになります:

サイドバーでCategoryTreeを使う
MediaWiki 1.13 (36917)の36920 (2008年7月)以降では、<tt>$wgCategoryTreeSidebarRoot</tt>をルートとして使いたいカテゴリにセットするだけでCategoryTreeをサイドバーに統合することができます. これはSkinTemplateを継承するスキン、すなわちModern、Monobook、Chick、SimpleとMySkinのみに機能しますが、Standard、NostalgiaもしくはCologneBlueは機能しません.

独自のウィキテキストをサイドバーに落とし込むためにLocalSettings.phpで を使い、CategoryTreeの項目をそれに追加する場合、すべてのページで機能させるために をセットする必要があります.

CategoryTreeかつ/もしくはMediaWikiの以前のバージョンに関して、サイドバーの通常のウィキテキストを有功にするためにmodをMonoBook.phpにインストールする必要があります. Wikitext in side bar --DJ 19:26, 24 January 2008 (UTC)を参照してください.

"CategoryTree"のリンクをツールボックス(サイドバー)に追加するには、次のコードをスキンのJavaScriptのページ(たとえばmonobook.js)に追加しURL "w:en:Special:CategoryTree"をカスタマイズします.

このコードのより一般的なバージョンはManual:Interface/Sidebarで見つかります.

Webリンク

 * READMEファイル
 * SVNの拡張機能モジュール
 * 搭載されるバージョンのダウンロードエリア (搭載される代替バージョン). (NOTE: 搭載されるバージョンは最新ではないことがあります！)
 * Bug Search