http://www.mediawiki.org/wiki/Special:Code/MediaWiki/99376

Revision: 99376
Author:   jeroendedauw
Date:     2011-10-09 20:42:49 +0000 (Sun, 09 Oct 2011)
Log Message:
-----------
some fixes to the api stuff

Modified Paths:
--------------
    trunk/extensions/Contest/api/ApiContestQuery.php
    trunk/extensions/Contest/includes/ContestDBObject.php

Modified: trunk/extensions/Contest/api/ApiContestQuery.php
===================================================================
--- trunk/extensions/Contest/api/ApiContestQuery.php    2011-10-09 20:27:19 UTC 
(rev 99375)
+++ trunk/extensions/Contest/api/ApiContestQuery.php    2011-10-09 20:42:49 UTC 
(rev 99376)
@@ -2,7 +2,7 @@
 
 /**
  * Base class for API query modules that return results using a
- * ContestDBClass deriving class.
+ * ContestDBObject deriving class.
  *
  * @since 0.1
  *
@@ -17,7 +17,7 @@
        
        /**
         * Returns the class specific info. 
-        * * class: name of the ContestDBClass deriving class (ie Contest)
+        * * class: name of the ContestDBObject deriving class (ie Contest)
         * * item: item name (ie contest)
         * * set: item set name (ie contests)
         * 
@@ -28,7 +28,7 @@
        protected abstract function getClassInfo();
        
        /**
-        * Returns an instance of the ContestDBClass deriving class.
+        * Returns an instance of the ContestDBObject deriving class.
         * Once PHP 5.3 becomes an accaptable requirement, we
         * can get rid of this silly hack and simply return the class
         * name (since all methods we need ought to be static in PHP >= 5.3).  
@@ -129,7 +129,7 @@
         * @param array $params
         * @param array $results
         */
-       protected function addResults( array $params, array /* of 
ContestDBClass */ $results ) {
+       protected function addResults( array $params, array /* of 
ContestDBObject */ $results ) {
                $serializedResults = array();
                $count = 0;
                
@@ -141,20 +141,35 @@
                                break;
                        }
                        
-                       $serializedResults[] = $result->toArray();
+                       $serializedResults[] = $result->toArray( 
$params['props'] );
                }
-
-               $this->addIndexedTagNames( $serializedResults );
-               $this->addSerializedResults( $serializedResults );
+               
+               $this->setIndexedTagNames( $serializedResults );
+               $this->addSerializedResults( $serializedResults );      
        }
        
-       protected function addIndexedTagNames( array $serializedResults ) {
+       /**
+        * Set the tag names for formats such as XML.
+        * 
+        * @since 0.1
+        * 
+        * @param array $serializedResults
+        */
+       protected function setIndexedTagNames( array &$serializedResults ) {
                $classInfo = $this->getClassInfo();
                $this->getResult()->setIndexedTagName( $serializedResults, 
$classInfo['item'] );
        }
        
+       /**
+        * Add the serialized results to the result object.
+        * 
+        * @since 0.1
+        * 
+        * @param array $serializedResults
+        */
        protected function addSerializedResults( array $serializedResults ) {
                $classInfo = $this->getClassInfo();
+               
                $this->getResult()->addValue(
                        null,
                        $classInfo['set'],

Modified: trunk/extensions/Contest/includes/ContestDBObject.php
===================================================================
--- trunk/extensions/Contest/includes/ContestDBObject.php       2011-10-09 
20:27:19 UTC (rev 99375)
+++ trunk/extensions/Contest/includes/ContestDBObject.php       2011-10-09 
20:42:49 UTC (rev 99376)
@@ -187,10 +187,11 @@
         * @since 0.1
         * 
         * @param null|array $props
+        * @param boolean $incNullId
         * 
         * @return array
         */
-       public function toArray( $fields = null ) {
+       public function toArray( $fields = null, $incNullId = false ) {
                $data = array();
                $setFields = array();
                
@@ -205,7 +206,9 @@
                }
                
                foreach ( $setFields as $field ) {
-                       $data[$field] = $this->getField( $field );
+                       if ( $incNullId || $field != 'id' || 
$this->hasIdField() ) {
+                               $data[$field] = $this->getField( $field );
+                       }
                }
                
                return $data;


_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to