$args = array_slice( func_get_args(), 2 );
if ( $this->useMessageCache() ) {
- return wfMsgReal( $key, $args );
+ return wfMsgNoTrans( $key, $args );
} else {
return wfMsgReplaceArgs( $fallback, $args );
}
/* Return titles of this error page */
function getPageTitle() {
- if ( $this->useMessageCache() ) {
- return wfMsg( 'internalerror' );
- } else {
- global $wgSitename;
-
- return "$wgSitename error";
- }
+ global $wgSitename;
+ return $this->msg( 'internalerror', "$wgSitename error" );
}
/**
$header = Html::element( 'img', array(
'src' => $wgLogo,
- 'alt' => '' ), $this->getPageTitle() );
+ 'alt' => '' ) );
$attribs = array( 'dir' => $dir, 'lang' => $code );
$this->title = $title;
$this->msg = $msg;
$this->params = $params;
- parent::__construct( wfMsg( $msg ) );
+
+ if( $msg instanceof Message ){
+ parent::__construct( $msg );
+ } else {
+ parent::__construct( wfMsg( $msg ) );
+ }
}
function report() {
global $wgOut;
- $wgOut->showErrorPage( $this->title, $this->msg, $this->params );
+ if ( $wgOut->getTitle() ) {
+ $wgOut->debug( 'Original title: ' . $wgOut->getTitle()->getPrefixedText() . "\n" );
+ }
+ $wgOut->setPageTitle( wfMsg( $this->title ) );
+ $wgOut->setHTMLTitle( wfMsg( 'errorpagetitle' ) );
+ $wgOut->setRobotPolicy( 'noindex,nofollow' );
+ $wgOut->setArticleRelated( false );
+ $wgOut->enableClientCache( false );
+ $wgOut->mRedirect = '';
+ $wgOut->clearHTML();
+
+ if( $this->msg instanceof Message ){
+ $wgOut->addHTML( $this->msg->parse() );
+ } else {
+ $wgOut->addWikiMsgArray( $this->msg, $this->params );
+ }
+
+ $wgOut->returnToMain();
$wgOut->output();
}
}
}
}
+/**
+ * Show an error when the user hits a rate limit
+ */
+class ThrottledError extends ErrorPageError {
+ public function __construct(){
+ parent::__construct(
+ 'actionthrottled',
+ 'actionthrottledtext'
+ );
+ }
+ public function report(){
+ global $wgOut;
+ $wgOut->setStatusCode( 503 );
+ return parent::report();
+ }
+}
+
/**
* Show an error when the user tries to do something whilst blocked
*/