社区中心
注册
Advertisement
此擴充功能在Fandom並未預設啟用,但可聯絡Fandom申請使用。

動態頁面列表DPL,全名Dynamic Page List) 是一個有效的MediaWiki擴充功能,它讓你可以用不同的條件(如特定分類或包括特定模板)來建立頁面列表。

動態頁面列表一般用在展示特定分類中的頁面。

因為它的作用強大,DPL會增加伺服器的負荷,可能會明顯地讓使用它的wiki的頁面讀取速度變慢。因此,要使用它的話,強烈建議閱讀本文以下的有效地使用DPL段落。

動態頁面列表擴充功能需要線上申請才能啟用。

DPL的優點[]

DPL

DPL是非常有效的,因為可以用很少的代碼,即可自動建立長而詳細的資訊列表。

  • 根據不同的參數來建立動態頁面列表,可根據頁面標題、命名空間、分類、包括模板等不同的條件。
    • 例如,你可以建立一個列表,是在其中兩個分類,但不在第三個分類的頁面。
  • 可以包括頁面的一些訊息,例如最後編輯日期、最後編輯用戶等等。
  • 可以用表格、分類以及其他列表形式來展示內容
  • 在建立列表時可以在列表項目之間插入不同的自訂格式、樣式。

如何在一個頁面加入DPL[]

DPL的語法開始於<dpl>標籤,結束於</dpl>標籤,在兩個標籤中間,使用者可以放置許多的參數。

想要按自己的需求自訂,也可以使用{{#dpl: .... }}這樣的代碼。

以下為基礎的DPL例子:

<DPL>
category=角色
</DPL>

這樣就會產生一個包含所有「角色」分類中的頁面的列表。

這可以進一步地修改為:

<DPL>
category=角色
notcategory=第1季角色
namespace=角色
mode=ordered
</DPL>

這樣會顯示所有命名空間為「角色」,位於「角色」的分類,但不在「第1季角色」分類中的頁面列表。該列表會以HTML的<ol>(排序列表)的方式顯示,相對於預設的<ul>(列表)。

關於所有DPL參數的詳細介紹,可參見這裡.

有效地使用DPL[]

DPL可能會造成伺服器沉重的負擔,讓整個網站速度變慢,以下有幾個提示來面對這個問題:

首先,思考是否有必要使用DPL。如果只是因為它很「酷」就想使用它,你可以選擇其他很酷的功能來使用,像是投票日曆嵌入RSS feed嵌入影片等等。

其次,如果你認定DPL的確是最適合的工具,那麼讓DPL缓存內容!只要將以下這行放入你的DPL中:

allowcachedresults=true

使用其他工具來達成DPL一般功能[]

建立簡單的分類列表
  • 要建立簡單的分類列表,你可以使用 <categorytree> 標籤 (英文說明文檔)。例如,要獲得分類「中文說明」的頁面列表,使用以下代碼:
<categorytree mode="pages" hideroot=on>中文說明</categorytree>
隨機內容
建立複雜的列表(例如分類間插入格式等等)
進階使用
  • 關於更多進階用途,請先確定沒有其他專門的擴充功能可以使用之後,再選擇使用DPL,例如使用日曆擴充功能而不是用DPL來建立日曆。如果你不確定或沒找到你需要的擴充功能,請聯絡我們,我們會很樂意提供協助。

要避免的事[]

不要把DPL用於:

  • 「隨機數」(randomcount)功能 - 無法緩存
  • 把DPL用在全站都在使用的模板上,這會造成整個wiki都出現背景的DPL要求
  • 大量的查詢 - 如果顯示20個結果已經足夠,就不要讓它顯示500個。
  • 在同一個頁面裡使用兩次以上的DPL。

可能會遇到的問題[]

  • 如果你在DPL看到奇怪的顯示,試著將語法?action=purge(或是 &action=purge ,如果 ? 已經使用過)放到你的網址的後面再重新載入該網址。
    • 這可以在DPL後端代碼更新時修復問題,但是伺服器緩存不會更新。
Advertisement