Extension:动态页面列表
DynamicPageList 发行状态: 稳定版 |
|
---|---|
实现 | 标签 , 解析器函数 |
描述 | 輸出一個最新進入分類項目的符號列表,或多個分類的交集。 |
作者 | IlyaHaykinson and Amgine |
最新版本 | Continuous updates |
兼容性政策 | 快照跟随MediaWiki发布。 master分支不向后兼容。 |
MediaWiki | 1.23+ |
PHP | 5.4+ |
数据库更改 | 否 |
许可协议 | GNU通用公眾授權條款2.0或更新版本 |
下載 | |
示例 |
|
|
|
<DynamicPageList> |
|
季度下載量 | 0 |
翻译DynamicPageList扩展 | |
問題 | 开启的任务 · 报告错误 |
动态页面列表扩展讓wiki用户建立頁面列表,并将其列入一组类别。
起源
它最初是为了維基新聞开发的。目前,维基新闻的大多数语言项目(詳见n:Wikinews:DynamicPageList)、Meta、MediaWiki.org 和其他一些小型项目都已有安装。 由于性能问题,它不会再安装到任何维基媒体的wiki上。
此扩展以前称为DynamicPageList/old,后来称为Intersection。您可能还会对拥有更多功能的DynamicPageList3 感兴趣。
安装和设置
安裝
- 下载文件,并将解压后的
intersection
文件夹移动到extensions/
目录中。
开发者和代码贡献人员应从Git安装扩展,输入:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/intersection - 将下列代码放置在您的LocalSettings.php 的底部:
wfLoadExtension( 'intersection' );
- 完成 – 在您的wiki上导航至Special:Version,以验证已成功安装扩展。
配置
该扩展还支持几个配置变量。通常情况下,你不会想更改默认值,但如果你想更改,可以在require_once行之后将它们添加到 "LocalSettings.php "中。以下是支持的配置变量及其默认值:
# Configuration variables. Warning: These use DLP instead of DPL
# for historical reasons (pretend Dynamic list of pages)
$wgDLPmaxCategories = 6; // Maximum number of categories to look for
$wgDLPMaxResultCount = 200; // Maximum number of results to allow
$wgDLPAllowUnlimitedResults = false; // Allow unlimited results
$wgDLPAllowUnlimitedCategories = false; // Allow unlimited categories
// How long to cache pages using DPL's in seconds. Default to 1 day. Set to
// false to use the normal amount of page caching (most efficient), Set to 0 to disable
// cache altogether (inefficient, but results will never be outdated)
$wgDLPMaxCacheTime = 60*60*24; // How long to cache pages in seconds
使用
DynamicPageList 可在维基的编辑視窗中使用XML相似的语法。参数控制了要列表的页面、顺序和显示模式。有关各個参数的信息,请参阅以下章节。例如,以下是本维基中最近移至 MediaWiki.org 的最古老的五个页面。
<DynamicPageList> category = Pages recently transferred from Meta count = 5 order = ascending addfirstcategorydate = true </DynamicPageList>
一个非常复杂的 DynamicPageList 示例:
<DynamicPageList> category=foo count=20 namespace=file addfirstcategorydate=ymd imagewidth=70 galleryshowfilesize=yes galleryshowfilename=yes imagesperrow=7 gallerycaption=Galleries! ordermethod=sortkey order=ascending mode=gallery offset=12 </DynamicPageList>
它列出了文件名空间中属于foo类别的第12页至第31页,将其格式化为图片库,并在标题中以年月日的格式标明添加到foo类别的日期、使其图片的宽度为70px
選擇頁面
category
category列出要交集的分類。DynamicPageList將會列出在每一個分類都能找到的頁面,要列出的最小和最大頁面數在擴展源代碼中被設定,你可以在分類名稱中使用魔術字,例如{{CURRENTMONTHNAME}}。
語法為category = 分類名稱
<DynamicPageList> category = Demo category = Demo 1 </DynamicPageList>
notcategory
notcategory可以限制頁面列表不在特定分類中,你可以在分類名稱中使用魔術字,例如{{CURRENTMONTHNAME}}。
<DynamicPageList> category = Demo notcategory = Demo 1 </DynamicPageList>
namespace
namespace將上面指定的頁面列表限制在特定命名空間中,使用名稱或編號指定(請參閱預設命名空間列表)。任何無效名稱將等效於主條目命名空間。
<DynamicPageList> category = Demo namespace = Help </DynamicPageList>
redirects
redirects決定是否包含重定向頁面。 该值可以是exclude(默认值,不列出重定向)、include(列出重定向)或only(不列出非重定向页面)。
<DynamicPageList> category = Demo redirects = only </DynamicPageList>
stablepages
stablepages决定了在使用Extension:FlaggedRevisions 时是否包含稳定(已标记)页面。 該值可以是 exclude(不列出)、include(列出稳定和非稳定页面。是默认值)或only(只列出稳定页面)。需要安装FlaggedRevs才能使用。
count
count限制顯示的結果數。預設情況下會顯示最近添加到分類的頁面(請參閱排序)。請注意,該擴展不會列出比擴展源代碼中所定義的最大值更多的結果。
<DynamicPageList> category = Demo count = 2 </DynamicPageList>
offset
offset从列表第一页以外的某個地方开始列表。 例如,可以用count制作多栏佈局。
<DynamicPageList> category = Demo offset = 2 </DynamicPageList>
示例欄
<table> <tr><th colspan="3"> recent articles in [[:category:Demo|:category:Demo]]</th></tr> <tr><td> <DynamicPageList> category = Demo count=5 </DynamicPageList> </td> <td> <DynamicPageList> category = Demo offset = 5 count= 5 </DynamicPageList> </td> <td> <DynamicPageList> category = Demo offset = 10 count=5 </DynamicPageList> </td></tr></table>
顯示的細節
shownamespace
shownamespace在頁面名稱中顯示命名空間。
此值可以是true
(是預設,會顯示在名稱中:Help:Contents )、或false
(不會顯示在名稱中:Contents )。
<DynamicPageList> category = Demo shownamespace = false </DynamicPageList>
addfirstcategorydate
addfirstcategorydate顯示每個頁面加入分類的日期。此值可以是「true」(顯示日期)、「false」(預設,不顯示日期)或日期指示浮(ymd、md、dm、dmy、mdy或ISO 8601)。如果指定了多個分類,則使用第一個分類。在頁面名稱前方顯示的日期格式由您本地的MediaWiki日期格式偏好決定。
<DynamicPageList> category = Demo addfirstcategorydate = true </DynamicPageList>
mode
mode決定了列表的格式,此值可以是:
- unordered — 項目符號列表
- ordered — 編號列表
- none — 帶有換行的純連結
- gallery — 圖庫,就像是
<gallery>
- inline — 逗號分隔列表
unordered: <DynamicPageList> category = Demo mode = unordered </DynamicPageList> 編號: <DynamicPageList> category = Demo mode = ordered </DynamicPageList> 純連結: <DynamicPageList> category = Demo mode = none </DynamicPageList> 逗號分隔: <DynamicPageList> category = Demo mode = inline </DynamicPageList>
mode=gallery
图库是一种特殊模式,其输出是一个图像图库。 如果安装了Extension:页面图片 ,那么非文件页面将使用页面图像(如果存在的話)。 否则,非文件命名空间的页面将只是一片空白。
<DynamicPageList> category = Demo mode = gallery namespace= file </DynamicPageList>
图库模式还支持选项imagewidth(图库中图片的宽度,如果你使用该选项,还需要设置 imageheight)、imageheight(图片的高度)、galleryshowfilesize(显示图片大小,就像在分类页面上一样)、galleryshowfilename(显示文件名,就像在分类页面上一样)、imagesperrow(图库中每行的图片数量)、gallerycaption(图库的标题)等选项。
如果使用 addfirstcategorydate,日期会附加到图片标题中。
请注意,图库标题目前无法接受链接。(但它可以接受类似 {{CURRENTMONTHNAME}} 这样的链接)。
一个复杂的图库例子可能是
<DynamicPageList> count=20 namespace=file addfirstcategorydate=ymd imagewidth=70 galleryshowfilesize=yes galleryshowfilename=yes imagesperrow=7 gallerycaption=Look at my pretty gallery. mode=gallery shownamespace=false </DynamicPageList>
suppresserrors
suppresserrors用以隱藏錯誤。此值可以為「true」(隱藏錯誤)或「false」(預設,顯示錯誤)。
true: <DynamicPageList> category = Dem suppresserrors = true </DynamicPageList> false: <DynamicPageList> category = Dem suppresserrors = false </DynamicPageList>
nofollow
nofollow设置rel="nofollow"
到各個链接。
这样可以防止网络爬虫通过 DynamicPageList 中的链接进入页面。
一般来说,这是没有用的,因为网络爬虫要么能通过其他链接索引该页面,要么由于 robots.txt/$wgDefaultRobotPolicy 的原因根本无法索引。
一般来说,除非你知道自己在做什么,并有充分的理由,否则不应使用此选项。
主要的使用案例是,在英文维基新闻中,谷歌新闻认为从主页链接的任何内容都是一篇文章。
<DynamicPageList> category = Demo nofollow = true </DynamicPageList>
googlehack
这是针对维基新闻的黑客技术。以前,谷歌新闻只将带有数字的文章视为新闻文章[1],因此这个选项会在列表中的网址末尾添加 ?dpl_id=<id of article>。除非你有充分的理由,否则不应该使用这个选项(不过它也不会有什么坏处)。该选项取代了不再受支持的 showcurid 选项。
<DynamicPageList> category = Demo googlehack = true </DynamicPageList>
排序
ordermethod
ordermethod指定排序及顯示日期,此值可以是:
- categoryadd — 預設,以頁面加入第一個分類的日期排序
- lastedit — 以頁面最後編輯時間排序
- length — 以頁面長度排序
- created — 以頁面建立時間排序
- categorysortkey — 基本上按照第一個分類的排序字以字母順序排序
- sortkey — categorysortkey的別名
需要注意的是,lastedit 的真正排序取决于页面最后一次被触及的时间。
在某些情况下,这并不等同于最后一次编辑(例如,这包括权限的更改、链接页面的创建或删除、以及被包含模板的更改)。
如果不指定类别,某些排序方法将不起作用—特别是,如果没有category
段落,categoryadd和 categorysortkey将退回到created。
<DynamicPageList> category = Demo addfirstcategorydate = true ordermethod = lastedit </DynamicPageList>
按字母順序範例:
<DynamicPageList> category = Demo ordermethod = sortkey </DynamicPageList>
order
order決定排序方向。 該值可以是descending(是默认值,从最新到最旧)或ascending(从最旧到最新)。
<DynamicPageList> category = Demo order = ascending </DynamicPageList>
模板
要在模板内使用并传递参数、使用解析器函式等,请使用{{#tag:
函式:
{{#tag:DynamicPageList| category = {{{1}}} count = {{#if: {{{2|}}} | 10 | 20 }} ordermethod = sortkey order = ascending }}
模板页面本身会显示错误信息,因为模板页面上的类别值是空的,除非您将模板放在<includeonly>
标记内。 示例
错误:需要包含至少一个分类,或指定一个命名空间!
衍生扩展
- 衍生扩展:以论坛风格输出DPLforum 。 Extension:GoogleNewsSitemap 就像是这样的,但输出的是RSS。 DynamicPageList3 是一个具有更多功能的修改版,但也更耗费资源。 其没有被维基媒体的网站使用。
- Extension:动态页面列表引擎 - 讓Scribunto 模块可以使用动态页面列表。
此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.php和InitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。 |
此扩展在以下wiki农场/托管网站和/或软件包中提供: 這不是一份權威名單。 即使某些wiki农场/托管网站和/或软件包未在这里列出,它们也可能提供此扩展。 请检查你的wiki农场/托管网站或软件包以确认提供情况。 |
- Stable extensions/zh
- Tag extensions/zh
- Parser function extensions/zh
- GPL licensed extensions/zh
- Extensions in Wikimedia version control/zh
- ParserFirstCallInit extensions/zh
- All extensions/zh
- Extensions used on Wikimedia/zh
- Extensions included in Miraheze/zh
- Extensions included in WikiForge/zh
- Page content extensions/zh
- Category intersection extensions/zh