db->table->categories, $db); elseif (is_string($identifier)) { $sql = 'SELECT * FROM ' . $c->db->table->categories . ' WHERE name = \'' . $db->escape($identifier) . "'"; $result = $db->query($sql, 1); $cat = $result->current(); parent::__construct($cat['id'], $c->db->table->categories, $db); } else throw new EBase('unknown type'); $this->user = new TUser($this->usr_id, $db); } public function toXml(DOMDocument $xml) { $category = $xml->createElement('category'); $category->setAttribute('id', $this->id); $name = $xml->createElement('name', $this->name); $category->appendChild($name); $decription = $xml->createElement('description', $this->description); $category->appendChild($decription); $schema = $xml->createElement('schema', $this->schema); $category->appendChild($schema); $icon = $xml->createElement('icon', $this->icon); $category->appendChild($icon); return $category; } static public function create($name, $decription, DOMDocument $schema, $icon) { global $c; $sql = 'INSERT ' . $c->db->table->categories . ' SET name = \'' . $db->escape($name) . '\', description = \'' . $db->escape($description) . '\', schema = \'' . $db->escape($schema->saveXML()) . '\', icon = \'' . $db->escape($icon) . '\''; $this->db->execute($sql); return new TCategory($this->db->insertId(), $this->db); } public function delete() { global $c; $sql = 'DELETE FROM ' . $c->db->table->categories . ' WHERE id = ' . $this->id; $this->db->execute($sql); } static function update($name, $decription, DOMDocument $schema, $icon) { global $c; $sql = 'UPDATE ' . $c->db->table->categories . ' SET name = \'' . $this->db->escape($name) . '\', description = \'' . $this->db->escape($description) . '\', schema = \'' . $this->db->escape($schema->saveXML()) . '\', icon = \'' . $this->db->escape($icon) . '\''; $this->db->execute($sql); //TODO update object } static function getFromFilter(TFilter $filter, TDatabase $db) { global $c; $sql = 'SELECT id FROM ' . $c->db->table->categories . ' WHERE ' . $filter->getSql() . ' ORDER BY updated DESC'; $categories = $db->query($sql, $c->api->markers->max_per_request); $categoryObjs = array(); foreach ($categories as $category) { $categoryObjs[] = new TMarker($category['id']); } return $categoryObjs; } } ?>