X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=includes%2Fapi%2FApiEditPage.php;h=2245195cb0815029fae2a3dc598019dde7a0215f;hp=e5c73b3cbf0780d913c50ba10cdab316ed98c49b;hb=12601ff7d2796752404bfb331fccc41083d31f9f;hpb=f9e21f91e459c40fed6d8f2e76cccbce07e2ba1b diff --git a/includes/api/ApiEditPage.php b/includes/api/ApiEditPage.php index e5c73b3cbf..2245195cb0 100644 --- a/includes/api/ApiEditPage.php +++ b/includes/api/ApiEditPage.php @@ -64,7 +64,6 @@ class ApiEditPage extends ApiBase { /** @var $newTitle Title */ foreach ( $titles as $id => $newTitle ) { - if ( !isset( $titles[$id - 1] ) ) { $titles[$id - 1] = $oldTitle; } @@ -441,35 +440,62 @@ class ApiEditPage extends ApiBase { break; default: - // EditPage sometimes only sets the status code without setting - // any actual error messages. Supply defaults for those cases. - $maxArticleSize = $this->getConfig()->get( 'MaxArticleSize' ); - $defaultMessages = [ - // Currently needed - EditPage::AS_IMAGE_REDIRECT_ANON => [ 'apierror-noimageredirect-anon' ], - EditPage::AS_IMAGE_REDIRECT_LOGGED => [ 'apierror-noimageredirect-logged' ], - EditPage::AS_CONTENT_TOO_BIG => [ 'apierror-contenttoobig', $maxArticleSize ], - EditPage::AS_MAX_ARTICLE_SIZE_EXCEEDED => [ 'apierror-contenttoobig', $maxArticleSize ], - EditPage::AS_READ_ONLY_PAGE_ANON => [ 'apierror-noedit-anon' ], - EditPage::AS_NO_CHANGE_CONTENT_MODEL => [ 'apierror-cantchangecontentmodel' ], - EditPage::AS_ARTICLE_WAS_DELETED => [ 'apierror-pagedeleted' ], - EditPage::AS_CONFLICT_DETECTED => [ 'editconflict' ], - - // Currently shouldn't be needed - EditPage::AS_SPAM_ERROR => [ 'apierror-spamdetected', wfEscapeWikiText( $result['spam'] ) ], - EditPage::AS_READ_ONLY_PAGE_LOGGED => [ 'apierror-noedit' ], - EditPage::AS_RATE_LIMITED => [ 'apierror-ratelimited' ], - EditPage::AS_NO_CREATE_PERMISSION => [ 'nocreate-loggedin' ], - EditPage::AS_BLANK_ARTICLE => [ 'apierror-emptypage' ], - EditPage::AS_TEXTBOX_EMPTY => [ 'apierror-emptynewsection' ], - EditPage::AS_SUMMARY_NEEDED => [ 'apierror-summaryrequired' ], - ]; if ( !$status->getErrors() ) { - if ( isset( $defaultMessages[$status->value] ) ) { - call_user_func_array( [ $status, 'fatal' ], $defaultMessages[$status->value] ); - } else { - wfWarn( __METHOD__ . ": Unknown EditPage code {$status->value} with no message" ); - $status->fatal( 'apierror-unknownerror-editpage', $status->value ); + // EditPage sometimes only sets the status code without setting + // any actual error messages. Supply defaults for those cases. + switch ( $status->value ) { + // Currently needed + case EditPage::AS_IMAGE_REDIRECT_ANON: + $status->fatal( 'apierror-noimageredirect-anon' ); + break; + case EditPage::AS_IMAGE_REDIRECT_LOGGED: + $status->fatal( 'apierror-noimageredirect-logged' ); + break; + case EditPage::AS_CONTENT_TOO_BIG: + case EditPage::AS_MAX_ARTICLE_SIZE_EXCEEDED: + $status->fatal( 'apierror-contenttoobig', $this->getConfig()->get( 'MaxArticleSize' ) ); + break; + case EditPage::AS_READ_ONLY_PAGE_ANON: + $status->fatal( 'apierror-noedit-anon' ); + break; + case EditPage::AS_NO_CHANGE_CONTENT_MODEL: + $status->fatal( 'apierror-cantchangecontentmodel' ); + break; + case EditPage::AS_ARTICLE_WAS_DELETED: + $status->fatal( 'apierror-pagedeleted' ); + break; + case EditPage::AS_CONFLICT_DETECTED: + $status->fatal( 'editconflict' ); + break; + + // Currently shouldn't be needed, but here in case + // hooks use them without setting appropriate + // errors on the status. + case EditPage::AS_SPAM_ERROR: + $status->fatal( 'apierror-spamdetected', $result['spam'] ); + break; + case EditPage::AS_READ_ONLY_PAGE_LOGGED: + $status->fatal( 'apierror-noedit' ); + break; + case EditPage::AS_RATE_LIMITED: + $status->fatal( 'apierror-ratelimited' ); + break; + case EditPage::AS_NO_CREATE_PERMISSION: + $status->fatal( 'nocreate-loggedin' ); + break; + case EditPage::AS_BLANK_ARTICLE: + $status->fatal( 'apierror-emptypage' ); + break; + case EditPage::AS_TEXTBOX_EMPTY: + $status->fatal( 'apierror-emptynewsection' ); + break; + case EditPage::AS_SUMMARY_NEEDED: + $status->fatal( 'apierror-summaryrequired' ); + break; + default: + wfWarn( __METHOD__ . ": Unknown EditPage code {$status->value} with no message" ); + $status->fatal( 'apierror-unknownerror-editpage', $status->value ); + break; } } $this->dieStatus( $status ); @@ -584,6 +610,6 @@ class ApiEditPage extends ApiBase { } public function getHelpUrls() { - return 'https://www.mediawiki.org/wiki/API:Edit'; + return 'https://www.mediawiki.org/wiki/Special:MyLanguage/API:Edit'; } }