}
public function showDiffPage( $diffOnly = false ) {
+
# Allow frames except in certain special cases
$out = $this->getOutput();
$out->allowClickjacking();
$out->setRobotPolicy( 'noindex,nofollow' );
- // Allow extensions to add any extra output here
- Hooks::run( 'DifferenceEngineShowDiffPage', [ $out ] );
-
if ( !$this->loadRevisionData() ) {
$this->showMissingRevision();
$out->setPageTitle( $this->msg( 'difference-title', $this->mNewPage->getPrefixedText() ) );
$samePage = true;
$oldHeader = '';
- // Allow extensions to change the $oldHeader variable
- Hooks::run( 'DifferenceEngineOldHeaderNoOldRev', [ &$oldHeader ] );
} else {
Hooks::run( 'DiffViewHeader', [ $this, $this->mOldRev, $this->mNewRev ] );
'<div id="mw-diff-otitle5">' . $oldChangeTags[0] . '</div>' .
'<div id="mw-diff-otitle4">' . $prevlink . '</div>';
- // Allow extensions to change the $oldHeader variable
- Hooks::run( 'DifferenceEngineOldHeader', [ $this, &$oldHeader, $prevlink, $oldminor,
- $diffOnly, $ldel, $this->unhide ] );
-
if ( $this->mOldRev->isDeleted( Revision::DELETED_TEXT ) ) {
$deleted = true; // old revisions text is hidden
if ( $this->mOldRev->isDeleted( Revision::DELETED_RESTRICTED ) ) {
'<div id="mw-diff-ntitle5">' . $newChangeTags[0] . '</div>' .
'<div id="mw-diff-ntitle4">' . $nextlink . $this->markPatrolledLink() . '</div>';
- // Allow extensions to change the $newHeader variable
- Hooks::run( 'DifferenceEngineNewHeader', [ $this, &$newHeader, $formattedRevisionTools,
- $nextlink, $rollback, $newminor, $diffOnly, $rdel, $this->unhide ] );
-
if ( $this->mNewRev->isDeleted( Revision::DELETED_TEXT ) ) {
$deleted = true; // new revisions text is hidden
if ( $this->mNewRev->isDeleted( Revision::DELETED_RESTRICTED ) ) {
'token' => $linkInfo['token'],
]
) . ']</span>';
- // Allow extensions to change the markpatrolled link
- Hooks::run( 'DifferenceEngineMarkPatrolledLink', [ $this,
- &$this->mMarkPatrolledLink, $linkInfo['rcid'], $linkInfo['token'] ] );
}
}
return $this->mMarkPatrolledLink;
// If the user could patrol this it already would be patrolled
$rcid = 0;
}
-
- // Allow extensions to possibly change the rcid here
- // For example the rcid might be set to zero due to the user
- // being the same as the performer of the change but an extension
- // might still want to show it under certain conditions
- Hooks::run( 'DifferenceEngineMarkPatrolledRCID', [ &$rcid, $this, $change, $user ] );
-
// Build the link
if ( $rcid ) {
$this->getOutput()->preventClickjacking();
# WikiPage::getParserOutput() should not return false, but just in case
if ( $parserOutput ) {
- // Allow extensions to change parser output here
- if ( Hooks::run( 'DifferenceEngineRenderRevisionAddParserOutput', [ $this, $out, $parserOutput, $wikiPage ] ) ) {
- $out->addParserOutput( $parserOutput );
- }
+ $out->addParserOutput( $parserOutput );
}
}
}
# @codingStandardsIgnoreEnd
- // Allow extensions to optionally not show the final patrolled link
- if ( Hooks::run( 'DifferenceEngineRenderRevisionShowFinalPatrolLink' ) ) {
- # Add redundant patrol link on bottom...
- $out->addHTML( $this->markPatrolledLink() );
- }
+ # Add redundant patrol link on bottom...
+ $out->addHTML( $this->markPatrolledLink() );
+
}
protected function getParserOutput( WikiPage $page, Revision $rev ) {
* @return bool
*/
public function showDiff( $otitle, $ntitle, $notice = '' ) {
- // Allow extensions to affect the output here
- Hooks::run( 'DifferenceEngineShowDiff', [ $this ] );
-
$diff = $this->getDiff( $otitle, $ntitle, $notice );
if ( $diff === false ) {
$this->showMissingRevision();
if ( $this->mOldRev === false || ( $this->mOldRev && $this->mNewRev
&& $this->mOldRev->getId() == $this->mNewRev->getId() )
) {
- if ( !Hooks::run( 'DifferenceEngineShowEmptyOldContent', [ $this ] ) ) {
- return '';
- }
+ return '';
}
// Cacheable?
$key = false;
if ( $wgExternalDiffEngine == 'wikidiff' || $wgExternalDiffEngine == 'wikidiff3' ) {
wfDeprecated( "\$wgExternalDiffEngine = '{$wgExternalDiffEngine}'", '1.27' );
$wgExternalDiffEngine = false;
+ } elseif ( $wgExternalDiffEngine == 'wikidiff2' ) {
+ // Same as above, but with no deprecation warnings
+ $wgExternalDiffEngine = false;
+ } elseif ( !is_string( $wgExternalDiffEngine ) && $wgExternalDiffEngine !== false ) {
+ // And prevent people from shooting themselves in the foot...
+ wfWarn( '$wgExternalDiffEngine is set to a non-string value, forcing it to false' );
+ $wgExternalDiffEngine = false;
}
- if ( $wgExternalDiffEngine == 'wikidiff2' ) {
- if ( function_exists( 'wikidiff2_do_diff' ) ) {
- # Better external diff engine, the 2 may some day be dropped
- # This one does the escaping and segmenting itself
- $text = wikidiff2_do_diff( $otext, $ntext, 2 );
- $text .= $this->debug( 'wikidiff2' );
+ if ( function_exists( 'wikidiff2_do_diff' ) && $wgExternalDiffEngine === false ) {
+ # Better external diff engine, the 2 may some day be dropped
+ # This one does the escaping and segmenting itself
+ $text = wikidiff2_do_diff( $otext, $ntext, 2 );
+ $text .= $this->debug( 'wikidiff2' );
- return $text;
- }
- } elseif ( $wgExternalDiffEngine !== false ) {
+ return $text;
+ } elseif ( $wgExternalDiffEngine !== false && is_executable( $wgExternalDiffEngine ) ) {
# Diff via the shell
$tmpDir = wfTempDir();
$tempName1 = tempnam( $tmpDir, 'diff_' );