if ( ( $e instanceof DBQueryError ) && !$config->get( 'ShowSQLErrors' ) ) {
$params = [ 'apierror-databaseerror', WebRequest::getRequestId() ];
} else {
- $params = [
- 'apierror-exceptioncaught',
- WebRequest::getRequestId(),
- $e instanceof ILocalizedException
- ? $e->getMessageObject()
- : wfEscapeWikiText( $e->getMessage() )
- ];
+ if ( $e instanceof ILocalizedException ) {
+ $msg = $e->getMessageObject();
+ } elseif ( $e instanceof MessageSpecifier ) {
+ $msg = Message::newFromSpecifier( $e );
+ } else {
+ $msg = wfEscapeWikiText( $e->getMessage() );
+ }
+ $params = [ 'apierror-exceptioncaught', WebRequest::getRequestId(), $msg ];
}
$messages[] = ApiMessage::create( $params, $code );
}
];
}
- /** @see ApiBase::getExamplesMessages() */
+ /** @inheritDoc */
protected function getExamplesMessages() {
return [
'action=help'
$id = Sanitizer::escapeIdForAttribute( 'main/datatypes', Sanitizer::ID_PRIMARY );
$idFallback = Sanitizer::escapeIdForAttribute( 'main/datatypes', Sanitizer::ID_FALLBACK );
-
- $help['datatypes'] .= Linker::makeHeadline( min( 6, $level ),
+ $headline = Linker::makeHeadline( min( 6, $level ),
' class="apihelp-header"',
$id,
$header,
'',
$idFallback
);
+ // Ensure we have a sane anchor
+ if ( $id !== 'main/datatypes' && $idFallback !== 'main/datatypes' ) {
+ $headline = '<div id="main/datatypes"></div>' . $headline;
+ }
+ $help['datatypes'] .= $headline;
$help['datatypes'] .= $this->msg( 'api-help-datatypes' )->parseAsBlock();
if ( !isset( $tocData['main/datatypes'] ) ) {
$tocnumber[$level]++;
$header = $this->msg( 'api-credits-header' )->parse();
$id = Sanitizer::escapeIdForAttribute( 'main/credits', Sanitizer::ID_PRIMARY );
$idFallback = Sanitizer::escapeIdForAttribute( 'main/credits', Sanitizer::ID_FALLBACK );
- $help['credits'] .= Linker::makeHeadline( min( 6, $level ),
+ $headline = Linker::makeHeadline( min( 6, $level ),
' class="apihelp-header"',
$id,
$header,
'',
$idFallback
);
+ // Ensure we have a sane anchor
+ if ( $id !== 'main/credits' && $idFallback !== 'main/credits' ) {
+ $headline = '<div id="main/credits"></div>' . $headline;
+ }
+ $help['credits'] .= $headline;
$help['credits'] .= $this->msg( 'api-credits' )->useDatabase( false )->parseAsBlock();
if ( !isset( $tocData['main/credits'] ) ) {
$tocnumber[$level]++;