CPHPDatabaseRecordClass updated

feature/node-rewrite
Sven Slootweg 13 years ago
parent 37dc835dd3
commit 2579b67cb9

@ -19,16 +19,18 @@ abstract class CPHPDatabaseRecordClass extends CPHPBaseClass
public $verify_query = ""; public $verify_query = "";
public $table_name = ""; public $table_name = "";
public $query_cache = 60; public $query_cache = 60;
public $id_field = "Id";
public $prototype = array(); public $prototype = array();
public $prototype_render = array(); public $prototype_render = array();
public $prototype_export = array();
public $uData = array(); public $uData = array();
public $sId = 0; public $sId = 0;
public function __construct($uDataSource, $uCommunityId = 0) public function __construct($uDataSource)
{ {
$this->ConstructDataset($uDataSource, $uCommunityId); $this->ConstructDataset($uDataSource);
$this->EventConstructed(); $this->EventConstructed();
} }
@ -92,7 +94,7 @@ abstract class CPHPDatabaseRecordClass extends CPHPBaseClass
if($bind_datasets === true) if($bind_datasets === true)
{ {
$this->sId = (is_numeric($uDataSource['Id'])) ? $uDataSource['Id'] : 0; $this->sId = (is_numeric($uDataSource[$this->id_field])) ? $uDataSource[$this->id_field] : 0;
$this->uData = $uDataSource; $this->uData = $uDataSource;
@ -335,7 +337,7 @@ abstract class CPHPDatabaseRecordClass extends CPHPBaseClass
} }
$sQueryKeysValues = implode(", ", $sKeyValueList); $sQueryKeysValues = implode(", ", $sKeyValueList);
$query = "UPDATE {$this->table_name} SET {$sQueryKeysValues} WHERE `Id` = '{$this->sId}'"; $query = "UPDATE {$this->table_name} SET {$sQueryKeysValues} WHERE `{$this->id_field}` = '{$this->sId}'";
} }
if($result = mysql_query($query)) if($result = mysql_query($query))
@ -364,6 +366,8 @@ abstract class CPHPDatabaseRecordClass extends CPHPBaseClass
public function RetrieveChildren($type, $field) public function RetrieveChildren($type, $field)
{ {
// Not done yet!
if(!isset($cphp_class_map[$type])) if(!isset($cphp_class_map[$type]))
{ {
$classname = get_class($this); $classname = get_class($this);
@ -398,6 +402,34 @@ abstract class CPHPDatabaseRecordClass extends CPHPBaseClass
return $this->DoRenderInternalTemplate(); return $this->DoRenderInternalTemplate();
} }
public function Export()
{
// Exports the object as a nested array. Observes the export prototype.
$export_array = array();
foreach($this->prototype_export as $field)
{
$variable_name = "s{$field}";
if(is_object($this->$variable_name))
{
if(!empty($this->$variable_name->sId))
{
$export_array[$field] = $this->$variable_name->Export();
}
else
{
$export_array[$field] = null;
}
}
else
{
$export_array[$field] = $this->$variable_name;
}
}
return $export_array;
}
// Define events // Define events
protected function EventConstructed() { } protected function EventConstructed() { }

Loading…
Cancel
Save