我想在用户页面上显示编辑/贡献的数量。有没有办法做到这一点?
我尝试使用此处提到的链接:http://en.wikipedia.org/wiki/Help:User_contributions
因此,如果遵循这一点,我得到的URL就像这样:
http://ourdomain/api.php?action=query&list=users&ususers=MYUSERNAME&usprop=editcount
如果我使用它,它会向我显示一个具有正确编辑计数的页面。但它显示为XML:
<?xml version="1.0"?>
<api>
<query>
<users>
<user name="USERNAME" editcount="728" />
</users>
</query>
</api>
在这个XML页面上,我可以看到正确的编辑计数。但我只想将其显示为不同页面上的计数。类似于&#34; 编辑总数:728 &#34;。我们正在使用MediaWiki 1.15.5-7。
答案 0 :(得分:4)
您已找到所需内容! API将为您提供用户编辑的最佳估计。您可以将要在每个综合浏览量上运行的Javascript添加到MediaWiki:Common.js
,以将此数据注入用户页面。在您的API调用中,附加&format=json
以获得更友好的JS格式。
如果出于某种原因,您不想在此处使用Javascript,则可以write your own extension在后端处理此问题。这可以实现为parser function,可以像{{USERCONTRIBS:UserName}}
一样调用,或者类似。您要查找的方法是User::getEditCount()
。要获取用户对象,可以使用User::newFromName
。但是,这需要在每个页面加载时清除用户页面,这使得加载速度慢得多,或者您必须接受计数并不总是最新的。
可能还有一些现有的扩展程序可用于打印编辑计数。我确信Extension:SemanticExtraSpecialProperties
确实如此,但这取决于整个SemanticMediawiki包。有关如何使用SMW + SESP显示用户统计信息的示例,请参阅this page。