format = $schema; // Setup $fdt used by malete. foreach ($schema['fields'] as $field => $info) { $this->fdt[$field] = $info['name']; } // Open a database connection. $this->db = new Isis_Db($this->fdt, $schema['db']['name'], new Isis_Server()); if (!$this->db->srv->sock) { return FALSE; } } public function fields($id = NULL) { } public function subfields($id = NULL) { } public function read($id) { if (!is_numeric($id)) { return FALSE; } $results = $this->db->read($id); return $this->tag($results); } public function rows() { } /** * Schema format example. */ public function default_schema() { $schema = array( 'db' => array( 'name' => 'dbname', ), 'fields' => array( 1 => array( 'name' => 'field_name', 'size' => 1000, 'format' => 'numeric', 'repeat' => TRUE, 'subfields' => array( 'a' => 'test', 'b' => 'test2', ), ), ), ); return $schema; } // Tag results of a db query. function tag($results) { foreach ($results->val as $key => $value) { $field = $results->tag[$key]; $name = $this->format['fields'][$field]['name']; // Handles field repetition. if ($this->format['fields'][$field]['repeat']) { $data[$name][] = $value; } else { $data[$name] = $value; } } return $data; } }