rubrics.class.php
6.59 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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<?php
class Rubrics{
var $db = null;
var $tpl = null;
var $error = null;
//var $id = false;
function Rubrics(&$db,&$tpl,&$error){
$this->db = &$db;
$this->tpl = &$tpl;
$this->error = &$error;
}
function trim(&$data){
foreach($data as $key=>$value){
if(is_array($data[$key]))$this->trim($data[$key]);
else $data[$key] = trim($value);
}
}
function valid($data,$upload = null){
if(isset($data['order_name'])){
if( !preg_match("/.{1,100}/i",$data['order_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
}
if(isset($data['order_adress'])){
if( !preg_match("/.{1,200}/i",$data['order_adress']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ order_adress (Ìàêñèìóì 200 ñèìâîëîâ).";
}
if(isset($data['order_tel'])){
if( !preg_match("/.{1,70}/i",$data['order_tel']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ).";
}
if(isset($data['order_email'])){
if( !preg_match("/^([^@]+)+@([^@]+)\.([^@]+)$/i",$data['order_email']) || strlen($data['order_email'])>80 ) $this->error[] = "Îøèáêà ââîäà ïîëÿ E-mail, äî 80 ñèìâîëîâ.";
}
return ( count($this->error) ) ? true : false;
}
function saveRubric($data,$upload){
$table_name = "rubrics";
if($data['update_id']>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$id = $data['update_id'];$where = "id=$id";}else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$id = $this->db->nextId('mySequenceRubrics');$where = null;}
$parent_id = (isset($data['parent_id']) ? $data['parent_id'] : 0);
$fields_values = array("id"=>$id,"parent_id"=>$parent_id,"level"=>($this->getLevelRubric($parent_id)+1),"name_rus"=>$data['name_rus'],
"text_rus"=>$data['text_rus'],"sort"=>$data['sort'],
"meta_title_rus"=>$data['meta_title_rus'],
"meta_description_rus"=>$data['meta_description_rus'],
"meta_keywords_rus"=>$data['meta_keywords_rus'],
"meta_about_rus"=>$data['meta_about_rus'],"rub_id"=>$data['rub_id']);
if($upload['pic']['tmp_name']){
$fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/rubrics/"));
$fields_values['pic_big'] = upload_ImageResize($upload['pic'],array('width'=>"250",'height'=>"250",'upload_path'=>"./uploaded/pic/rubrics/big/"));
}
$this->db->autoExecute($table_name, $fields_values, $DB_AUTOQUERY,$where);
return $id;
}
function getLevelRubric($id){
$level = $this->db->getOne("select level from rubrics where id=?",array($id));
return ($level==null)? -1 : $level;
}
function viewRubricOne($id){
$sql = "select * from rubrics where id=? limit 1";
$row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
$this->tpl->assign("rubric",$row);
}
function viewRubricOneLang($id,&$row,$lang = "rus"){
$sql = "select name_$lang as name,text_$lang as text,meta_title_$lang as meta_title,meta_description_$lang as meta_description,meta_keywords_$lang as meta_keywords,meta_about_$lang as meta_about from rubrics where id=? limit 1";
$row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
$this->tpl->assign("rubric",$row);
}
function deleteRubricTree($id){
$sql = "select * from rubrics where parent_id=? order by sort asc";
$res = $this->db->query($sql,array($id));
while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
$sql = "delete from rubrics where id=?";
$this->db->query($sql,array($row['id']));
$this->deleteRubricTree($row['id']);
}
$sql = "delete from rubrics where id=?";
$this->db->query($sql,array($id));
}
function getRubricsTree($id = 0,$rub_id){
global $rubrics;
$sql = "select * from rubrics where rub_id=? and parent_id=? order by sort asc";
$res = $this->db->query($sql,array($rub_id,$id));
while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
$rubrics[] = $row;
//if($parent_id == $row['id'])$this->viewRubricsTree($row['id']);
$this->viewRubricsTree($row['id'],$rub_id);
}
// print_r($rubrics);
return $rubrics;
}
function is_RubricsTree($rub_id){
return $this->db->getOne("select count(*) from rubrics where rub_id=?",array($rub_id));
}
function viewRubricsTreeAll($id = 0,$rub_id,$open_id,$lang = "rus"){
global $rubrics, $i, $p;
if(!$i)$i = 0;
if(!$p)$p = 0;
$sql = "select rubrics.id,rubrics.parent_id,rubrics.name_$lang as name,rules.action from rubrics LEFT JOIN rules ON rules.id=rub_id where rubrics.parent_id=? and rubrics.rub_id=? order by rubrics.sort asc";
//$res = $this->db->query($sql,array($rub_id,$id));
//while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
$res = $this->db->getAll($sql,array($id,$rub_id),DB_FETCHMODE_ASSOC);
foreach($res as $row){
if($row['parent_id']>0){ $rubrics[$p]['parent'][] = $row;}
else {$rubrics[$i] = $row;
$p = $i;$i++;}
//$this->viewRubricsTreeAll($row['id'],$rub_id,$lang);
if(in_array($row['id'],$this->getParentIdRubric($open_id))){$this->viewRubricsTreeAll($row['id'],$rub_id,$open_id,$lang);}
}
// print"<pre>"; print_r($rubrics);print"</pre>";
$this->tpl->assign("rubrics",$rubrics);
return $rubrics;
}
function getParentIdRubric($id){
$ids = array();
while($id>0){
$row = $this->db->getRow('select id,parent_id from rubrics where id=?',array($id),DB_FETCHMODE_ASSOC);
$ids[] = $row['id'];
$id = $row['parent_id'];
} //print_r($ids);
// sort($ids);
return $ids;
}
function viewRubricsTree($id = 0,$rub_id){
$this->tpl->assign("rubrics",$this->getRubricsTree($id,$rub_id));
}
function viewRubricsTreeBlock($id = 0,$parent_id,$rub_id,$lang = "rus"){
/* $ids = $this->getParentIdRubric($parent_id);
array_unshift($ids, "0");
foreach($ids as $row){ print $row;
$res = $this->getRubricsTreeOpen($row,$parent_id,$rub_id,$lang);
} */
global $out;
$out = '';
$res = $this->getRubricsTreeOpen($id,$parent_id,$rub_id,$lang);
$this->tpl->assign("rubrics_$rub_id",$res);
}
function viewParentRubrics($id,$lang = "rus"){
$row = $this->db->getAll("select id,pic,name_$lang as name,text_$lang as text from rubrics where parent_id=?",array($id),DB_FETCHMODE_ASSOC);
$this->tpl->assign("rubric_parent",$row);
}
function viewRubricsBlock($rub_id,$lang = "rus"){
$row = $this->db->getAll("select id,pic,name_$lang as name,text_$lang as text from rubrics where rub_id=? and level='0' order by sort",array($rub_id),DB_FETCHMODE_ASSOC);
$this->tpl->assign("rubric_block_$rub_id",$row);
}
function displayStaticsEdit(){
$this->tpl->assign("tpl","statics_form.tpl");
}
function displayRubrics(){
$this->tpl->assign("tpl","rubrics.tpl");
}
function displayRubric(){
$this->tpl->assign("tpl","rubric.tpl");
}
}
?>