catalog.class.php
3.91 KB
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++;
//}
}
}
?>