Blame view

modules/admin/model/catalog.class.php 3.91 KB
8d65d0ce   andryeyev   init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
  <?php
  Class Catalog{
  	private $db;
  	private $lang;
  	private $path_pic = array('pic'=>"./pics/catalog/");
   
  	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_rubrics where id=?",array($id),DB_FETCHMODE_ASSOC);
  	}	
  
  	public function getRubrics_begin(){
  		$sql = "select id,parent_id,name_{$this->lang} as name from catalogs_rubrics 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($brend_id = 0,$id = 0,$no_id = 0,$level = -1,&$rubrics = array()){
    $sql = "select * from catalogs_rubrics where 1=1 ";
    if($brend_id>0)$sql .= sprintf("and brend_id='%d' ",$brend_id);
    $sql .= "and 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($brend_id,$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_rubrics";
  		$DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
  		$fields_values = array(
  								'parent_id' => $data['parent_id'],
  								'sort' => $data['sort'],
  								'brend_id' => $data['brend_id'],
  								'name' => $data['name'],
  								'text' => $data['text'],
  								'text_view' => $data['text_view'],
  								'translit' => ($data['translit']) ? $data['translit'] : translitIt($data['name']),
  								'meta_title' => $data['meta_title'],
  								'meta_description' => $data['meta_description'],
  								'meta_keywords' => $data['meta_keywords'],
  								'meta_about' => $data['meta_about']
  								);
  								
  	if(isset($data['is_pic']))$fields_values['is_pic'] = $data['is_pic'];
  	else $fields_values['is_pic'] = 0;
  	
  	if(isset($data['is_view']))$fields_values['is_view'] = $data['is_view'];
  	else $fields_values['is_view'] = 0;
  	
  	if(isset($data['delete_pic']) && $data['delete_pic']==1){
  		if($data['update_id']>0)$this->deletePic($data['update_id']);
  		$fields_values['pic'] = null;
  	}
  	if($upload['pic']['tmp_name']){
  		if($data['update_id']>0)$this->deletePic($data['update_id']);
  		$fields_values['pic'] = upload_ImageResize2($upload['pic'],array('width'=>"900",'height'=>"900",'upload_path'=>$this->path_pic['pic']));
  	}
  	
  		$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){
    $sql = "select pic from catalogs_rubrics where id=?";
    $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
    @unlink($this->path_pic['pic'] . $row['pic']);
   } 
  
  
  	public function deleteRubric($id, $where = "id"){
  		$products = new Products($this->lang);
  		$i = 0;
  		//while($id>0){
  			//$where = ($i == 0) ? "id" : "parent_id";
  			$ids = $this->db->getAll("select id from catalogs_rubrics where " . $where . "=?",array($id),DB_FETCHMODE_ASSOC);
  			foreach($ids as $id){
  			$this->deletePic($id['id']);
  			$this->db->query("delete from catalogs_rubrics where id=?",array($id['id']));
  			$products->deleteProducts($id['id']);
  			$this->deleteRubric($id['id'],"parent_id");
  			}
  			$i++;
  		//}
  	}
  
  }
  ?>