* API: (bug 17326) BREAKING CHANGE: Changing output format for prop=imageinfo&iiprop...
authorRoan Kattouw <catrope@users.mediawiki.org>
Tue, 3 Feb 2009 16:25:50 +0000 (16:25 +0000)
committerRoan Kattouw <catrope@users.mediawiki.org>
Tue, 3 Feb 2009 16:25:50 +0000 (16:25 +0000)
* Removed the spaces-to-underscores hack in the XML formatter

RELEASE-NOTES
includes/api/ApiFormatXml.php
includes/api/ApiQueryImageInfo.php

index afc44af..94738ff 100644 (file)
@@ -156,6 +156,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
 * (bug 17239) Added prop=displaytitle to action=parse
 * (bug 17317) Added watch parameter to action=protect
 * (bug 17007) Added export and exportnowrap parameters to action=query
+* (bug 17326) BREAKING CHANGE: Changed output format for iiprop=metadata
 
 === Languages updated in 1.15 ===
 
index 5004f1a..81bcfa7 100644 (file)
@@ -106,14 +106,6 @@ class ApiFormatXml extends ApiFormatBase {
                                        if (is_string($subElemValue) && $this->mDoubleQuote)
                                                $subElemValue = $this->doubleQuote($subElemValue);
                                        
-                                       // Replace spaces with underscores
-                                       $newSubElemId = str_replace(' ', '_', $subElemId);
-                                       if($newSubElemId != $subElemId) {
-                                               $elemValue[$newSubElemId] = $subElemValue;
-                                               unset($elemValue[$subElemId]);
-                                               $subElemId = $newSubElemId;
-                                       }
-
                                        if (gettype($subElemId) === 'integer') {
                                                $indElements[] = $subElemValue;
                                                unset ($elemValue[$subElemId]);
index 0924be6..03edc35 100644 (file)
@@ -140,8 +140,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
                        $vals['sha1'] = wfBaseConvert( $file->getSha1(), 36, 16, 40 );
                if( isset( $prop['metadata'] ) ) {
                        $metadata = $file->getMetadata();
-                       $vals['metadata'] = $metadata ? unserialize( $metadata ) : null;
-                       $result->setIndexedTagName_recursive( $vals['metadata'], 'meta' );
+                       $vals['metadata'] = $metadata ? self::processMetaData( unserialize( $metadata ), $result ) : null;
                }
                if( isset( $prop['mime'] ) ) 
                        $vals['mime'] = $file->getMimeType();
@@ -154,6 +153,22 @@ class ApiQueryImageInfo extends ApiQueryBase {
 
                return $vals;
        }
+       
+       public static function processMetaData($metadata, $result)
+       {
+               $retval = array();
+               foreach($metadata as $key => $value)
+               {
+                       $r = array('name' => $key);
+                       if(is_array($value))
+                               $r['value'] = self::processMetaData($value, $result);
+                       else
+                               $r['value'] = $value;
+                       $retval[] = $r;
+               }
+               $result->setIndexedTagName($retval, 'metadata');
+               return $retval;
+       }
 
        public function getAllowedParams() {
                return array (