"./pics/brends/", 'pic_logo'=>"./pics/brends/logo/"); function __construct($lang){ $this->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 viewRubric($id){ return $this->db->getRow("select * from catalogs_brends where id=?",array($id),DB_FETCHMODE_ASSOC); } public function getRubrics_begin(){ $sql = "select id,parent_id,name_{$this->lang} as name from catalogs_brends where parent_id=? order by sort"; return $this->db->getAll($sql,array(0),DB_FETCHMODE_ASSOC); } // public function getRubrics_tree($id = 0,&$rubrics = array()){ // $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc"; // $res = $this->db->query($sql,array($id)); // while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){ // $rubrics[] = $row; // $this->getRubrics_tree($row['id'],$rubrics); // } // return $rubrics; // } public function getRubrics_tree($id = 0,$no_id = 0,$level = -1,&$rubrics = array()){ $sql = "select * from catalogs_brends 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; $rubrics[] = $row; $this->getRubrics_tree($row['id'],$no_id,$level,$rubrics); } /* foreach($res as $row){ $menu[] = $row; $this->getMenu($row['id'],$menu); } */ return $rubrics; } public function saveRubric($data,$upload){ $table_name = "catalogs_brends"; $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $fields_values = array( 'sort' => $data['sort'], 'name' => $data['name'], 'translit' => ($data['translit']) ? $data['translit'] : translitIt($data['name']), 'url' => $data['url'], 'meta_title' => $data['meta_title'], 'meta_description' => $data['meta_description'], 'meta_keywords' => $data['meta_keywords'], 'meta_about' => $data['meta_about'] ); if(isset($data['delete_pic']) && $data['delete_pic']==1){ if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic')); $fields_values['pic'] = null; } if($upload['pic']['tmp_name']){ if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic')); $type = substr(strrchr($upload['pic']['name'], "."), 1); $fields_values['pic'] = mktime() . "." . $type; move_uploaded_file($_FILES['pic']['tmp_name'], $this->path_pic['pic'] . $fields_values['pic']); //$fields_values['pic'] = upload_ImageResize2($upload['pic'],array('width'=>"900",'height'=>"900",'upload_path'=>$this->path_pic['pic'])); } if(isset($data['delete_pic_logo']) && $data['delete_pic_logo']==1){ if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic_logo')); $fields_values['pic_logo'] = null; } if($upload['pic_logo']['tmp_name']){ if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic_logo')); $type = substr(strrchr($upload['pic_logo']['name'], "."), 1); $fields_values['pic_logo'] = mktime() . "." . $type; move_uploaded_file($_FILES['pic_logo']['tmp_name'], $this->path_pic['pic_logo'] . $fields_values['pic_logo']); //$fields_values['pic_logo'] = upload_ImageResize2($upload['pic_logo'],array('width'=>"900",'height'=>"900",'upload_path'=>$this->path_pic['pic_logo'])); } $res = $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); if (PEAR::isError($res)) die($res->getMessage()); } private function deletePic($id,$pics = array('pic','pic_logo')){ $sql = "select ".implode(',',$pics)." from catalogs_brends where id=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); if($row['pic'])@unlink($this->path_pic['pic'] . $row['pic']); if($row['pic_logo'])@unlink($this->path_pic['pic_logo'] . $row['pic_logo']); } public function deleteRubric($id, $where = "id"){ $i = 0; //while($id>0){ //$where = ($i == 0) ? "id" : "parent_id"; $ids = $this->db->getAll("select id from catalogs_brends where " . $where . "=?",array($id),DB_FETCHMODE_ASSOC); foreach($ids as $id){ $this->deletePic($id['id']); $this->db->query("delete from catalogs_brends where id=?",array($id['id'])); $this->deleteKeysBrend($id['id']); $this->deleteRubric($id['id'],"parent_id"); } $i++; //} } public function saveKeys($shop_id,$brends){ $this->deleteKeysShop($shop_id); if(count($brends)) foreach($brends as $key=>$id){ $fields_values = array('shop_id'=>$shop_id,'brend_id'=>$id); $this->db->autoExecute("catalogs_brends_keys",$fields_values,DB_AUTOQUERY_INSERT); } } public function deleteKeysShop($shop_id){ $sql = "delete from catalogs_brends_keys where shop_id=?"; $this->db->query($sql,array($shop_id)); } public function deleteKeysBrend($brend_id){ $sql = "delete from catalogs_brends_keys where brend_id=?"; $this->db->query($sql,array($brend_id)); } public function getShopBrends($shop_id){ $sql = "select * from catalogs_brends_keys where shop_id=?"; return $this->db->getAll($sql,array($shop_id),DB_FETCHMODE_ASSOC); } } ?>