datatype = $datatype; if (!is_dir(FORUM_ROOT."/data/{$this->datatype}")) mkdir(FORUM_ROOT."/data/{$this->datatype}"); } function __destruct(){ // Save all changed objects foreach ($this->data as $name => $list){ if ($list->changed) file_put_contents(FORUM_ROOT."/data/{$this->datatype}/$name.php",Data::Create($list->All)); } } function __get($name){ // Retrieve object data if (!isset($this->data[$name])) $this->data[$name] = new DataObject($name,$this->datatype); return $this->data[$name]; } function __unset($name){ // delete object $uf = FORUM_ROOT."/data/{$this->datatype}/$name.php"; if (is_writable($uf) && !is_dir($uf)) // Remove file from disk unlink($uf); if (isset($this->data[$name])){ unset($this->data[$name]); return true; } else return false; // Will not delete from cache if it has been changed, or doesnt exist (TODO:why?) } function __isset($name){ // check if an object exists return (isset($this->data[$name]) || file_exists(FORUM_ROOT."/data/{$this->datatype}/$name.php")); } static function Create($data){ // Function to generate compressed data php file if ((defined('NOGZIP') && NOGZIP) || (defined('GZIP_DISABLED') && GZIP_DISABLED)) return "