class PageHistory {
var $mArticle, $mTitle, $mSkin;
var $lastline, $lastdate;
-
+ var $linesonpage;
function PageHistory( $article ) {
$this->mArticle =& $article;
$this->mTitle =& $article->mTitle;
$res = wfQuery( $sql, DB_READ, $fname );
$revs = wfNumRows( $res );
+
+ if( $revs < $limitplus ) // the sql above tries to fetch one extra
+ $this->linesonpage = $revs;
+ else
+ $this->linesonpage = $revs - 1;
+
$atend = ($revs < $limitplus);
$this->mSkin = $wgUser->getSkin();
$s = $numbar;
$s .= $this->beginHistoryList();
- if( $offset == 0 )
- $s .= $this->historyLine( $this->mArticle->getTimestamp(), $this->mArticle->getUser(),
- $this->mArticle->getUserText(), $namespace,
- $title, 0, $this->mArticle->getComment(),
- ( $this->mArticle->getMinorEdit() > 0 ) );
-
+ if( $offset == 0 ){
+ $this->linesonpage++;
+ $s .= $this->historyLine(
+ $this->mArticle->getTimestamp(),
+ $this->mArticle->getUser(),
+ $this->mArticle->getUserText(), $namespace,
+ $title, 0, $this->mArticle->getComment(),
+ ( $this->mArticle->getMinorEdit() > 0 )
+ );
+ }
while ( $line = wfFetchObject( $res ) ) {
$s .= $this->historyLine( $line->old_timestamp, $line->old_user,
$line->old_user_text, $namespace,
function beginHistoryList()
{
+ global $wgTitle;
$this->lastdate = $this->lastline = "";
$s = "\n<p>" . wfMsg( "histlegend" ) . "\n<ul>";
+ $url = $wgTitle->getURL("-");
+ $s .= "<SCRIPT>
+ var sel = -1;
+ function anysel(oid){
+ row = document.getElementById(\"ver\" + oid);
+ if( row.selected ){
+ row.style.backgroundColor=row.oldbg;
+ row.selected = 0;
+ sel = -1;
+ } else {
+ row.oldbg = row.style.backgroundColor;
+ row.style.backgroundColor=\"lightgrey\";
+ row.selected = 1;
+ if( sel == -1){
+ sel = oid;
+ } else {
+ dodiff(sel, oid);
+ }
+ }
+ return false;
+ }
+ function dodiff(oldid, diff){
+ if( (diff < oldid && diff != 0) || oldid == 0 ){
+ tmp = oldid; oldid = diff; diff = tmp;
+ }
+ u = \"{$url}&diff=\" + diff + \"&oldid=\" + oldid;
+ location.href=u;
+ }
+ </SCRIPT>";
return $s;
}
} else {
$curlink = $cur;
}
- $s .= "({$curlink}) (!OLDID!{$oid}!) . .";
-
+ $arbitrary = "";
+ if( $this->linesonpage > 1)
+ $arbitrary = "<INPUT TYPE=CHECKBOX onClick='anysel($oid)' TITLE='Select any two versions to diff them'>";
+ $s .= "({$curlink}) (!OLDID!{$oid}!) $arbitrary . .";
$M = wfMsg( "minoreditletter" );
if ( $isminor ) {
$s .= " <strong>{$M}</strong>";
}
- $s .= " {$link} . . {$ul}";
+ $s .= " <span ID='ver$oid'>{$link} . . {$ul}</span>";
if ( "" != $c && "*" != $c ) {
$s .= " <em>(" . wfEscapeHTML($c) . ")</em>";