Wikia code/includes/Wiki.php
< Wikia code | includes
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on the information here being up-to-date. The information shown below refers to the now unmaintained 1.16 MediaWiki release. The current stable release number is 1.43.0. |
--- D:\Programming\SVN\mediawiki\branches\REL1_16\phase3\includes\Wiki.php 2011-07-18 22:31:28.188476600 +0100
+++ D:\Programming\SVN\wikia\trunk\includes\Wiki.php 2011-08-17 15:28:46.547851600 +0100
@@ -75,6 +75,12 @@
throw new MWException( "Shouldn't happen: MediaWiki::initializeArticle() returned neither an object nor a URL" );
}
}
+
+ // Wikia change - begin
+ // BugId:7282
+ wfRunHooks( 'AfterInitialize', array( &$title, &$article, &$output, &$user, $request, $this ) );
+ // Wikia change - end
+
wfProfileOut( __METHOD__ );
}
@@ -115,6 +121,14 @@
$ret = Title::newFromID( $curid );
} elseif( $title == '' && $action != 'delete' ) {
$ret = Title::newMainPage();
+
+ /* Wikia change begin - @author: Macbre */
+ /* Wysiwyg: Add hook to allow modification of page user is redirected to when title is not specified in URL */
+ if(!$wgRequest->getInt( 'diff' ) && !$wgRequest->getInt( 'oldid' )) {
+ wfRunHooks( 'InitialQueriesMainPage', array( &$ret ) );
+ }
+ /* Wikia change end */
+
} else {
$ret = Title::newFromURL( $title );
// check variant links so that interwiki links don't have to worry
@@ -133,6 +147,12 @@
$ret = $rev ? $rev->getTitle() : $ret;
}
}
+
+ /* Wikia change begin - @author: nAndy */
+ /* Add hook to allow modification of page user is redirected to when title is not specified in URL */
+ wfRunHooks( 'AfterCheckInitialQueries', array( &$title, &$action, &$ret ) );
+ /* Wikia change end */
+
return $ret;
}
@@ -312,12 +332,15 @@
}
// Namespace might change when using redirects
// Check for redirects ...
- $file = ($title->getNamespace() == NS_FILE) ? $article->getFile() : null;
+ // ... and check that we still have ImagePage instance here (might be replaced by 'ArticleFromTitle' hook above) - bugId:9286 (ADi)
+ $file = (($title->getNamespace() == NS_FILE) && ($article instanceof ImagePage)) ? $article->getFile() : null;
if( ( $action == 'view' || $action == 'render' ) // ... for actions that show content
&& !$request->getVal( 'oldid' ) && // ... and are not old revisions
- $request->getVal( 'redirect' ) != 'no' && // ... unless explicitly told not to
+ $request->getVal( 'redirect' ) != 'no' // ... unless explicitly told not to
// ... and the article is not a non-redirect image page with associated file
- !( is_object( $file ) && $file->exists() && !$file->getRedirected() ) )
+ #&& !( is_object( $file ) && $file->exists() && !$file->getRedirected() ) )
+ # The line above commented out to enable on-click image redirects (trac #2789) --TOR
+ )
{
# Give extensions a change to ignore/handle redirects as needed
$ignoreRedirect = $target = false;
@@ -340,6 +363,10 @@
return $target;
}
}
+
+ // Originally implemented by Nick for HardRedirectsWithJSText Extension (which is now deprecated and deleted)
+ wfRunHooks('BeforeRedirect', array( &$title, &$target ) );
+
if( is_object($target) ) {
// Rewrite environment to redirected article
$rarticle = self::articleFromTitle( $target );
@@ -477,6 +504,15 @@
$action = 'nosuchaction';
}
+ /* Wikia change begin - @author: macbre */
+ /* fallback selected actions to "view" (BugId:9964) */
+ global $wgDisabledActionsWithViewFallback;
+ if ( in_array( $action, $wgDisabledActionsWithViewFallback ) ) {
+ $action = 'view';
+ $request->setVal('action', $action);
+ }
+ /* Wikia change end */
+
# Workaround for bug #20966: inability of IE to provide an action dependent
# on which submit button is clicked.
if ( $action === 'historysubmit' ) {
@@ -550,6 +586,10 @@
if( !$this->getVal( 'UseExternalEditor' ) || $action=='submit' || $internal ||
$section || $oldid || ( !$user->getOption( 'externaleditor' ) && !$external ) ) {
$editor = new EditPage( $article );
+ /* Wikia change begin - @author: macbre */
+ /* Allow extensions to change EditPage class used for rendering edit pages */
+ wfRunHooks('AlternateEditPageClass', array(&$editor));
+ /* Wikia change - end */
$editor->submit();
} elseif( $this->getVal( 'UseExternalEditor' ) && ( $external || $user->getOption( 'externaleditor' ) ) ) {
$mode = $request->getVal( 'mode' );