コミュニティセントラル
ヘルプ
このヘルプには更新、または翻訳されていないコンテンツがあります。どなたでも翻訳にご協力いただくことができます。
原文 : w:Help:DynamicPageList
この拡張機能は通常は有効ではありませんが、リクエストによって有効化できる場合があります。

ダイナミックページリスト(DPL)拡張機能とは、強力なMediaWikiの拡張機能であり、カテゴリの分類や特定のテンプレートの利用などの様々な基準を用いてページのリスト作成を許可します。

DPLは主にカテゴリの組み合わせを表示する簡単なページリストに使用されます(例えば、カテゴリ:エピソード カテゴリ:スタブ)。

影響力が大きいため、DPLはサーバーロードを増やし使用するFandomユーザーのページ読み込みを大幅に遅らせることがあります。そのため使用にあたってはこのページの「DPLの効率的な使用」セクションを読むことを強く推奨します。

DPLの利点

DPL

短いコードで、手動だと時間がかかるような長く詳細な情報リストを作成できるため、DPLは非常に効率的です。

  • ページ名やカテゴリの所属先、テンプレート使用など様々なパラメータ(変数)をもとにページのダイナミック・リストを作成します。
    • 例えば、ふたつのカテゴリの属しているが3つには属していないすべてのページのリストを作成できます。
  • 最終編集日や最終編集者などのページ情報も含められる。
  • リストを表のリストや箇条書き、番号付されたリスト、カテゴリページのスタイル、インラインを表示できます。
DPL

短いコードで、手動だと時間がかかるような長く詳細な情報リストを作成できるため、DPLは非常に効率的です。

  • 独自のスタイルを持ち、挿入された中間アイテムを形成するリストを作成できます。

利用の基礎

