API: (bug 18709) Missing descriptions for some parameters in action=paraminfo output
authorRoan Kattouw <catrope@users.mediawiki.org>
Fri, 8 May 2009 17:24:49 +0000 (17:24 +0000)
committerRoan Kattouw <catrope@users.mediawiki.org>
Fri, 8 May 2009 17:24:49 +0000 (17:24 +0000)
RELEASE-NOTES
includes/api/ApiParamInfo.php

index 4b24b16..a4d2198 100644 (file)
@@ -133,7 +133,9 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * Added PHP and database version to meta=siteinfo output
 * (bug 18533) Add readonly message to meta=siteinfo output
 * (bug 18518) Add clprop=hidden to prop=categories
-* (bug 18710) Fixed internal error with empty parameter in ApiParamInfo
+* (bug 18710) Fixed internal error with empty parameter in action=paraminfo
+* (bug 18709) Missing descriptions for some parameters in action=paraminfo
+  output
 
 === Languages updated in 1.16 ===
 
index 4b2a263..085ad8b 100644 (file)
@@ -93,7 +93,7 @@ class ApiParamInfo extends ApiBase {
        {
                $result = $this->getResult();
                $retval['classname'] = get_class($obj);
-               $retval['description'] = (is_array($obj->getDescription()) ? implode("\n", $obj->getDescription()) : $obj->getDescription());
+               $retval['description'] = implode("\n", (array)$obj->getDescription());
                $retval['prefix'] = $obj->getModulePrefix();
                if($obj->isReadMode())
                        $retval['readrights'] = '';
@@ -109,6 +109,8 @@ class ApiParamInfo extends ApiBase {
                foreach($allowedParams as $n => $p)
                {
                        $a = array('name' => $n);
+                       if(isset($paramDesc[$n]))
+                               $a['description'] = implode("\n", (array)$paramDesc[$n]);
                        if(!is_array($p))
                        {
                                if(is_bool($p))
@@ -116,8 +118,16 @@ class ApiParamInfo extends ApiBase {
                                        $a['type'] = 'bool';
                                        $a['default'] = ($p ? 'true' : 'false');
                                }
-                               if(is_string($p))
-                                       $a['default'] = $p;
+                               else if(is_string($p) || is_null($p))
+                               {
+                                       $a['type'] = 'string';
+                                       $a['default'] = strval($p);
+                               }
+                               else if(is_int($p))
+                               {
+                                       $a['type'] = 'integer';
+                                       $a['default'] = intval($p);
+                               }
                                $retval['parameters'][] = $a;
                                continue;
                        }
@@ -147,8 +157,6 @@ class ApiParamInfo extends ApiBase {
                                $a['highmax'] = $p[ApiBase::PARAM_MAX2];
                        if(isset($p[ApiBase::PARAM_MIN]))
                                $a['min'] = $p[ApiBase::PARAM_MIN];
-                       if(isset($paramDesc[$n]))
-                               $a['description'] = (is_array($paramDesc[$n]) ? implode("\n", $paramDesc[$n]) : $paramDesc[$n]);
                        $retval['parameters'][] = $a;
                }
                $result->setIndexedTagName($retval['parameters'], 'param');