Jump to content

Extension:DynamicPageList4

From mediawiki.org
This page is a translated version of the page Extension:DynamicPageList4 and the translation is 76% complete.
MediaWiki 拡張機能マニュアル
DynamicPageList4
リリースの状態: 安定
実装 タグ , パーサー関数
説明 Create lists of other articles based on their category, namespace, title, references or template usage and include contents or arguments of template calls of those articles into your page.
作者 Universal Omega
最新バージョン 4.0.5 (2026-02-05)
MediaWiki 1.44.0+
データベースの変更 はい
Composer universal-omega/dynamic-page-list4
  • $wgDPLQueryCacheTime
  • $wgDPLFunctionalRichness
  • $wgDPLAllowUnlimitedCategories
  • $wgDPLCategoryStyleListCutoff
  • $wgDPLAllowedNamespaces
  • $wgDPLMaxCategoryCount
  • $wgDPLMaxResultCount
  • $wgDPLRunFromProtectedPagesOnly
  • $wgDPLRecursiveTagParse
  • $wgDPLAllowUnlimitedResults
  • $wgDPLRecursivePreprocess
  • $wgDPLMaxQueryTime
  • $wgDPLMinCategoryCount
  • $wgDPLOverrideParameterDefaults
  • $wgDPLAlwaysCacheResults
ライセンス GNU 一般公衆利用許諾書 3.0 以降
ダウンロード
DynamicPageList4 Manual
translatewiki.net で翻訳を利用できる場合は、DynamicPageList4 拡張機能の翻訳にご協力ください
これは Extension:DynamicPageList3 の継続/書き換え版です。 コードベースを全面的に作り直し、コードとデータベースの速度を大幅に改善したうえ、以前のバージョンとの完全な後方互換性を維持するよう設計されています。 複数のバグ修正や、以前のバージョンよりも多くの機能が追加されており、例えば MediaWiki の SelectQueryBuilder への変換により拡張機能の保守性とセキュリティーの向上を図っています。

拡張機能DynamicPageList4はMediaWikiのためのレポートツールで、様々なフォーマットと詳細でカテゴリのメンバーや交差点をリストアップします。 完全なドキュメントは、マニュアルを参照してください。

基本的な選択パラメータのセットで起動すると、DynamicPageList4は1つまたは複数のカテゴリに分類されたページのリストを表示します。 また、著者、名前空間、日付、名前のパターン、テンプレートの使用、他の記事への参照などの要素に基づいて選択されることもある。 アウトプットの形は様々で、中には厳選された記事の要素を取り入れたものもあります。

