4

我想在用户页面上显示编辑/贡献的数量。有没有办法做到这一点?

我尝试使用此处提到的链接: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 页面上,我可以看到正确的编辑计数。但我只想将其显示为不同页面上的计数。类似于“编辑总数:728 ”。我们正在使用 MediaWiki 1.15.5-7。

4

1 回答 1

4

你已经找到了你要找的东西!API 将为您提供用户编辑计数的最佳估计值。您可以添加要在每个页面浏览量上运行的 Javascript MediaWiki:Common.js,以将此数据注入用户页面。在您的 API 调用中,追加&format=json以获得更 JS 友好的格式。

如果出于某种原因,您不想在此处使用 Javascript,则可以编写自己的扩展程序来在后端处理此问题。这可以实现为解析器函数,被调用{{USERCONTRIBS:UserName}},或类似的。您正在寻找的方法是User::getEditCount(). 要获取用户对象,您可以使用User::newFromName. 但是,这将要求在每次页面加载时清除用户页面,从而使它们的加载速度变慢,或者您必须接受计数并不总是最新的。

可能还有一些现有的扩展可以让您打印编辑计数。我确信Extension:SemanticExtraSpecialProperties确实如此,尽管这取决于整个 SemanticMediawiki 包。有关如何使用 SMW+SESP 显示用户统计信息的示例,请参阅此页面

于 2015-03-13T08:25:30.157 回答