* (bug 32384) Allow descending order for list=watchlistraw.
* (bug 31883) Limit of bkusers of list=blocks and titles of action=query is not documented in API help.
* (bug 32492) API now allows editing using pageid
+* (bug 32497) API now allows changing of protection level using pageid
=== Languages updated in 1.20 ===
*/
class DumpPipeOutput extends DumpFileOutput {
protected $command, $filename;
- private $procOpenResource = false;
+ protected $procOpenResource = false;
function __construct( $command, $file = null ) {
if ( !is_null( $file ) ) {
-<?php
+<?php
/**
*
*
global $wgMaxArticleSize;
return array_merge( parent::getPossibleErrors(),
- $this->getRequireOnlyOneParameterErrorMessages( 'title', 'pageid' ),
+ $this->getRequireOnlyOneParameterErrorMessages( array( 'title', 'pageid' ) ),
array(
array( 'nosuchpageid', 'pageid' ),
array( 'missingtext' ),
$p = $this->getModulePrefix();
return array(
'title' => "Title of the page you want to edit. Cannot be used together with {$p}pageid",
- 'pageid' => "Page ID of the page you want to edit. Cannot be used together with {$p}title,
+ 'pageid' => "Page ID of the page you want to edit. Cannot be used together with {$p}title",
'section' => 'Section number. 0 for the top section, \'new\' for a new section',
'sectiontitle' => 'The title for a new section',
'text' => 'Page content',
global $wgRestrictionLevels;
$params = $this->extractRequestParams();
- $titleObj = Title::newFromText( $params['title'] );
- if ( !$titleObj ) {
- $this->dieUsageMsg( array( 'invalidtitle', $params['title'] ) );
+ $this->requireOnlyOneParameter( $params, 'title', 'pageid' );
+
+ if ( isset( $params['title'] ) ) {
+ $titleObj = Title::newFromText( $params['title'] );
+ if ( !$titleObj ) {
+ $this->dieUsageMsg( array( 'invalidtitle', $params['title'] ) );
+ }
+ } elseif ( isset( $params['pageid'] ) ) {
+ $titleObj = Title::newFromID( $params['pageid'] );
+ if ( !$titleObj ) {
+ $this->dieUsageMsg( array( 'nosuchpageid', $params['pageid'] ) );
+ }
}
$errors = $titleObj->getUserPermissionsErrors( 'protect', $this->getUser() );
return array(
'title' => array(
ApiBase::PARAM_TYPE => 'string',
- ApiBase::PARAM_REQUIRED => true
+ ),
+ 'pageid' => array(
+ ApiBase::PARAM_TYPE => 'integer',
),
'token' => null,
'protections' => array(
}
public function getParamDescription() {
+ $p = $this->getModulePrefix();
return array(
- 'title' => 'Title of the page you want to (un)protect',
+ 'title' => "Title of the page you want to (un)protect. Cannot be used together with {$p}pageid",
+ 'pageid' => "ID of the page you want to (un)protect. Cannot be used together with {$p}title",
'token' => 'A protect token previously retrieved through prop=info',
'protections' => 'Pipe-separated list of protection levels, formatted action=group (e.g. edit=sysop)',
'expiry' => array( 'Expiry timestamps. If only one timestamp is set, it\'ll be used for all protections.',
}
public function getPossibleErrors() {
- return array_merge( parent::getPossibleErrors(), array(
- array( 'invalidtitle', 'title' ),
- array( 'toofewexpiries', 'noofexpiries', 'noofprotections' ),
- array( 'create-titleexists' ),
- array( 'missingtitle-createonly' ),
- array( 'protect-invalidaction', 'action' ),
- array( 'protect-invalidlevel', 'level' ),
- array( 'invalidexpiry', 'expiry' ),
- array( 'pastexpiry', 'expiry' ),
- ) );
+ return array_merge( parent::getPossibleErrors(),
+ $this->getRequireOnlyOneParameterErrorMessages( array( 'title', 'pageid' ) ),
+ array(
+ array( 'invalidtitle', 'title' ),
+ array( 'nosuchpageid', 'pageid' ),
+ array( 'toofewexpiries', 'noofexpiries', 'noofprotections' ),
+ array( 'create-titleexists' ),
+ array( 'missingtitle-createonly' ),
+ array( 'protect-invalidaction', 'action' ),
+ array( 'protect-invalidlevel', 'level' ),
+ array( 'invalidexpiry', 'expiry' ),
+ array( 'pastexpiry', 'expiry' ),
+ )
+ );
}
public function needsToken() {
# # Punctuation
'/#|No\./' => '№',
# # Şç
- '/ŞÇʹ/u' => 'ЩЬ', '/Şçʹ/u' => 'Щь', '/Şçʹ/u' => 'Щь',
+ '/ŞÇʹ/u' => 'ЩЬ', '/Şçʹ/u' => 'Щь',
'/Ş[Çç]/u' => 'Щ', '/şç/u' => 'щ',
# # soft and hard signs
'/([' . KK_L_UC . '])ʺ([' . KK_L_UC . '])/u' => '$1Ъ$2',
'h' => 'ه', 'j' => 'ژ', 'k' => 'ک', 'l' => 'ل',
'm' => 'م', 'n' => 'ن', 'p' => 'پ', 'q' => 'ق', 'r' => 'ر', 's' => 'س', 'ş' => 'ش',
't' => 'ت', 'v' => 'ڤ',
- 'x' => 'خ', 'y' => 'ی', 'z' => 'ز',
-
+ 'x' => 'خ', 'y' => 'ی', 'z' => 'ز',
'B' => 'ب', 'C' => 'ج', 'Ç' => 'چ', 'D' => 'د', 'F' => 'ف', 'G' => 'گ', 'H' => 'ھ',
'H' => 'ہ', 'H' => 'ه', 'H' => 'ح', 'J' => 'ژ', 'K' => 'ك', 'K' => 'ک', 'L' => 'ل',
'ns-specialprotected' => 'Special pages cannot be edited.',
'titleprotected' => 'This title has been protected from creation by [[User:$1|$1]].
The reason given is "\'\'$2\'\'".',
-'filereadonlyerror' => 'Unable to modify the file "$1" because the file repository "$2" is in read-only mode.
-
-The reason given is "\'\'$3\'\'".',
# Virus scanner
'virus-badscanner' => "Bad configuration: Unknown virus scanner: ''$1''",
'$1_تالقىلاۋى' => NS_PROJECT_TALK,
'سۋرەت' => NS_FILE,
'سۋرەت_تالقىلاۋى' => NS_FILE_TALK,
- 'مەدياۋيكي' => NS_MEDIAWIKI,
- 'مەدياۋيكي_تالقىلاۋى' => NS_MEDIAWIKI_TALK,
- 'ٷلگٸ' => NS_TEMPLATE,
- 'ٷلگٸ_تالقىلاۋى' => NS_TEMPLATE_TALK,
'انىقتاما' => NS_HELP,
'انىقتاما_تالقىلاۋى' => NS_HELP_TALK,
'سانات' => NS_CATEGORY,
'$1_تالقىلاۋى' => NS_PROJECT_TALK,
'سۋرەت' => NS_FILE,
'سۋرەت_تالقىلاۋى' => NS_FILE_TALK,
- 'مەدياۋيكي' => NS_MEDIAWIKI,
- 'مەدياۋيكي_تالقىلاۋى' => NS_MEDIAWIKI_TALK,
- 'ٷلگٸ' => NS_TEMPLATE,
- 'ٷلگٸ_تالقىلاۋى' => NS_TEMPLATE_TALK,
'انىقتاما' => NS_HELP,
'انىقتاما_تالقىلاۋى' => NS_HELP_TALK,
'سانات' => NS_CATEGORY,
'Cows_Restren' => NS_FILE_TALK,
'Keskows_Restren' => NS_FILE_TALK,
'Cows_MediaWiki' => NS_MEDIAWIKI_TALK,
- 'Cows_MediaWiki' => NS_MEDIAWIKI_TALK,
'Keskows_MediaWiki' => NS_MEDIAWIKI_TALK,
'Cows_Scantlyn' => NS_TEMPLATE_TALK,
'Skantlyn' => NS_TEMPLATE,
'Diskussión_de_Xabblón' => NS_MEDIAWIKI_TALK,
'Xabblón' => NS_TEMPLATE,
'Diskusyón_de_Xabblón' => NS_TEMPLATE_TALK,
- 'Plantilla_Discusión' => NS_TEMPLATE_TALK,
'Diskussión_de_Ayudo' => NS_HELP_TALK,
'Kateggoría' => NS_CATEGORY,
'Diskussión_de_Kateggoría' => NS_CATEGORY_TALK,
'$1_Discussão' => NS_PROJECT_TALK,
'Ficheiro' => NS_FILE,
'Ficheiro_Discussão' => NS_FILE_TALK,
- 'Imagem_Discussão' => NS_FILE,
+ 'Imagem' => NS_FILE,
'Imagem_Discussão' => NS_FILE_TALK,
'MediaWiki_Discussão' => NS_MEDIAWIKI_TALK,
'Predefinição' => NS_TEMPLATE,
'Categorie' => NS_CATEGORY,
'Overleg_categorie' => NS_CATEGORY_TALK,
'Kattegerie' => NS_CATEGORY,
- 'Overleg_categorie' => NS_CATEGORY_TALK,
'Overleg_kattegerie' => NS_HELP_TALK,
);
'బొమ్మపై_చర్చ' => NS_FILE_TALK,
'ఫైలు' => NS_FILE,
'ఫైలుపై_చర్చ' => NS_FILE_TALK,
- 'బొమ్మపై_చర్చ' => NS_FILE_TALK,
'సహాయము' => NS_HELP,
'సహాయము_చర్చ' => NS_HELP_TALK,
);
* @ingroup Dump Maintenance
*/
class DumpDBZip2Output extends DumpPipeOutput {
- function DumpDBZip2Output( $file ) {
+ function __construct( $file ) {
parent::__construct( "dbzip2", $file );
}
}