我正在更新Mediawiki扩展,显示类别中的所有图像(
CategoryGallery).
代码的一部分是这样的:
// Capitalize the first letter in the category argument,convert spaces to _ $params['cat'] = str_replace ( ' ','_',ucfirst( $params['cat'] ) ); // Retrieve category members from database $dbr = wfgetDB( DB_SLAVE ); $res = $dbr->select( 'categorylinks','cl_from',array ('cl_to' => $params['cat'],'cl_type' => 'file')); $ids = array(); foreach ( $res as $row ) { $ids[] = $row->cl_from; } // Create the gallery $titles = Title::newFromIDs ( $ids ); $text = ''; foreach ( $titles as $title ) { $titlePrefixedDBKey = $title->getPrefixedDBKey(); $text .= $titlePrefixedDBKey; $text .= "|**Username**:\n"; } $output = $parser->renderImagegallery( $text,$params )
解决方法
您的$title变量是
Title
object.您应该可以使用它来获取最新版本的作者:
$currentRevID = $title->getLatestRevID(); $revAuthors = $title->getAuthorsBetween($currentRevID,$currentRevID,1,'include_both'); //1=limit $authorName = $revAuthors[0];
这使用了一个在两个修订版之间返回作者的函数,但我们只是将当前版本作为最小和最大修订版传递.
请注意,编辑图像标题会计为修订版本,因此此代码可能会返回未上载文件的用户的名称.发生的可能性可能取决于您的wiki的使用方式.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。