'badipaddress' => 'invalidip',
'blankpage' => 'emptypage',
'blockedtext' => 'blocked',
+ 'blockedtext-composite' => 'blocked',
+ 'blockedtext-partial' => 'blocked',
'cannotdelete' => 'cantdelete',
'cannotundelete' => 'cantundelete',
'cantmove-titleprotected' => 'protectedtitle',
} else {
$this->apiCode = $key;
}
+
+ // Ensure the code is actually valid
+ $this->apiCode = preg_replace( '/[^a-zA-Z0-9_-]/', '_', $this->apiCode );
}
return $this->apiCode;
}
public function setApiCode( $code, array $data = null ) {
- if ( $code !== null && !( is_string( $code ) && $code !== '' ) ) {
+ if ( $code !== null && !ApiErrorFormatter::isValidApiCode( $code ) ) {
throw new InvalidArgumentException( "Invalid code \"$code\"" );
}