diff options
Diffstat (limited to 'includes/DifferenceEngine.php')
-rw-r--r-- | includes/DifferenceEngine.php | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/includes/DifferenceEngine.php b/includes/DifferenceEngine.php index 4ba5b7713d8d..2e3937ee4802 100644 --- a/includes/DifferenceEngine.php +++ b/includes/DifferenceEngine.php @@ -18,7 +18,9 @@ class DifferenceEngine { function showDiffPage() { global $wgUser, $wgTitle, $wgOut, $wgLang; - + $fname = "DifferenceEngine::showDiffPage"; + wfProfileIn( $fname ); + $t = $wgTitle->getPrefixedText() . " (Diff: {$this->mOldid}, " . "{$this->mNewid})"; $mtext = wfMsg( "missingarticle", $t ); @@ -27,6 +29,7 @@ class DifferenceEngine { if ( ! $this->loadText() ) { $wgOut->setPagetitle( wfMsg( "errorpagetitle" ) ); $wgOut->addHTML( $mtext ); + wfProfileOut( $fname ); return; } $wgOut->suppressQuickbar(); @@ -44,6 +47,7 @@ class DifferenceEngine { if ( !( $this->mOldPage->userCanRead() && $this->mNewPage->userCanRead() ) ) { $wgOut->loginToUse(); $wgOut->output(); + wfProfileOut( $fname ); exit; } @@ -80,6 +84,8 @@ class DifferenceEngine { $oldHeader, $newHeader ); $wgOut->addHTML( "<hr /><h2>{$this->mNewtitle}</h2>\n" ); $wgOut->addWikiText( $this->mNewtext ); + + wfProfileOut( $fname ); } function showDiff( $otext, $ntext, $otitle, $ntitle ) @@ -112,9 +118,10 @@ cellpadding='0' cellspacing='4px' class='diff'><tr> # function loadText() { - global $wgTitle, $wgOut, $wgLang; + global $wgTitle, $wgOut, $wgLang, $wgIsMySQL, $wgIsPg; $fname = "DifferenceEngine::loadText"; + $oldtable=$wgIsPg?'"old"':'old'; if ( 0 == $this->mNewid || 0 == $this->mOldid ) { $wgOut->setArticleFlag( true ); $this->mNewtitle = wfMsg( "currentrev" ); @@ -130,7 +137,7 @@ cellpadding='0' cellspacing='4px' class='diff'><tr> $this->mNewUser = $s->cur_user_text; $this->mNewComment = $s->cur_comment; } else { - $sql = "SELECT old_namespace,old_title,old_timestamp,old_text,old_flags,old_user_text,old_comment FROM old WHERE " . + $sql = "SELECT old_namespace,old_title,old_timestamp,old_text,old_flags,old_user_text,old_comment FROM $oldtable WHERE " . "old_id={$this->mNewid}"; $res = wfQuery( $sql, DB_READ, $fname ); @@ -146,14 +153,15 @@ cellpadding='0' cellspacing='4px' class='diff'><tr> $this->mNewComment = $s->old_comment; } if ( 0 == $this->mOldid ) { + $use_index=$wgIsMySQL?"USE INDEX (name_title_timestamp)":""; $sql = "SELECT old_namespace,old_title,old_timestamp,old_text,old_flags,old_user_text,old_comment " . - "FROM old USE INDEX (name_title_timestamp) WHERE " . + "FROM $oldtable $use_index WHERE " . "old_namespace=" . $this->mNewPage->getNamespace() . " AND " . "old_title='" . wfStrencode( $this->mNewPage->getDBkey() ) . "' ORDER BY inverse_timestamp LIMIT 1"; $res = wfQuery( $sql, DB_READ, $fname ); } else { - $sql = "SELECT old_namespace,old_title,old_timestamp,old_text,old_flags,old_user_text,old_comment FROM old WHERE " . + $sql = "SELECT old_namespace,old_title,old_timestamp,old_text,old_flags,old_user_text,old_comment FROM $oldtable WHERE " . "old_id={$this->mOldid}"; $res = wfQuery( $sql, DB_READ, $fname ); } @@ -1015,7 +1023,7 @@ class _HWLDF_WordAccumulator { function _flushGroup ($new_tag) { if ($this->_group !== '') { if ($this->_tag == 'mark') - $this->_line .= "<font color=\"red\">$this->_group</font>"; + $this->_line .= '<span class="diffchange">'.$this->_group.'</span>'; else $this->_line .= $this->_group; } @@ -1116,8 +1124,8 @@ class TableDiffFormatter extends DiffFormatter $l1 = wfMsg( "lineno", $xbeg ); $l2 = wfMsg( "lineno", $ybeg ); - $r = "<tr><td colspan='2' align='left'><strong>{$l1}</strong></td>\n" . - "<td colspan='2' align='left'><strong>{$l2}</strong></td></tr>\n"; + $r = '<tr><td colspan="2" align="left"><strong>'.$l1."</strong></td>\n" . + '<td colspan="2" align="left"><strong>'.$l2."</strong></td></tr>\n"; return $r; } @@ -1133,27 +1141,27 @@ class TableDiffFormatter extends DiffFormatter } function addedLine( $line ) { - return "<td>+</td><td class='diff-addedline'>" . - "<small>{$line}</small></td>"; + return '<td>+</td><td class="diff-addedline">' . + $line.'</td>'; } function deletedLine( $line ) { - return "<td>-</td><td class='diff-deletedline'>" . - "<small>{$line}</small></td>"; + return '<td>-</td><td class="diff-deletedline">' . + $line.'</td>'; } function emptyLine() { - return "<td colspan='2'> </td>"; + return '<td colspan="2"> </td>'; } function contextLine( $line ) { - return "<td> </td><td class='diff-context'><small>{$line}</small></td>"; + return '<td> </td><td class="diff-context">'.$line.'</td>'; } function _added($lines) { global $wgOut; foreach ($lines as $line) { - $wgOut->addHTML( "<tr>" . $this->emptyLine() . + $wgOut->addHTML( '<tr>' . $this->emptyLine() . $this->addedLine( $line ) . "</tr>\n" ); } } @@ -1161,7 +1169,7 @@ class TableDiffFormatter extends DiffFormatter function _deleted($lines) { global $wgOut; foreach ($lines as $line) { - $wgOut->addHTML( "<tr>" . $this->deletedLine( $line ) . + $wgOut->addHTML( '<tr>' . $this->deletedLine( $line ) . $this->emptyLine() . "</tr>\n" ); } } @@ -1169,7 +1177,7 @@ class TableDiffFormatter extends DiffFormatter function _context( $lines ) { global $wgOut; foreach ($lines as $line) { - $wgOut->addHTML( "<tr>" . $this->contextLine( $line ) . + $wgOut->addHTML( '<tr>' . $this->contextLine( $line ) . $this->contextLine( $line ) . "</tr>\n" ); } } @@ -1182,7 +1190,7 @@ class TableDiffFormatter extends DiffFormatter while ( $line = array_shift( $del ) ) { $aline = array_shift( $add ); - $wgOut->addHTML( "<tr>" . $this->deletedLine( $line ) . + $wgOut->addHTML( '<tr>' . $this->deletedLine( $line ) . $this->addedLine( $aline ) . "</tr>\n" ); } $this->_added( $add ); # If any leftovers |