const DIR_PREV = 0;
const DIR_NEXT = 1;
- var $mArticle, $mTitle;
+ var $mArticle, $mTitle, $mSkin;
var $lastdate;
var $linesonpage;
var $mNotificationTimestamp;
* @returns nothing
*/
function PageHistory($article) {
+ global $wgUser;
+
$this->mArticle =& $article;
$this->mTitle =& $article->mTitle;
$this->mNotificationTimestamp = NULL;
+ $this->mSkin = $wgUser->getSkin();
}
/**
$wgOut->setSyndicated( true );
$logPage = SpecialPage::getTitleFor( 'Log' );
- $logLink = Linker::makeKnownLinkObj( $logPage, wfMsgHtml( 'viewpagelogs' ), 'page=' . $this->mTitle->getPrefixedUrl() );
+ $logLink = $this->mSkin->makeKnownLinkObj( $logPage, wfMsgHtml( 'viewpagelogs' ), 'page=' . $this->mTitle->getPrefixedUrl() );
$subtitle = wfMsgHtml( 'revhistory' ) . '<br />' . $logLink;
$wgOut->setSubtitle( $subtitle );
* Do the list
*/
$pager = new PageHistoryPager( $this );
- $navbar = $pager->getNavigationBar();
$this->linesonpage = $pager->getNumRows();
$wgOut->addHTML(
$pager->getNavigationBar() .
$this->beginHistoryList() .
- $pager->getBody() .
+ $pager->getBody() .
$this->endHistoryList() .
$pager->getNavigationBar()
);
: '';
}
- /** @todo document */
+ /**
+ * Returns a row from the history printout.
+ *
+ * @todo document some more, and maybe clean up the code (some params redundant?)
+ *
+ * @param object $row The database row corresponding to the line (or is it the previous line?).
+ * @param object $next The database row corresponding to the next line (or is it this one?).
+ * @param int $counter Apparently a counter of what row number we're at, counted from the top row = 1.
+ * @param $notificationtimestamp
+ * @param bool $latest Whether this row corresponds to the page's latest revision.
+ * @param bool $firstInList Whether this row corresponds to the first displayed on this history page.
+ * @return string HTML output for the row
+ */
function historyLine( $row, $next, $counter = '', $notificationtimestamp = false, $latest = false, $firstInList = false ) {
global $wgUser;
$rev = new Revision( $row );
$arbitrary = $this->diffButtons( $rev, $firstInList, $counter );
$link = $this->revLink( $rev );
- $user = Linker::userLink( $rev->getUser(), $rev->getUserText() )
- . Linker::userToolLinks( $rev->getUser(), $rev->getUserText() );
+ $user = $this->mSkin->userLink( $rev->getUser(), $rev->getUserText() )
+ . $this->mSkin->userToolLinks( $rev->getUser(), $rev->getUserText() );
$s .= "($curlink) ($lastlink) $arbitrary";
// We don't currently handle well changing the top revision's settings
$del = wfMsgHtml( 'rev-delundel' );
} else {
- $del = Linker::makeKnownLinkObj( $revdel,
+ $del = $this->mSkin->makeKnownLinkObj( $revdel,
wfMsg( 'rev-delundel' ),
'target=' . urlencode( $this->mTitle->getPrefixedDbkey() ) .
'&oldid=' . urlencode( $rev->getId() ) );
$s .= ' ' . wfElement( 'span', array( 'class' => 'minor' ), wfMsg( 'minoreditletter') );
}
- $s .= Linker::revComment( $rev );
+ $s .= $this->mSkin->revComment( $rev );
if ($notificationtimestamp && ($row->rev_timestamp >= $notificationtimestamp)) {
$s .= ' <span class="updatedmarker">' . wfMsgHtml( 'updatedmarker' ) . '</span>';
}
if( $row->rev_deleted & Revision::DELETED_TEXT ) {
$s .= ' ' . wfMsgHtml( 'deletedrev' );
}
+ if( $wgUser->isAllowed( 'rollback' ) && $latest ) {
+ $s .= ' '.$this->mSkin->generateRollback( $rev );
+ }
$s .= "</li>\n";
return $s;
global $wgLang;
$date = $wgLang->timeanddate( wfTimestamp(TS_MW, $rev->getTimestamp()), true );
if( $rev->userCan( Revision::DELETED_TEXT ) ) {
- $link = Linker::makeKnownLinkObj(
+ $link = $this->mSkin->makeKnownLinkObj(
$this->mTitle, $date, "oldid=" . $rev->getId() );
} else {
$link = $date;
if( $latest || !$rev->userCan( Revision::DELETED_TEXT ) ) {
return $cur;
} else {
- return Linker::makeKnownLinkObj(
+ return $this->mSkin->makeKnownLinkObj(
$this->mTitle, $cur,
'diff=' . $this->getLatestID() .
"&oldid=" . $rev->getId() );
return $last;
} elseif ( $next === 'unknown' ) {
# Next row probably exists but is unknown, use an oldid=prev link
- return Linker::makeKnownLinkObj(
+ return $this->mSkin->makeKnownLinkObj(
$this->mTitle,
$last,
"diff=" . $rev->getId() . "&oldid=prev" );
} elseif( !$rev->userCan( Revision::DELETED_TEXT ) ) {
return $last;
} else {
- return Linker::makeKnownLinkObj(
+ return $this->mSkin->makeKnownLinkObj(
$this->mTitle,
$last,
"diff=" . $rev->getId() . "&oldid={$next->rev_id}"