* @package xxx * @version $Id$ * @link http://www.zentao.net */ class customModel extends model { /** * Get config of system and one user. * * @param string $account * @access public * @return array */ public function getAll() { return $this->dao->select('*')->from(TABLE_CUSTOM)->orderBy('id')->fetchAll('id'); } /** * Set value of an item. * * @param string $path system.common.global.sn or system.common.sn * @param string $value * @access public * @return void */ public function setItem($path, $value = '') { $level = substr_count($path, '.'); $section = ''; if($level <= 1) return false; if($level == 2) list($lang, $module, $key) = explode('.', $path); if($level == 3) list($lang, $module, $section, $key) = explode('.', $path); $item = new stdclass(); $item->lang = $lang; $item->module = $module; $item->section = $section; $item->key = $key; $item->value = $value; $this->dao->replace(TABLE_CUSTOM)->data($item)->exec(); } public function getStandardList($module, $field) { $this->loadModel($module); $lang = $this->app->getClientLang(); $currentList = $this->lang->$module->$field; $dbList = $this->getItems("{$lang}.{$module}.{$field}"); } public function getItems($paramString) { return $this->createDAO($this->parseItemParam($paramString), 'select')->fetchAll('id'); } /** * Delete items. * * @param string $paramString see parseItemParam(); * @access public * @return void */ public function deleteItems($paramString) { $this->createDAO($this->parseItemParam($paramString), 'delete')->exec(); } /** * Parse the param string for select or delete items. * * @param string $paramString owner=xxx&key=sn and so on. * @access public * @return array */ public function parseItemParam($paramString) { /* Parse the param string into array. */ parse_str($paramString, $params); /* Init fields not set in the param string. */ $fields = 'lang,module,section,key'; $fields = explode(',', $fields); foreach($fields as $field) if(!isset($params[$field])) $params[$field] = ''; return $params; } /** * Create a DAO object to select or delete one or more records. * * @param array $params the params parsed by parseItemParam() method. * @param string $method select|delete. * @access public * @return object */ public function createDAO($params, $method = 'select') { return $this->dao->$method('*')->from(TABLE_CUSTOM)->where('1 = 1') ->beginIF($params['lang'])->andWhere('lang')->in($params['lang'])->fi() ->beginIF($params['module'])->andWhere('module')->in($params['module'])->fi() ->beginIF($params['section'])->andWhere('section')->in($params['section'])->fi() ->beginIF($params['key'])->andWhere('`key`')->in($params['key'])->fi(); } }