ダイナミックページリストは、<dpl>というタグをを使います。<dpl>ではじまり、その下に抽出条件を指定、その後</dpl>で閉じます。このタグ内でユーザーは必要に合わせてカスタマイズするための幅広いパラメータを加えることができます。また、代わりに {{#dpl: .... }} も有効です。

これは非常に基本的なDPLクエリの例です:

<DPL>
    category = Characters
</DPL>

上記のクエリはカテゴリ Charactersに属しているすべてのページを抽出します。

さらにカスタマイズ可能です:

<DPL>
    category    = Characters
    notcategory = Season 1 Characters
    namespace   = Character
    mode        = ordered
</DPL>

このクエリを使えばCharacterの名前空間に有るカテゴリ:Charactersあるいはカテゴリ:Season 1 Charactersにあるすべてのページを表示できます。このリストはまた、デフォルトの<ul>の代わりに<ol>として入力されます。

包括的なDPLパラメータのリストはこちら(英語)で確認できます。そしてこの拡張機能に対するさらなる情報についてはMediaWiki.org(英語)をご覧下さい。

DPLの効率的な使用

DPLは重大なサーバー負荷を引き起こすことがありサイト全体を遅くしてしまいます。以下はいかにこの問題を乗り切るかについてのヒントです。

初めに、そのDPL使用が必要であるかお考え下さい。その理由が単に使ってみたいからというようなものであれば、投票カレンダーRSSフィードの埋め込みビデオ埋め込みなどの同じくらい便利な機能をそこで使用してみてください。

次に、DPLが最良の手段であると決めたなら、DPLに結果を保存させましょう!DPLクエリに下記の文を追加するだけです:

allowcachedresults = true

基本的なDPL使用のためのツール

簡単なカテゴリリストの作成
簡単なカテゴリリストを作るには<categorytree>タグを使いましょう(ドキュメンテーション<英語>)。例えば、カテゴリ「Community」にある全ページをリストするには下記のとおりです:
<categorytree mode="pages" hideroot=on>Community</categorytree>
ランダムコンテンツ
RandomSelection(英語)を使用してください。
高度な使用
さらに高度な使用については、より特化した拡張機能がDPLの使用以前は無効であることを確認してください。つまり、DPlでカレンダーを作成する代わりに使用可能なカレンダーの拡張機能のひとつを利用してください。必要な拡張機能について自信がなかったりわからなかったりしたらお問い合わせください。喜んでお手伝いいたします。

避けるべきこと

DPLを下記の目的で使用しないでください:

  • 「randomcount」を使った機能 - キャッシュできません
  • サイト中で使用されているテンプレートにDPL - Fandom中に隠しDPLが作成されます
  • 巨大なクエリ - 20で充分なときに500件表示
  • ひとつのページにふたつ以上のクエリ

基本的な問題への対処法

  • DPLから変わった出力があった場合、 ?action=purge(あるいは ? がすでに使用されている場合、 &action=purge )をURLの最後につけてページをリロードしてみてください。
    • DPLの最終コードが更新されたことで解決できますが、サーバーキャッシュは消去されません。

指定できるパラメータ

以下のパラメータを指定することで、リストの作成が出来ます。ただし、中には「not」と付いている、否定の意味を持つものもあります。この種類のパラメータは、抽出する数が膨大になるので、指定する際には、他のパラメータといっしょに指定するようにしてください。

抽出する記事の指定

category
カテゴリを指定します。「|」を使うと、複数併記出来ます。
categorymatch
カテゴリをパターンマッチを使って指定します。この指定では、「%」はどんな文字にでも置き換えられます。「Europe%」とすると、「Europe」や「Europeans」を指定することになります。
categoryregexp
正規表現でカテゴリを指定します。
notcategory
抽出しないカテゴリを指定します。ここでは、併記は出来ません。複数ある場合は、その分だけ条件を指定して下さい。
notcategorymatch
「%」のパターンマッチを使って抽出しないカテゴリを指定します。
notcategoryregexp
正規表現を使って抽出しないカテゴリを指定します。
categoriesminmax
「categoriesminmax=最小数,最大数」という指定をします。既に指定されているカテゴリと、その数だけ他のカテゴリに属するデータを抽出します。
例えば、「category=Africa」とカテゴリが指定され、「categoriesminmax=3」と指定すると、カテゴリが"Africa"に属しているものと、あと他に最低二つのカテゴリに属しているものを抽出することが出来ます。
「最大数」はこの逆で、「category=Africa」とカテゴリが指定され、「categoriesminmax=,3」とすると、カテゴリが"Africa"に属するものと、他に最大二つまで属しているカテゴリがある記事を抽出します。「categoriesminmax=,1」とすると、指定するカテゴリにのみ属している記事だけを抽出します。
namespace
抽出する記事の名前空間を指定します。「|」を区切り文字として複数併記出来ます。ここは、大文字小文字を区別します。このパラメータを「namespace=」とだけすると、標準名前空間のみになります。
notnamespace
抽出しない名前空間を指定します。ここでは、併記は出来ません。複数ある場合は、その分だけ条件を指定して下さい。
linksfrom
記事名を指定して、ここで指定した記事のリンク先に相当する記事を抽出します。「|」を使うと、複数併記出来ます。
openreferences
linksfromの機能を拡張します。「openreferences=yes」とすると、通常記事が存在しているもののみ抽出しますが、この場合は記事が存在しなくても抽出します。このパラメータは、リダイレクトやカテゴリの指定と衝突するので、利用には十分注意して下さい。
notlinksfrom
指定した記事をリンク先としない記事を抽出します。「|」を区切り文字として複数併記出来ます。
linksto
指定した記事にリンクしている記事を抽出します。「|」を区切り文字として複数併記出来ます。
notlinksto
指定した記事にリンクしていない記事を抽出します。「|」を区切り文字として複数併記出来ます。このパラメータを使うと、名前空間を指定しない場合は、標準名前空間だけが抽出されます。
uses
指定したテンプレートを使っている記事を抽出します。「|」を区切り文字として複数併記出来ます。
notuses
指定したテンプレートを使っていない記事を抽出します。「|」を区切り文字として複数併記出来ます。
createdby
指定したユーザーによって初版を作成した記事を抽出します。「細部の編集」かどうかを判断することは出来ません。
notcreatedby
指定したユーザーによって初版が作成されていない記事を抽出します。
modifiedby
指定したユーザーによって編集された記事を抽出します。これは、createdbyを最初の編集とみなすため、初版の作成も含んだ記事を抽出します。
notmodifiedby
指定したユーザーによって編集されていない記事を抽出します。
lastmodifiedby
指定したユーザーが最後に編集した記事を抽出します。
notlastmodifiedby
指定したユーザーが最後に編集していない記事を抽出します。
title
抽出する記事を指定します。通常はこの指定はDPLの中では無意味ですが、テンプレートで使うと有用になります。
titlematch
「%」を使うことで、抽出する記事名をパターン指定することができます。例えば、「%foo%」とすれば、記事名に"foo"を含むものを抽出することが出来ます。
titleregexp
正規表現を使って、抽出する記事名を指定してすることが出来ます。
nottitlematch
「%」を使うことで、抽出しない記事名をパターン指定することができます。
nottitleregexp
正規表現を使って、抽出しない記事名を指定することが出来ます。
includematch
Perl風の正規表現によって指定した文字列がページ中に含まれている記事を抽出します。
includenotmatch
Perl風の正規表現によって指定した文字列がページ中に含まれていない記事を抽出します
lastrevisionbefore
最後の編集が指定した時刻以前の記事を抽出します。値は12桁の数字になります。「2007年11月30日14時30分」であれば、"200711301430"になります。ここには、"2007/11/30--14:40"といった風に区切り文字を含めることも出来ます。
firstrevisionsince
最初の編集が指定した時刻以降の記事を抽出します。値は12桁の数字になります。
allrevisionsbefore
指定した時刻以前に記事が編集されたものの、全ての版を表示します。
allrevisionssince
指定した時刻以降に記事が編集されたものの、全ての版を表示します。
articlecategory
指定したカテゴリの記事が持っているノートページを抽出します。
includesubpages
通常はサブページも含んで記事を抽出しますが、このパラメータに"no"か"false"を指定すると、サブページを抽出しなくなります。指定するパラメータ前述の二つのみになります。
redirects
リダイレクトの表示を指定します。通常はリダイレクトを含まないで記事を抽出しますが、このパラメータに"include"を指定すると、リダイレクトを含んで抽出します。また、"only"を指定すると、リダイレクトだけを抽出します。指定するパラメータは"include"、"only"と、デフォルトで指定されている"exclude"の三つになります。
minoredits
「細部の編集」を抽出するかどうかを指定します。ordermethodで"firstedit"、"lastedit"を使う場合、このパラメータに"exclude"を指定すると、細部の編集の記事を判断に利用しません。"include"を指定すると、細部の編集を含んだ判断になります。このパラメータを使わない場合、デフォルトは"include"になります。

出力の内容の制限

count
表示する記事数を指定します。指定しない場合は、デフォルトは500になります。正の整数のみ指定可能です。
offset
指定した記事数を、通常の記事数の並びよりスキップして表示します。例えば、「offset = 10」とした場合は、通常の記事数より10飛ばして表示します。指定しない場合は、デフォルトは0になります。正の整数のみ指定可能です。
randomcount
表示される記事数のうち、指定された記事数をランダムに表示します。例えば、表示される記事数が10であり、「randomcount = 3」と指定した場合は、その記事数よりランダムに3つ表示して表示します。正の整数のみ指定可能です。
randomseed
指定した整数を元にしてrandomcountの元になるデータを作成します。ここにマジックワードを指定するなどすると、例えば、日や月に基づいたrandomcountを作ることが出来ます。
distinct
表示する記事の重複を許可するかどうかを指定します。このパラメータに取る値は"true"、"false"、"strict"の三つです。デフォルトは"true"で、重複した記事を表示しません。"false"にすると、表示します。linkstoやlinksfromを併用すると同じページが表示されますが、この値を"strict"にすると、これを回避出来ます。
ignorecase
通常の指定はアルファベットの大文字小文字を区別しますが、このパラメータの値を"true"にすると、区別をしません。この指定が有効なのは、linksto、uses、titlematch、titleregexpのみになります。
skipthispage
DPLクエリを含むページを表示するかどうかを指定します。取る値は"no"だけで、これを指定すると、ページそのものを表示します。

出力の順序

ordermethod
出力する順序を指定します。「,」を区切りにして、複数指定出来ます。
  • categoryadd - 最近カテゴリに加えられたものから表示します。これを使う場合は、categoryパラメータを使ったカテゴリの指定が必要になります。
  • counter - 閲覧数による順序で表示します。
  • size - ウィキのソースによる記事のサイズによる順序で表示します。
  • firstiedit - 初版作成の順序で表示します。
  • lastedit - 最新版作成の順序で表示します。
  • pagetouched - テンプレートの内容の変化やページの保護などを含んだ時系列の順序で表示します。
  • pagesel - linksfromやlinkstoの順序で表示します。この値はlinksfromやlinkstoを含んだ指定でないと意味がありません。
  • title - 記事タイトルの順序で表示します(デフォルト)。
  • titlewithoutnamespace - 名前空間の順序で表示します。
  • category,firstedit - カテゴリの順序でかつ初版作成の順序で表示します。
  • category,lastedit - カテゴリの順序でかつ最新版作成の順序で表示します。
  • category,pagetouched - カテゴリの順序でかつページに対する変化の順序で表示します。
  • category,sortkey - (マニュアルに表記無し)
  • user,firstedit - 利用者名の順序でかつ初版作成の順序で表示します。
  • user,lastedit - 利用者名の順序でかつ最新版作成の順序で表示します。
order
順序を昇順にするか降順にするかを指定します。値はdescending、ascendingになります。ascendingがデフォルトで指定されています。
ordercollation
指定した言語の形式で順序を判断します。

出力する形式

mode
以下の指定をすることで、出力形式の基本を作ります。
  • unordered - HTMLタグで言うところのulタグで表示します。デフォルトはこれを使います。
  • ordered - HTMLタグで言うところのolタグで表示します。
  • none - 特に形式を指定せず、記事を<br>で指定します。
  • inline - inlinetextのパラメータで指定された形式で表示します。
  • category - カテゴリの表示形式で表示します。これを使うには、ordermethodのパラメータで"title"、"titlewithoutnamespace"、"category,title"、"user,title"のいづれかの指定が必要になります。
  • userformat - 表示形式を利用者に任せます。

modeでinlineを指定した場合

inlinetext
指定すると、表示がブロックではなくインラインになります。デフォルトでは' - 'を指定します。指定する形式は、MediaWikiのウィキ文法を利用出来ます。

modeでUserformatを指定した場合

listseparators
下記formatを参照してください。
format
フォーマットを指定します。形式は、「format=全リストの最初,各リストの最初,各リストの最後,全リストの最後」になります。ここでは、以下の変数が使えます。
  • %PAGES% - そのカテゴリにある記事数を表示します。resultsheaderとresultsfooterのパラメータの指定が必須です。
  • %NR% - 記事順序の番号を表示します。
  • %PAGE% - 名前空間を含む記事名を表示します。
  • %PAGESEL% - linksfromやlinkstoの指定がある場合に、その元となった記事名を表示します。
  • %TITLE% - 名前空間を含まない記事名を表示します。
  • %NAMESPACE% - その記事名の名前空間を表示します。
  • %COUNT% - 閲覧数を表示します。addpagecounterのパラメータをtrueに設定する必要があります。
  • %SIZE% - 記事サイズを表示します。addpagesizeのパラメータをtrueに設定する必要があります。
  • %SIZEFS% - 記事サイズを元にしたフォントサイズを表示します。
  • %COUNTFS% - 閲覧数を元にしたフォントサイズを表示します。
  • %COUNTFS2% - 閲覧数を元にした平方根によるフォントサイズを表示します。
  • %DATE% - lasteditなどを設定した場合の日付を表示します。addeditdateのパラメータをtrueに設定する必要があります。userdateformatのデータ設定に基づいて表示します。
  • %USER% - 最後に編集した人の利用者名を表示します。adduserのパラメータをtrueに設定する必要があります。
  • %CONTRIBUTOR% - 投稿した利用者名を表示します。addcontributionのパラメータをtrueに設定する必要があります。
  • %CONTRIBUTION% - 変更したバイト数を表示します。addcontributionのパラメータをtrueに設定する必要があります。
  • %CONTRIB% - "*"を使って、変更された量を表示します。addcontributionのパラメータをtrueに設定する必要があります。
  • %CATLIST% - その記事が属しているカテゴリへのリンクをパイプ"|"で区切って全て表示します。
  • %CATNAMES% - その記事が属しているカテゴリの名前をコンマ","で区切って全て表示します。
  • %REVISION% - 記事の版を表示します。版に基づいた抽出をしている際に有効です。
secseparators
multisecseparators
dominantsection
table
テーブル形式で出力します。
tablerow
テーブル形式で出力するための行を設定します。tableパラメータが必須です。
headingmode
複数データ出力の際のヘッダを設定します。以下の値が利用できます。
  • none - ヘッダを使いません。デフォルトの設定です。
  • unordered - HTMLタグのulを利用します。
  • ordered - HTMLタグのolを利用します。
  • definition - HTMLのdlを利用します。
  • H2 - HTMLタグのh2を利用します。
  • H3 - HTMLタグのh3を利用します。
  • H4 - HTMLタグのh4を利用します。
headingcount
グループごとに記事数と一緒にテキストラインを表示するかどうかを設定します。デフォルトはfalseで、trueを設定すると有効になります。headingmodeの設定が必須です。
listattr
HTMLで作成したリストの属性を設定します。listattr= 属性1="属性名1" 属性2="属性名2"という設定を行います。
itemattr
HTMLで作成したリストの個々の値の属性を設定します。itemattr= 属性1="属性名1" 属性2="属性名2"という設定を行います。
hlistattr
headingmodeでリストを作成した際の、リスト全体の属性を設定します。
hitemattr
headingmodeでリストを作成した際の、個別のデータの属性を設定します。
userdateformat
addeditdate、addpagetoucheddate、addfirstcategorydateを使って日付を表示する際のフォーマットを設定します。
shownamespace
名前空間を表示するかどうかを設定します。shownamespace=falseを設定すると、名前空間を表示しません。
escapelinks
カテゴリや画像へのリンクを表示する際にリンクのエスケープを解除します。escapelinks=falseを設定すると、画像の表示やカテゴリの設定を有効にします。
titlemaxlength
表示する記事名の文字数を設定します。表示する記事名が長くなると、'...'と付け加えます。
replaceintitle
formatで%TITLE%を使って表示した際に文字を置き換えます。replaceintitle=検索したい語,置き換える語という文法を使います。正規表現を利用できます。
columns
出力する列の数を設定します。正の整数のみ指定可能です。
rows
出力する行の数を設定します。正の整数のみ指定可能です。
rowsize
出力する行の幅を設定します。正の整数のみ指定可能です。
rowcolformat
行、列のフォーマットを設定します。

出力する内容の定義

ヘッダフッタの定義

resultsheader
出力するリストのヘッダを定義します。ウィキ文法が使えます。また、formatの変数も使えます。
resultsfooter
出力するリストのフッタを定義します。ウィキ文法が使えます。また、formatの変数も使えます。
oneresultheader
記事がひとつしかないときのヘッダを定義します。ウィキ文法が使えます。
oneresultfooter
記事がひとつしかないときのフッタを定義します。ウィキ文法が使えます。
noresultsheader
抽出される記事のデータが無い場合のヘッダを定義します。
noresultsfooter
抽出される記事のデータが無い場合のフッタを定義します。

出力するメタデータの定義

addcategories
出力結果の中にカテゴリを含めるかどうかを定義します。
addpagecounter
出力結果の中に閲覧数を含めるかどうかを定義します。
addpagesize
出力結果の中にページサイズを含めるかどうかを定義します。
addcontribution
出力結果の中に利用者の投稿サイズを含めるかどうかを定義します。デフォルトはfalseですが、trueにすると、有効になります。
adduser
出力結果の中に利用者を含めるかどうかを定義します。デフォルトはfalseですが、trueにすると、有効になります。
addauthor
出力結果の中に初版投稿者を含めるかどうかを定義します。デフォルトはfalseですが、trueにすると、有効になります。
addlasteditor
出力結果の中に最終版投稿者を含めるかどうかを定義します。デフォルトはfalseですが、trueにすると、有効になります。
addpagetoucheddate
出力結果の中に記事の操作の日時を含めるかどうかを定義します。デフォルトはfalseですが、trueにすると、有効になります。
addeditdate
出力結果の中に初版または最終版の日時を含めるかどうかを定義します。デフォルトはfalseですが、trueにすると、有効になります。
addfirstcategorydate
出力結果の中に初めてカテゴリに加えられた日時を含めるかどうかを定義します。デフォルトはfalseですが、trueにすると、有効になります。

出力結果への記事内容の出力

include
出力結果の中に記事のデータそのものを含めます。
includepage
includeと同じです。
includemaxlength
記事データを最大どれくらい出力するかを定義します。

その他

goal
ページの出力を変更します。pageとcategoriesを値として持ちますが、デフォルトでpagesが有効で、categoriesを設定すると、出力が見えなくなります。これは、記事が属しているカテゴリにいくつの記事があるかを数えるために使われます。
allowcachedresults
キャッシュのデータベースからの出力を許可します。このパラメータにtrueを設定すると、有効になります。
reset
ウィキの機能を出力から取り除きます。categories、templates、images、links、allの五つのキーワードのみを使え、allをのぞくそれぞれが指定した分だけ機能を取り除きます。複数の機能を指定する場合は、カンマで区切ります。allを指定した場合は、全部が取り除かれます。
eliminate
ウィキの機能を出力から取り除きます。categories、templates、images、links、allの五つのキーワードのみを使え、allをのぞくそれぞれが指定した分だけ機能を取り除きます。複数の機能を指定する場合は、カンマで区切ります。allを指定した場合は、全部が取り除かれます。
debug
デバッグのレベルを設定します。0から5の値を設定できます。
  • 0 - 何も出力しません。
  • 1 - エラーのみ出力します。
  • 2 - 警告も含めて出力します。デフォルトの設定です。
  • 3 - SQLクエリを含む詳細なメッセージを出力します。
  • 4 - 内部利用のみです。
  • 5 - テキストを表示するかわりにウィキテキストを表示します。

自分のページのサブページを出力する

<dpl>
titlematch=Wikia%
namespace=利用者
mode=unordered
</dpl>

プロジェクト内の記事の更新状況を表示する

<div style="font-size:70%;">
<dpl>
columns=2
namespace=
ordermethod = lastedit
order = descending
addeditdate = true
count=12
adduser=true
</dpl>
</div>
解説
columns - 横二つに分割することで空白を減らす。
namespace - 標準名前空間対象
ordermethod - 最後に編集された日時を基に並べる
order - 標準では古→新になるので、このオプションで新→古に変更
addeditdate - 編集された時刻の表示を追加
count - 表示記事数を指定。見栄えの関係もあるので、columsを指定している場合は指定した値の倍数が良い。
adduser - 編集を行なったユーザ名を追加

ヘルプをランダムに出力する

ヘルプ (Help) 名前空間の記事を、上から300バイト出力します。ページをリロードするたびに中身が変わります。

<dpl>
resultsheader=今日のヘルプ
shownamespace=false
nottitlematch=チュートリアル%|FAQ%|目次%|トップページ%
namespace=ヘルプ
randomcount=1
include=*
includemaxlength=300
reset=templates,
</dpl>

関連情報

その他のヘルプとフィードバック