* MediaWiki exception
* @addtogroup Exception
*/
-class MWException extends Exception
-{
+class MWException extends Exception {
+
+ /**
+ * Should the exception use $wgOut to output the error ?
+ * @return bool
+ */
function useOutputPage() {
return !empty( $GLOBALS['wgFullyInitialised'] ) &&
!empty( $GLOBALS['wgArticle'] ) && !empty( $GLOBALS['wgTitle'] );
}
+ /**
+ * Can the extension use wfMsg() to get i18n messages ?
+ * @return bool
+ */
function useMessageCache() {
global $wgLang;
return is_object( $wgLang );
}
+ /**
+ * Run hook to allow extensions to modify the text of the exception
+ *
+ * @param String $name class name of the exception
+ * @param Array $args arguments to pass to the callback functions
+ * @return mixed string to output or null if any hook has been called
+ */
function runHooks( $name, $args = array() ) {
global $wgExceptionHooks;
if( !isset( $wgExceptionHooks ) || !is_array( $wgExceptionHooks ) )
}
}
- /** Get a message from i18n */
+ /**
+ * Get a message from i18n
+ *
+ * @param String $key message name
+ * @param String $fallback default message if the message cache can't be
+ * called by the exception
+ * The function also has other parameters that are arguments for the message
+ * @return String message with arguments replaced
+ */
function msg( $key, $fallback /*[, params...] */ ) {
$args = array_slice( func_get_args(), 2 );
if ( $this->useMessageCache() ) {
}
}
- /* If wgShowExceptionDetails, return a HTML message with a backtrace to the error. */
+ /**
+ * If $wgShowExceptionDetails is true, return a HTML message with a
+ * backtrace to the error, otherwise show a message to ask to set it to true
+ * to show that information.
+ *
+ * @return String html to output
+ */
function getHTML() {
global $wgShowExceptionDetails;
if( $wgShowExceptionDetails ) {
}
}
- /* If wgShowExceptionDetails, return a text message with a backtrace to the error */
+ /**
+ * If $wgShowExceptionDetails is true, return a text message with a
+ * backtrace to the error.
+ */
function getText() {
global $wgShowExceptionDetails;
if( $wgShowExceptionDetails ) {
}
}
- /** Return the requested URL and point to file and line number from which the
+ /**
+ * Return the requested URL and point to file and line number from which the
* exception occured
+ *
+ * @return string
*/
function getLogMessage() {
global $wgRequest;
}
}
- /* Output a report about the exception and takes care of formatting.
+ /**
+ * Output a report about the exception and takes care of formatting.
* It will be either HTML or plain text based on $wgCommandLineMode.
*/
function report() {
}
}
+ /**
+ * Send headers and output the beginning of the html page if not using
+ * $wgOut to output the exception.
+ */
function htmlHeader() {
global $wgLogo, $wgSitename, $wgOutputEncoding;
";
}
+ /**
+ * print the end of the html page if not using $wgOut.
+ */
function htmlFooter() {
echo "</body></html>";
}
* Performs the request too
*
* @param Title $title
+ * @param Article $article
* @param OutputPage $output
* @param User $user
* @param WebRequest $request
- * @return Article either the object to become $wgArticle, or NULL
*/
- function initialize( &$title, &$output, &$user, $request ) {
+ function initialize( &$title, &$article, &$output, &$user, $request ) {
wfProfileIn( __METHOD__ );
$this->preliminaryChecks( $title, $output, $request ) ;
- $article = NULL;
if ( !$this->initializeSpecialCases( $title, $output, $request ) ) {
- $article = $this->initializeArticle( $title, $request );
- if( is_object( $article ) ) {
+ $new_article = $this->initializeArticle( $title, $request );
+ if( is_object( $new_article ) ) {
+ $article = $new_article;
$this->performAction( $output, $article, $title, $user, $request );
- } elseif( is_string( $article ) ) {
- $output->redirect( $article );
+ } elseif( is_string( $new_article ) ) {
+ $output->redirect( $new_article );
} else {
throw new MWException( "Shouldn't happen: MediaWiki::initializeArticle() returned neither an object nor a URL" );
}
}
wfProfileOut( __METHOD__ );
- return $article;
}
/**
$mediaWiki->setVal( 'UseExternalEditor', $wgUseExternalEditor );
$mediaWiki->setVal( 'UsePathInfo', $wgUsePathInfo );
-$wgArticle = $mediaWiki->initialize( $wgTitle, $wgOut, $wgUser, $wgRequest );
+$mediaWiki->initialize( $wgTitle, $wgArticle, $wgOut, $wgUser, $wgRequest );
$mediaWiki->finalCleanup( $wgDeferredUpdateList, $wgLoadBalancer, $wgOut );
# Not sure when $wgPostCommitUpdateList gets set, so I keep this separate from finalCleanup