23 April 2010

(MediaWiki) RSS,Atom feedで更新タイトルのリンク先を更新差分ではなく記事の実体にする変更

MediaWikiのRSS, Atomフィードのトピックが、記事の更新差分になっているのを、記事の実体に変更する。

”更新履歴”とは…


<entry>
<id>http://example.com/index.php?title=TestTopic&diff=12345&oldid=prev</id>
<title>(Linux)CommandMemo2</title>

<link rel="alternate" type="text/html" href="http://example.com/index.php?title=TestTopic&diff=12345&oldid=prev"/>
<updated>2010-04-19T11:59:44Z</updated>

<summary type="html">更新の要約がここに出力される
</summary>
<author><name>192.168.1.1</name></author>
</entry>

フィードのテンプレートファイルの次の部分を変更すればよい。
(この例は、MediaWiki 1.14 の場合)

mw/include/ChangesFeed.php

foreach( $sorted as $obj ) {
$title = Title::makeTitle( $obj->rc_namespace, $obj->rc_title );
$talkpage = $title->getTalkPage();
$item = new FeedItem(
$title->getPrefixedText(),
FeedUtils::formatDiff( $obj ),
/* $title->getFullURL( 'diff=' . $obj->rc_this_oldid . '&oldid=prev' ),*/
$title->getFullURL(),

$obj->rc_timestamp,
($obj->rc_deleted & Revision::DELETED_USER) ? wfMsgHtml('rev-deleted-user') : $obj->rc_user_text,
$talkpage->getFullURL()
);
$feed->outItem( $item );
}
$feed->outFooter();