DatabaseObject #2
By: a guest | Sep 9th, 2010 | Syntax:
PHP | Size: 1.22 KB | Hits: 22 | Expires: Never
class Planet extends DatabaseObject
{
/**
* Creates a new Planet object with the specified data.
*/
public function __construct( $data, $callMerge = true )
{
if( $callMerge )
$data = $this->mergeUncachedData( $data );
parent::__construct( $data );
}
/**
* Merges data from the cache and current data from the db like current resource values and TickActions.
*/
private function mergeUncachedData( $data )
{
$sql =
"SELECT `planets`.`iron`,
`planets`.`crystal`,
`planets`.`tritium`,
(
SELECT `tick`.`tickID`
FROM `libertyquest".( LIBERTYQUEST_N )."_tick` `tick`
WHERE `tick`.`planetID` = `planets`.`planetID`
AND `tick`.`function` = 'buildingFinished'
) AS `hasBuildAction`
FROM `libertyquest".( LIBERTYQUEST_N )."_planets` `planets`
WHERE `planets`.`planetID` = '".( $data[ 'planetID' ] )."'";
$data = array_merge( $data, WCF::getDB()->getFirstRow( $sql ) );
return ( $data );
}
/**
* Use this static method to retrieve a new Planet object based on the specified planetID.
*/
public static function getPlanet( $planetID )
{
return ( new Planet( WCF::getCache()->get( 'planet-' . $planetID ) ) );
}
// ...
}