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