この拡張機能は、パーサ関数{{#dpl: .... }}またはパーサタグ‎<DPL>で呼び出される。 ある機能のウィキメディア互換の実装は、‎<DynamicPageList> で呼び出すことができます。

複雑なルックアップは、計算コストのかかるデータベースクエリーになる可能性があります。 しかし、既定では、すべての出力は、ページロードのたびにクエリを再実行する必要性を減らすために、1時間の期間、キャッシュされます。 マニュアルページの Other Parameters には、キャッシュを無効にして即時更新を可能にするためのパラメータについての情報が記載されています。

マニュアルと完全なドキュメンテーション
DynamicPageList4 のマニュアル
ソース コード
GitHub のソースコード
バグと機能の要望
問題と要望の追跡

インストール

設定

これらは、DPL4 の構成設定とその既定値です。

これらを変更するには、拡張機能をwikiに含める前に定義されていることを確認します。

設定 既定 説明
$wgDPLAllowedNamespaces [] 既定では、DPL4の初期化時にすべての既存の名前空間が使用されます。 名前空間定数の配列を設定すると、DPL4 はそれらの名前空間でのみ動作するように制限されます。
$wgDPLAllowUnlimitedCategories false true を設定すると、$wgDPLMaxCategoryCount を無視し、無制限にカテゴリを許可します。 クエリ内のカテゴリが多すぎると、サーバーの速度低下やサーバーダウンに繋がるおそれがあるので注意してください。
$wgDPLAllowUnlimitedResults false true に設定すると、$wgDPLMaxResultCount を無視して無制限に結果を取得します。 取得する結果の件数が多すぎると、ページの読み込みが遅くなったり失敗するおそれがあるので注意してください。
$wgDPLAlwaysCacheResults false 'allowcachedresults' を無視してパーサーキャッシュを常に有効にするには、これを true に設定します。
$wgDPLCategoryStyleListCutoff 6 Maximum number of items in a category list before being cut off.
$wgDPLFunctionalRichness 3 利用者が使用できるパラメーターのレベルを設定します。
$wgDPLMaxCategoryCount 8 クエリで許可されるカテゴリ数の上限。
$wgDPLMaxQueryTime 10000 データベースクエリの最大許容時間をミリ秒で指定。
$wgDPLMaxResultCount 500 クエリから返される結果の上限値。
$wgDPLMinCategoryCount 0 クエリで許可されるカテゴリ数の下限。
$wgDPLOverrideParameterDefaults [] An associative array of parameter names and their override values. These values replace the default parameter values defined in ParametersData, but only if the current defaults differ.
$wgDPLQueryCacheTime 0 クエリキャッシュ時間を設定します。 クエリキャッシュは削除できません。 推奨値は30から600です。
$wgDPLRecursivePreprocess true Parser::recursivePreprocess() を使用すると内部キャッシュが保持されるため、冗長なテンプレート解析が削減されてパフォーマンスが向上します。
$wgDPLRecursiveTagParse false ‎<dpl> パーサータグを再帰的に解析し、{{PAGENAME}} のようなマジックワードなどの関数やタグを変換します。 これは {{#dpl}} パーサー関数の呼び出しに似ていますが、すべての場合において同じように動作するとは限りません。
$wgDPLRunFromProtectedPagesOnly false trueに設定すると、DPL4は保護されたページからのみ実行します。 これはウィキの管理者が悪意のある利用者によって高負荷なクエリが作成される問題を抱えている場合に推奨されます。

グローバル変数 $wgNonincludableNamespaces は、DynamicPageList4 の動作に影響します。

このため、ここで設定された名前空間の内容は DynamicPageList4 で出力されません。

$wgDPLMaxResultCountSQL クエリに対する LIMIT です。 ただし、includematch などの一部の DynamicPageList4 のクエリ引数は SQL クエリの後に適用されるため、ここで得られる結果は誤解を招く可能性があります。

機能の制限

DynamicPageList4 は多くの機能がありますが、functional richness(機能の豊富さを示す) レベルの値に基づいて機能が制限されます。

一部の機能は CPU またはデータベースへの負荷が高くなるおそれがあるため、使用を控えたほうがよいでしょう。

  • $wgDPLFunctionalRichness = 0 – ウィキメディアのDynamicPageList (Intersection)と同等
  • $wgDPLFunctionalRichness = 1 – 書式設定パラメータを追加
  • $wgDPLFunctionalRichness = 2 – テンプレートとページリンクにパフォーマンスと同等の機能を追加
  • $wgDPLFunctionalRichness = 3 – より高負荷なページ参照読み込み機能と正規表現クエリを許可
  • $wgDPLFunctionalRichness = 4 – 公開ウェブサイトでは非推奨。 テスト・開発用のデバッグ・パラメータを含む。

使用法

DPLの機能拡張

拡張動的ページ一覧は、パーサ関数{{#dpl: .... }}、またはパーサ拡張タグ‎<DPL>...‎</DPL>を使用することで呼び出されます。

一般的な使用法と呼び出し構文に関するマニュアルページ選択の基準に関する DPL 引数も参照してください。

後方互換性

ウィキメディアのDPL拡張と互換性のある機能は、‎<DynamicPageList>...‎</DynamicPageList>で呼び出すことができます。

詳細は、互換性マニュアル ページを参照してください。


使用理念と概要

With the assumption there are some articles written about countries those articles will typically have three things in common:

  • 共通のカテゴリに属することになる
  • They will have a similar chapter structure, i.e., they will contain paragraphs named 'Religion' or 'History'
  • They will use a template which is used to present highly structured short data items ('Capital', 'Inhabitants', ..) nicely (e.g., as a wikitable)

国別のレポート作成

もし、ある宗教を信仰している国があれば、categorylinkstoのパラメータで簡単に報告書を作成することができます。

{{#dpl:
category=countries
|linksto=Pastafarianism
}}

DynamicPageList4 は、次のことを可能にします:

  • すべての記事のリストを作成する(または無作為に抽出する)
  • 記事のメタデータを表示する(人気度、最終更新日、...)。
  • 記事の1章または複数章を表示する('transclude'コンテンツ)
  • 共通テンプレートに渡されるパラメータ値を表示します。
  • 記事を適切な順序で並べる
  • 結果をソート可能な表で表示する
  • 複数列の出力を生成する

どのような手順が必要なのでしょうか?

リストアップしたい記事を探す。

  • Select by a logical combination (AND, OR, NOT) of categories
  • 記事を割り当てるべきカテゴリの数の範囲を指定する
  • Select by a logical combination (AND, OR, NOT) of namespaces
  • Define a pattern which must match the article's name
  • Name a page to which the article must or must not link
  • Name a template which the article must or must not use
  • Name a text pattern that must occur within external links from a page
  • Exclude or include redirections
  • Restrict your search to stable pages or quality pages ("flagged revisions")
  • Use other criteria for selection like the author, date of last change, etc.
  • Define regular expressions to match the contents of pages you want to include

Order the result list of articles according to

  • Article title
  • Article display title
  • 記事のサイズ
  • Date of last change
  • Last user to make an edit

Define attributes you want to see

  • 記事名
  • Article namespace
  • 記事のサイズ
  • Date of last change
  • Date of last access
  • Last user to make an edit

Define contents you want to show

  • 全文
  • 特定のセクションの内容(見出しで識別されます。)
  • テキスト部分(記事中の特殊なマーカータグで定義されているもの)
  • テンプレート呼び出しの値
  • カスタムテンプレートを使って出力を表示する

出力形式を定義します。

  • 既定の出力のヘッダーとフッターを指定する
  • 順序付きリスト、非順序付きリストを使用する
  • テーブルを使用
  • Format table fields individually by applying templates to their content
  • カテゴリ形式のリストを使用する
  • Truncate title or contents to a certain maximum length
  • 記事またはそのセクションの1つ以上へのリンクを追加する

考慮すべき点

パフォーマンス

DPL4's code execution and database access are typically fast for category and article lookups.

しかし、緩いLIKEやREGEXPマッチパラメータを使用したり、大きなデータセットを要求すると、データベースアクセス時間が長くなることがあります。

また、パーサーの時間も考慮する必要があります。

例えば、画像結果のクエリーを表示するテンプレートに入れれば、それぞれにパーサーのメディア変換が行われることになる。

このため、メディア変換1回につき2MBのRAMをすぐに食いつぶしてしまうことがあります。

It is recommended to configure the following configuration options:

  • $wgDPLMaxQueryTime']allows configuration of the max execution length for queries, in milliseconds
  • $wgDPLQueryCacheTimeallows configuration of the query cache. It also supports PoolCounter to limit query concurrency.

関連項目

参考資料

DynamicPageList4 は、ここでは説明しきれないほどの多くの機能が実装されています。

すべての引数に関する文書を含む完全なマニュアルが用意されています。