Extension:CategoryTree/ja
|
CategoryTree Release status: stable |
|||
|---|---|---|---|
| 実装 | Tag | ||
| 説明 | ウィキのカテゴリ構造の動的なビューをツリーとして提供する | ||
| 作者 | Duesentrieb | ||
| MediaWiki | 1.8 (r16385 or later), 1.11 (for CT since r30515), 1.13 (for CT since r36772) | ||
| ライセンス | GPLとGFDL | ||
| ダウンロード | スナップショットをダウンロード |
||
|
|||
|
|||
CategoryTree拡張機能はウィキのカテゴリ構造の動的なビューをツリーとして提供します。これは必要に応じてツリーの一部をロードするためにAJAXを使います。CategoryTreeは外部ツールとしてもともとはDaniel Kinzlerによって開発されました(meta:User:Duesentrieb/CategoryTreeを参照)。のちにこれはTim Starlingの助けによってMediaWikiソフトウェアに統合されました。
Contents |
[edit] 使い方
CategoryTreeは3つの方法で使うことができます:
- directly on the category pages,
- ウィキページでインラインのカテゴリ構造を表示する"カスタムタグ"(もしくは"パーサー関数")
- 特別ページとして追加する
CategoryTree拡張機能はカテゴリページに一覧が表示されるサブカテゴリに[+] "expand"ウィジェットを追加します。Javascriptが無効な場合、これらのウィジェットはカテゴリページに誘導してくれます(初期のバージョンでは、これは何もしません)。
[edit] <categorytree> タグ
例:
<categorytree mode=pages>Manual</categorytree>
カスタムタグは<categorytree>と呼ばれます。たとえば、ウィキページに<categorytree>Foo</categorytree>を記載すると、そのページでFooカテゴリの内容が動的なツリーとして表示されます (右の例を参照)。HTMLライクな構文を使って、タグは次の属性を受け入れます:
- mode
- ツリーに表示されるページを決定します。これはnamespacesオプションを使うことでオーバーライドできます。許可される値は次のとおりです:
- categories
- サブカテゴリだけ表示する(コンフィギュレーション定数のCT_MODE_CATEGORIES)
- pages
- 画像以外のサブカテゴリとページを表示する(コンフィギュレーション定数のCT_MODE_PAGES)
- all
- すべてのページ、サブカテゴリ、画像などを表示する(コンフィギュレーション定数のCT_MODE_ALL)
- parents
- サブカテゴリの代わりに親カテゴリの一覧を表示する (コンフィギュレーション定数のCT_MODE_PARENTS). これはCategoryTreeに"inverse"オペレーションをさせます(2008年7月のrev:36892以降でサポートされます)。
- depth
- 最初に表示されるツリーのレベルを決めます。デフォルトは1で、0はルートノードのみを意味します。最大値は指定されるモード、と$wgCategoryTreeMaxDepthオプションに依存します(2007年5月30日のrev:r20410とrev:20840の間に導入されました; 2008年6月のrev:36864以降の$wgCategoryTreeDynamicTagでも、十分な機能があります)
onlyroot- 初期の状態でツリーの"root"ノードのみを表示するようにするには
これを"on"にセットします。depth="0"と同等です。(2007年3月13日のrev:20385で導入されました)2008年7月のrev:36864は廃止されました: 代わりにdepth="0"を使ってください。 - hideroot
- ツリーの"root"ノードを隠すにはこれを"on"、すなわちhideroot="on"にセットします。この例ではカテゴリのFooは表示されません。
- hideprefix
- ツリーのエントリから隠される名前空間のプレフィックスを決定します(2008年7月のrev:36864以降)。可能な値は次のとおりです:
- always
- つねにプレフィックスを隠します。すべてのページが同じ名前から由来する場合に使います (コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_ALWAYS)。
- never
- カテゴリに対してでも、名前空間のプレフィックスをけっして隠さない(コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_NEVER).
- auto
- カテゴリの名前空間を隠します。カテゴリのみが表示される場合、mode="categories"と同じです(コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_AUTO); これは古いデフォルトのふるまいと同等です(2008年6月以前)。
- categories
- カテゴリの名前空間を隠しますが、ほかのすべてのプレフィックスを表示します(コンフィギュレーション定数のCT_MODE_CT_HIDEPREFIX_CATEGORIES)。これは新しいデフォルトのふるまいです(2008年7月以降のrev:36864)。
- showcount
- サブカテゴリの数を表示するにはこれを"on"、すなわちshowcount="on"にセットします(2008年7月のrev:36864以降)。これはページのインラインのカテゴリツリーに対してデフォルトごとに無効ですが、Special:CategoryTreeでカテゴリリストのデフォルトごとに有効になります。
- namespaces
- ツリーに表示されるページからの名前空間の一覧を決定します(2008年7月のrev:36864以降)。リストのエントリはスペースで区切られた名前空間の名前でなければなりません。メインの名前空間は"-"もしくは"0"によって表現できます。これはmodeオプションをオーバーライドします。
- class, style、id、etc
- <categorytree> タグはブロック要素用の標準のすべてのHTML属性をサポートします(2008年7月のrev:36864以降で、それ以前はstyleのみがサポートされました)。
[edit] {{#categorytree}} パーサー関数
rev:25825 (2007-9-13)以降、ページのカテゴリツリーを置くのにパーサー関数の構文を使うこともできます。これは、たとえば{{#categorytree:Foo}}などの異なる構文を使った <categorytree> タグのように機能します; オプションは名前つきのテンプレート名、たとえば{{#categorytree:Foo|hideroot|mode=pages}}の構文を使って指定できます。
パーサー関数の構文を使うことは カテゴリを指定する際にマジックワード、テンプレートとテンプレートパラメータが使える利点があります。いくつかの例です:
- "this pages"カテゴリツリーを表示するにはマジック変数を使う(カテゴリ説明ページに役立ちます): {{#categorytree:{{PAGENAME}}}}。
- カテゴリを指定するにはテンプレートを使う: {{#categorytree:{{root category}}}} - ルートカテゴリの名前はTemplate:Root_categoryの内容によって定義されます
- テンプレート内部でCategoryTreeを使うとき、カテゴリを指定するにはテンプレートパラメータを使います: Template:Bazでは{{#categorytree:{{{1}}}}}は{{Baz|Foo}}を使って呼び出すことができます
[edit] Special:CategoryTreeページ
特別ページはSpecial:CategoryTreeと呼ばれます; カテゴリの名前を入力しブラウザでコンテンツにアクセスします。
[edit] CategoryTreeをインストールする
Note: CategoryTree拡張機能の最新バージョンはMediaWiki 1.13が必要です。最初のバージョンはMediaWiki 1.8が必要です(リビジョン16385もしくはそれ以降)。
最新のスナップショットをダウンロードしMediaWikiインストレーションのextensionsフォルダに展開します。次の行をLocalSettings.phpファイル(最後の行付近)に追加します:
$wgUseAjax = true; require_once("{$IP}/extensions/CategoryTree/CategoryTree.php");
$wgUseAjax = trueはMediaWikiのAjaxフレームワークを有効にすることに注意してください。これはCategoryTree拡張機能に必要です。AJAXは必要に応じてページの一部をロードするJavaScriptの用語です。これは最近のグラフィカルなWebブラウザすべてでサポートされます。
[edit] コンフィギュレーション
LocalSettings.phpファイルで指定できるオプションがいくつかあります:
- $wgCategoryTreeMaxChildren
- ツリーノードに表示できる子の最大数です。デフォルトは200です。
- $wgCategoryTreeAllowTag
- <categorytree> タグを有効にします。デフォルトはtrueです。
- $wgCategoryTreeDynamicTag
- <categorytree> でツリーの最初のレベルのツリーを動的にロードします。この方法では、キャッシュを無効にする必要はありません。デフォルトはfalseです。
- $wgCategoryTreeDisableCache
- <categorytree> タグでページのパーサーキャッシュを無効にします。デフォルトはtrueです。
- $wgCategoryTreeHTTPCache
- 匿名利用者のHTTPキャッシュを有効にします。デフォルトはfalseです。
$wgCategoryTreeOmitNamespaceページとカテゴリで名前空間を表示しない。デフォルトはfalseで、カテゴリのみを表示しないかぎり名前空間が表示されます。2008年7月のrev:36864で廃止されたので代わりに$wgCategoryTreeDefaultOptions['hideprefix']を使ってください- $wgCategoryTreeMaxDepth
- <category> タグで深さのパラメータを使って初期に展開されるそれぞれのmodeの最大の深さを決める配列です。デフォルトでは、これは"categories"モードで2に、ほかのモードでは1にセットされます。たとえばcategoriesには3、ほかのモードには2にセットするには、$wgCategoryTreeMaxDepth = array(CT_MODE_PAGES => 2, CT_MODE_ALL => 2, CT_MODE_CATEGORIES => 3);を使うことができます。
$wgCategoryTreeDefaultMode<categorytree> タグでmode属性が設定されていないときのデフォルトモード。可能な値はCT_MODE_CATEGORIES (デフォルト)、CT_MODE_PAGES、もしくは CT_MODE_ALLになります。$wgCategoryTreeCategoryPageModeカテゴリページでツリーをレンダリングするときに使うモード。2008年7月のrev:36864に廃止されました: 代わりに$wgCategoryTreeCategoryPageOptions['mode']を使います。- $wgCategoryTreeForceHeaders
- trueの場合、必要に応じてではなく、すべてのページでCategoryTreeが必要なスクリプトを強制します。CategoryTreeが通常の方法でたとえばカスタムスキンもしくはシステムメッセージに埋め込まれるときに必要な場合があります(2008年7月のrev:36888以降)。
- $wgCategoryTreeSidebarRoot
- カテゴリツリーをサイドバーに統合するために使うルートカテゴリ(2008年7月のrev:36920以降)。セットされていない場合、ツリーは統合されません(これはデフォルト)。サイドバーへのCategoryTreeの統合はSkinTemplateにもとづくスキンのみ機能します。すなわち、Modern、Monobook、Chick、SimpleとMySkinは機能しますがStandard、NostalgiaもしくはCologneBlueは機能しません。
- $wgCategoryTreeDefaultOptions
- デフォルトのオプションは配列として適用します(2008年7月のrev:36864以降)。利用可能なオプションは上記のとおりです。例:
$wgCategoryTreeDefaultOptions['mode'] = 'pages'; - $wgCategoryTreeCategoryPageOptions
- カテゴリページで配列として使うオプション(2008年7月のrev:36864以降)。
- $wgCategoryTreeSpecialPageOptions
- Special:CategoryTreeで配列として使うオプション(2008年7月のrev:36864以降)
- $wgCategoryTreeSidebarOptions
- サイドバーでツリーを表示するときに配列として使うオプション(2008年7月のrev:36920以降)
[edit] システムメッセージ
[edit] categorytree-member-num
デフォルトでは、カテゴリページでサブカテゴリの一覧を示すとき、それぞれのサブカテゴリの後に数字が表示され、これはサブカテゴリの数を示します:
- My category name (5)
システムメッセージのMediaWiki:categorytree-member-numをオーバーライドすることでこのふるまいを変更できます。これは5つのパラメータをとります:
| パラメータ | 意味 |
|---|---|
| $1 | サブカテゴリの個数 |
| $2 | 記事の数 (カテゴリページもしくはファイルページは含まない) |
| $3 | アップロードされたファイルの個数 |
| $4 | カテゴリページとファイルページを含む、メンバーページの合計数 |
| $5 | (Varies depending on CategoryTree mode.... Can someone describe it?) |
デフォルトの値は($5)です。
Tip: 異なる部分を条件ごとに表示するif/then/elseロジックを提供するためにはParserFunctions拡張機能を使います。例です:
{{#ifeq:$1|0||$1 categories}}
すべての情報を出力するときにカンマとスペースを管理するコンフィギュレーション:
({{#ifeq:$1|0||$1 categories}}{{#ifexpr:($2>0 or $3>0) and $1>0|, |}}{{#ifeq:$2|0||$2 pages}}{{#ifexpr:$3>0 and ($1>0 or $2>0)|, |}}{{#ifeq:$3|0||$3 files}})
[edit] トラブルシューティング
[edit] CategoryTreeをインストールした後でウィキが壊れる
- エラー出力機能をオンにする
- すべてのファイルがインストールされていることを確認する
- CategoryTree拡張機能のすべてのファイルが644モードで、and the CategoryTreeディレクトリが755モードであることを確認してください
[edit] LocalSettings.phpのオプションが効果ない
- 拡張機能のファイルをインクルードした後でオプションを指定していることを確認してください。
[edit] [+]をクリックしても効果がない、JavaScriptエラーもしくはloadingになる
- 期待どおりに動かない場合システムメッセージで <categorytree> タグを使っていることを確認してください(MediaWiki-Namespace) - これは既知の警告です。次善策は、下記の#サイドバーでCategoryTreeを使うを参照してください。
- 拡張機能のファイルをインクルードする前にLocalSettings.phpで$wgUseAjax = true;があることを確認してください。
- 拡張機能の最新バージョンを使っていることを確認してください - 開発の最先端のバージョンは[1]です。
- 書き換えルールもしくはエイリアスを使っている場合(たとえば"very short URLs"がある - ドキュメントルートでウィキページ)、/skinsディレクトリと同じように/extensionsディレクトリに例外ファイルがあることを確認してください。下記の項目も参照してください。
[edit] ブラウザがCategoryTree.js かつ/もしくは CategoryTree.cssに対してbad MIMEタイプを報告する
- Webサーバーが.jsと.cssファイルに対して正しいmimeタイプを使っていることを確認してください
- ブラウザでURLを直接入力し ページが完全に提供されエラーが表示されていないことを確認してください; とりわけ:
- 書き換えルールもしくはエイリアスを使っている場合(たとえば"very short URLs"がある - ドキュメントルートでウィキページ)、/skinsディレクトリと同じように/extensionsディレクトリに例外ファイルがあることを確認してください。下記の項目も参照してください。
[edit] メンバーのカウントが間違っている、[+]の代わりに[x]が表示される
MediaWiki 1.13以降では、CategoryTreeはカテゴリのメンバーの数を表示し、その番号にもとづく子を持たないツリーのノードを[x]を表示します。この情報は新しいcategory tableにもとづいています。しかしながら、そのテーブルに現在の値を投入しても1.13にアップグレードするときは常に機能しません。その場合、populateCategory.phpメンテナンススクリプトを実行し、必要であれば--forceオプションをつけます。
[edit] 関連項目
[edit] 利用者のための注
カテゴリページのHTMLをパースするボットとスクリプトは従来の出力を強制するURLのnotreeパラメータを使うことができます。しかしながらHTML出力は一般的には安定していないので、カテゴリの一覧を取得するにはapi.phpを使うようスクリプトを変更することをおすすめします。
[edit] "Category Not Found"メッセージ
Category Treeプラグインを実装しツリーを表示するコードを追加した後で、Category Not Foundというメッセージが見える場合、コンテントをカテゴリページに追加する必要があります。基本的にカテゴリページを赤くすることはできません。カテゴリ名をクリックし、テキストをカテゴリページに追加すれば、ツリーはきちんと機能します。
[edit] ハック
[edit] システムメッセージとカスタムスキンでCategoryTreeを使う
システムメッセージもしくはサイドバーでCategoryTreeを使うには、すなわち、ページコンテントの代わりに、ユーザーインターフェイスの一部として使うには、サポートスクリプトがすべてのページにリンクされるように(通常、これらは"必要に応じて"リンクされますが、システムメッセージの検出は機能しません)、wgCategoryTreeForceHeadersをtrueにセットしなければなりません。これはrev:36888 (2008年7月)以降に機能します。スクリプトをインクルードすることを強制せずにこれを試す場合、Clicking the [+] has no effect / gives JavaScript errorになります。
CategoryTreeの古いバージョンでは、この動かすためにコードを修正しなければなりません: CategoryTree.phpファイルでefCategoryTreeParserOutput関数を見つけ、条件ブロックを削除すれば次のようになります:
function efCategoryTreeParserOutput( &$outputPage, &$parserOutput ) { CategoryTree::setHeaders( $outputPage ); return true; }
[edit] サイドバーでCategoryTreeを使う
MediaWiki 1.13 (rev:36917)のrev:36920 (2008年7月)以降では、$wgCategoryTreeSidebarRootをルートとして使いたいカテゴリにセットするだけでCategoryTreeをサイドバーに統合することができます。これはSkinTemplateを継承するスキン、すなわちModern、Monobook、Chick、SimpleとMySkinのみに機能しますが、Standard、NostalgiaもしくはCologneBlueは機能しません。
独自のウィキテキストをサイドバーに落とし込むためにLocalSettings.phpで$wgHooks['MonoBookTemplateToolboxEnd'][] = 'wfSomeFunc';を使い、CategoryTreeの項目をそれに追加する場合、すべてのページで機能させるために$wgCategoryTreeForceHeaders = true;をセットする必要があります。
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"をカスタマイズします。
function AppendCategoryTreeToSidebar() { try { var node = document.getElementById( "p-tb" ) .getElementsByTagName('div')[0] .getElementsByTagName('ul')[0]; var aNode = document.createElement( 'a' ); var liNode = document.createElement( 'li' ); aNode.appendChild( document.createTextNode( 'CategoryTree' ) ); aNode.setAttribute( 'href' , '[[w:en:Special:CategoryTree]]' ); liNode.appendChild( aNode ); liNode.className = 'plainlinks'; node.appendChild( liNode ); } catch(e) { // lets just ignore what's happened return; } } addOnloadHook( AppendCategoryTreeToSidebar );
このコードのより一般的なバージョンはManual:Interface/Sidebar#content of sidebar and toolbox (javascript)で見つかります。
[edit] Webリンク
- READMEファイル
- SVNの拡張機能モジュール
- 搭載されるバージョンのダウンロードエリア (搭載される代替バージョン). (NOTE: 搭載されるバージョンは最新ではないことがあります!)
- Bug Search
|
|
この拡張機能はWikimediaの一つもしくは複数のwikiで利用されています。このことは拡張機能が安定していて高いトラフィックのウェブサイトでも十分に動作することを意味します。MediaWiki.orgにインストールされている拡張機能の全リストはバージョン情報ページで見ることができます。 |
| 言語: | English • Français • 日本語 • Português do Brasil • Русский |
|---|
- Tag extensions/ja
- Extensions in Wikimedia version control/ja
- SkinTemplateTabs extensions/ja
- OutputPageParserOutput extensions/ja
- ArticleFromTitle extensions/ja
- LanguageGetMagic extensions/ja
- ParserFirstCallInit extensions/ja
- All extensions/ja
- Extensions used on Wikimedia/ja
- Category extensions/ja
- Tree extensions/ja
- Ajax extensions/ja
