db = sdb::getInstance(); $this->lang = $lang; } public function valid($data){ $error = array(); if(!preg_match("/.{1,50}/i",$data['name']))$error[] = "error name"; return $error; } public function save($data){ $fields_values = array( 'sort'=>$data['sort'], 'parent_id'=>$data['parent_id'], 'params'=>$data['params'], 'name_'.$this->lang=>$data['name'], 'title_'.$this->lang=>$data['title'], 'description_'.$this->lang=>$data['description'], 'keywords_'.$this->lang=>$data['keywords'], 'about_'.$this->lang=>$data['keywords'], ); $fields_values['is_menu'] = (isset($data['is_menu'])) ? $data['is_menu'] : 0; $fields_values['is_menu_bottom'] = (isset($data['is_menu_bottom'])) ? $data['is_menu_bottom'] : 0; if(isset($data['update_id']) && $data['update_id']>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id']}'";} else $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; $this->db->autoExecute("menu", $fields_values, $DB_AUTOQUERY,$where); } public function delete($id){ $i = 0; while($id>0){ $where = ($i == 0) ? "id" : "parent_id"; $id = $this->db->getOne("select id from menu where " . $where . "=?",array($id)); $this->db->query("delete from menu where id=?",array($id)); $i++; } } public function view($id){ return $this->db->getRow("select *,name_{$this->lang} as name,title_{$this->lang} as title,description_{$this->lang} as description,keywords_{$this->lang} as keywords,about_{$this->lang} as about from menu where id=?",array($id),DB_FETCHMODE_ASSOC); } public function view_params($param1,$value = null){ // print_r($_SERVER); /* $rt = explode("/" ,$rt); $rt = array_slice($rt, $offset,$length); print $params = implode("/",$rt); if($params) $params .= "/"; */ $params = ($value != null) ? $param1 . '/' . $value . '/' : (($param1 != null) ? $param1 . '/' : $param1); //$params = sprintf("%s/%s/",$param1,$value); return $this->db->getRow("select *,name_{$this->lang} as name from menu where params=?",array($params),DB_FETCHMODE_ASSOC); } public function getMenu($id = 0,$no_id = 0,$level = -1,&$menu = array()){ $sql = "select *,name_{$this->lang} as name from menu where parent_id=?"; if($no_id>0)$sql .= sprintf(" and id<>'%d'",$no_id); $sql .= " order by sort"; $res = $this->db->query($sql,array($id)); $level++; while($row = $res->fetchRow(DB_FETCHMODE_ASSOC)){ $row['level'] = $level; $menu[] = $row; $this->getMenu($row['id'],$no_id,$level,$menu); } /* foreach($res as $row){ $menu[] = $row; $this->getMenu($row['id'],$menu); } */ return $menu; } public function getMenuUL($url,$id = 0,&$menu = ''){ // global $menu; $q=$this->db->query("select *,name_{$this->lang} as name from menu where parent_id=? order by sort asc",array($id)); if(!$q->numRows()) return; $menu.= "