const LINKS = 'links';
const TEMPLATES = 'templates';
- private $table, $prefix, $description, $helpUrl;
+ private $table, $prefix, $helpUrl;
public function __construct( ApiQuery $query, $moduleName ) {
switch ( $moduleName ) {
case self::LINKS:
$this->table = 'pagelinks';
$this->prefix = 'pl';
- $this->description = 'link';
$this->titlesParam = 'titles';
- $this->titlesParamDescription = 'Only list links to these titles. Useful ' .
- 'for checking whether a certain page links to a certain title.';
- $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#links_.2F_pl';
+ $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Links';
break;
case self::TEMPLATES:
$this->table = 'templatelinks';
$this->prefix = 'tl';
- $this->description = 'template';
$this->titlesParam = 'templates';
- $this->titlesParamDescription = 'Only list these templates. Useful ' .
- 'for checking whether a certain page uses a certain template.';
- $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Properties#templates_.2F_tl';
+ $this->helpUrl = 'https://www.mediawiki.org/wiki/API:Templates';
break;
default:
ApiBase::dieDebug( __METHOD__, 'Unknown module name' );
$params = $this->extractRequestParams();
- $this->addFields( array(
+ $this->addFields( [
'pl_from' => $this->prefix . '_from',
'pl_namespace' => $this->prefix . '_namespace',
'pl_title' => $this->prefix . '_title'
- ) );
+ ] );
$this->addTables( $this->table );
$this->addWhereFld( $this->prefix . '_from', array_keys( $this->getPageSet()->getGoodTitles() ) );
foreach ( $params[$this->titlesParam] as $t ) {
$title = Title::newFromText( $t );
if ( !$title ) {
- $this->setWarning( "\"$t\" is not a valid title" );
+ $this->addWarning( [ 'apiwarn-invalidtitle', wfEscapeWikiText( $t ) ] );
} else {
$lb->addObj( $title );
}
// but instead goes and filesorts, because the index for foo was used
// already. To work around this, we drop constant fields in the WHERE
// clause from the ORDER BY clause
- $order = array();
+ $order = [];
if ( count( $this->getPageSet()->getGoodTitles() ) != 1 ) {
$order[] = $this->prefix . '_from' . $sort;
}
"{$row->pl_from}|{$row->pl_namespace}|{$row->pl_title}" );
break;
}
- $vals = array();
+ $vals = [];
ApiQueryBase::addTitleInfo( $vals, Title::makeTitle( $row->pl_namespace, $row->pl_title ) );
$fit = $this->addPageSubItem( $row->pl_from, $vals );
if ( !$fit ) {
}
}
} else {
- $titles = array();
+ $titles = [];
$count = 0;
foreach ( $res as $row ) {
if ( ++$count > $params['limit'] ) {
}
public function getAllowedParams() {
- return array(
- 'namespace' => array(
+ return [
+ 'namespace' => [
ApiBase::PARAM_TYPE => 'namespace',
ApiBase::PARAM_ISMULTI => true
- ),
- 'limit' => array(
+ ],
+ 'limit' => [
ApiBase::PARAM_DFLT => 10,
ApiBase::PARAM_TYPE => 'limit',
ApiBase::PARAM_MIN => 1,
ApiBase::PARAM_MAX => ApiBase::LIMIT_BIG1,
ApiBase::PARAM_MAX2 => ApiBase::LIMIT_BIG2
- ),
- 'continue' => null,
- $this->titlesParam => array(
+ ],
+ 'continue' => [
+ ApiBase::PARAM_HELP_MSG => 'api-help-param-continue',
+ ],
+ $this->titlesParam => [
ApiBase::PARAM_ISMULTI => true,
- ),
- 'dir' => array(
+ ],
+ 'dir' => [
ApiBase::PARAM_DFLT => 'ascending',
- ApiBase::PARAM_TYPE => array(
+ ApiBase::PARAM_TYPE => [
'ascending',
'descending'
- )
- ),
- );
+ ]
+ ],
+ ];
}
- public function getParamDescription() {
- $desc = $this->description;
-
- return array(
- 'namespace' => "Show {$desc}s in this namespace(s) only",
- 'limit' => "How many {$desc}s to return",
- 'continue' => 'When more results are available, use this to continue',
- $this->titlesParam => $this->titlesParamDescription,
- 'dir' => 'The direction in which to list',
- );
- }
-
- public function getResultProperties() {
- return array(
- '' => array(
- 'ns' => 'namespace',
- 'title' => 'string'
- )
- );
- }
-
- public function getDescription() {
- return "Returns all {$this->description}s from the given page(s).";
- }
-
- public function getExamples() {
- $desc = $this->description;
+ protected function getExamplesMessages() {
$name = $this->getModuleName();
-
- return array(
- "api.php?action=query&prop={$name}&titles=Main%20Page" => "Get {$desc}s from the [[Main Page]]",
- "api.php?action=query&generator={$name}&titles=Main%20Page&prop=info"
- => "Get information about the {$desc} pages in the [[Main Page]]",
- "api.php?action=query&prop={$name}&titles=Main%20Page&{$this->prefix}namespace=2|10"
- => "Get {$desc}s from the Main Page in the User and Template namespaces",
- );
+ $path = $this->getModulePath();
+
+ return [
+ "action=query&prop={$name}&titles=Main%20Page"
+ => "apihelp-{$path}-example-simple",
+ "action=query&generator={$name}&titles=Main%20Page&prop=info"
+ => "apihelp-{$path}-example-generator",
+ "action=query&prop={$name}&titles=Main%20Page&{$this->prefix}namespace=2|10"
+ => "apihelp-{$path}-example-namespaces",
+ ];
}
public function getHelpUrls() {