pquery($sql, array(getTabid($moduleName),$currentUserModel->getId())); if ($db->num_rows($result) > 0) { $instance = new self(); $columns = self::$columns; foreach ($columns as $column) { $value = $db->query_result($result, 0, $column); if ($column == 'prefs') { $value = Zend_Json::decode(html_entity_decode($value)); } $instance->set($column, $value); } self::$instanceCache[$moduleName] = $instance; } else { return null; } } return self::$instanceCache[$moduleName]; } public function save() { $db = PearDatabase::getInstance(); $currentUserModel = Users_Record_Model::getCurrentUserModel(); if ($this->getId()) { $sql = 'UPDATE ' . self::$table . ' SET prefs = ? WHERE id = ? AND '.self::$index.'=? AND '.self::$index2.'=?'; $params = array(Zend_Json::encode($this->get('prefs')), $this->getId(), $this->get(self::$index), $this->get(self::$index2)); $db->pquery($sql, $params); return true; } else { $sql = 'INSERT INTO ' . self::$table . ' ('.self::$index.',prefs,'.self::$index2.') VALUES (?,?,?)'; $params = array($this->get(self::$index), Zend_Json::encode($this->get('prefs')), $currentUserModel->getId()); $db->pquery($sql, $params); return true; } } public function delete() { $db = PearDatabase::getInstance(); $sql = 'DELETE FROM ' . self::$table . ' WHERE id = ?'; $params = array($this->getId()); $db->pquery($sql, $params); return true; } public function getPreferences() { return $this->get('prefs'); } public function getSourceModule() { return getTabModuleName($this->get(self::$index)); } public function setSourceModule($moduleName){ $this->set(self::$index, getTabid($moduleName)); } }