$examples = $obj->getExamples();
$retval['allexamples'] = array();
if ( $examples !== false ) {
+ if ( is_string( $examples ) ) {
+ $examples = array( $examples );
+ }
foreach( $examples as $k => $v ) {
if ( strlen( $retval['examples'] ) ) {
$retval['examples'] .= ' ';
}
$result->setIndexedTagName( $retval['parameters'], 'param' );
+ $props = $obj->getFinalResultProperties();
+ $listResult = null;
+ if ( $props !== false ) {
+ $retval['props'] = array();
+
+ foreach ( $props as $prop => $properties ) {
+ $propResult = array();
+ if ( $prop == ApiBase::PROP_LIST ) {
+ $listResult = $properties;
+ continue;
+ }
+ if ( $prop != ApiBase::PROP_ROOT ) {
+ $propResult['name'] = $prop;
+ }
+ $propResult['properties'] = array();
+
+ foreach ( $properties as $name => $p ) {
+ $propertyResult = array();
+
+ $propertyResult['name'] = $name;
+
+ if ( !is_array( $p ) ) {
+ $p = array( ApiBase::PROP_TYPE => $p );
+ }
+
+ $propertyResult['type'] = $p[ApiBase::PROP_TYPE];
+
+ if ( is_array( $propertyResult['type'] ) ) {
+ $propertyResult['type'] = array_values( $propertyResult['type'] );
+ $result->setIndexedTagName( $propertyResult['type'], 't' );
+ }
+
+ $nullable = null;
+ if ( isset( $p[ApiBase::PROP_NULLABLE] ) ) {
+ $nullable = $p[ApiBase::PROP_NULLABLE];
+ }
+
+ if ( $nullable === true ) {
+ $propertyResult['nullable'] = '';
+ }
+
+ $propResult['properties'][] = $propertyResult;
+ }
+
+ $result->setIndexedTagName( $propResult['properties'], 'property' );
+ $retval['props'][] = $propResult;
+ }
+
+ // default is true for query modules, false for other modules, overriden by ApiBase::PROP_LIST
+ if ( $listResult === true || ( $listResult !== false && $obj instanceof ApiQueryBase ) ) {
+ $retval['listresult'] = '';
+ }
+
+ $result->setIndexedTagName( $retval['props'], 'prop' );
+ }
+
// Errors
$retval['errors'] = $this->parseErrors( $obj->getPossibleErrors() );
$result->setIndexedTagName( $retval['errors'], 'error' );
}
public function getAllowedParams() {
-
+ $modules = array_keys( $this->getMain()->getModules() );
+ sort( $modules );
+ $querymodules = array_keys( $this->queryObj->getModules() );
+ sort( $querymodules );
+ $formatmodules = array_keys( $this->getMain()->getFormats() );
+ sort( $formatmodules );
return array(
'modules' => array(
ApiBase::PARAM_ISMULTI => true,
- ApiBase::PARAM_TYPE => array_keys( $this->getMain()->getModules() ),
+ ApiBase::PARAM_TYPE => $modules,
),
'querymodules' => array(
ApiBase::PARAM_ISMULTI => true,
- ApiBase::PARAM_TYPE => array_keys( $this->queryObj->getModules() ),
+ ApiBase::PARAM_TYPE => $querymodules,
),
'mainmodule' => false,
'pagesetmodule' => false,
'formatmodules' => array(
ApiBase::PARAM_ISMULTI => true,
- ApiBase::PARAM_TYPE => array_keys( $this->getMain()->getFormats() ),
+ ApiBase::PARAM_TYPE => $formatmodules,
)
);
}