Commit 7a508b626927c3f92125c618487b4ec40eea7038
1 parent
e8fe9e4a
+ попытка исправить фильтры (отложили на будущее)
Showing
1 changed file
with
5048 additions
and
3532 deletions
Show diff stats
libs/catalogs.class.php
Changes suppressed. Click to show
1 | 1 | <?php |
2 | -class Catalogs{ | |
3 | - var $db = null; | |
4 | - var $tpl = null; | |
5 | - var $error = null; | |
6 | - var $cache = null; | |
7 | - var $photo_id = null; | |
8 | 2 | |
3 | +include_once $_SERVER['DOCUMENT_ROOT'].'/libs/SqlQuery.class.php'; | |
9 | 4 | |
10 | - function Catalogs(&$db,&$tpl,&$error,&$cache){ | |
11 | - $this->db = &$db; | |
12 | - $this->tpl = &$tpl; | |
13 | - $this->error = &$error; | |
14 | - $this->cache = &$cache; | |
15 | - } | |
16 | - | |
17 | - | |
18 | - function trim(&$data){ | |
19 | - foreach($data as $key=>$value){ | |
20 | - if(is_array($value))$this->trim($value); | |
21 | - else $data[$key] = stripslashes(trim($value)); | |
22 | - } | |
23 | - } | |
24 | - | |
25 | - | |
26 | - function valid($data,$upload = null){ | |
27 | - | |
28 | - if(isset($data['name'])){ | |
29 | - if( !preg_match("/.{1,100}/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ."; | |
30 | - } | |
31 | - | |
32 | - if(isset($data['about_min'])){ | |
33 | - if( !preg_match("/.+/is",$data['about_min']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Êðàòêîå îïèñàíèå."; | |
34 | - } | |
35 | - /* | |
36 | - if(isset($data['text'])){ | |
37 | - if( !preg_match("/.+/is",$data['text']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ïîëíîå îïèñàíèå."; | |
38 | - } */ | |
39 | -/* | |
40 | - if(isset($data['cine'])){ | |
41 | - if( !preg_match("/[0-9]+/",$data['cine']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Öåíà, òîëüêî öèôðû."; | |
42 | - } */ | |
43 | - | |
44 | - if(isset($upload['pic']['name']) && $upload['pic']['tmp_name']){ | |
45 | - $type = substr(strrchr($upload['pic']['name'],"."),1); | |
46 | - if( !preg_match("/^(jpeg|jpg|gif|png|bmp)$/i",$type) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif."; | |
47 | - } | |
48 | - | |
49 | - if(isset($upload['file']['name'])){ | |
50 | - if( !preg_match("/\.csv$/i",$upload['file']['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ CSV ôàéë, òîëüêî csv."; | |
51 | - } | |
52 | - | |
5 | +class Catalogs | |
6 | +{ | |
7 | + var $db = null; | |
8 | + var $tpl = null; | |
9 | + var $error = null; | |
10 | + var $cache = null; | |
11 | + var $photo_id = null; | |
12 | + | |
13 | + function Catalogs (&$db, &$tpl, &$error, &$cache) | |
14 | + { | |
15 | + $this->db = &$db; | |
16 | + $this->tpl = &$tpl; | |
17 | + $this->error = &$error; | |
18 | + $this->cache = &$cache; | |
19 | + } | |
20 | + | |
21 | + function trim (&$data) | |
22 | + { | |
23 | + foreach ($data as $key => $value) | |
24 | + { | |
25 | + if (is_array ($value)) | |
26 | + $this->trim ($value); | |
27 | + else | |
28 | + $data[$key] = stripslashes (trim ($value)); | |
29 | + } | |
30 | + } | |
31 | + | |
32 | + function valid ($data, $upload = null) | |
33 | + { | |
34 | + if (isset ($data['name'])) | |
35 | + { | |
36 | + if (! preg_match ("/.{1,100}/i", $data['name'])) | |
37 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ."; | |
38 | + } | |
39 | + | |
40 | + if (isset ($data['about_min'])) | |
41 | + { | |
42 | + if (! preg_match ("/.+/is", $data['about_min'])) | |
43 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Êðàòêîå îïèñàíèå."; | |
44 | + } | |
45 | + /* | |
46 | + * if(isset($data['text'])){ | |
47 | + * if( !preg_match("/.+/is",$data['text']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ïîëíîå îïèñàíèå."; | |
48 | + * } | |
49 | + */ | |
50 | + /* | |
51 | + * if(isset($data['cine'])){ | |
52 | + * if( !preg_match("/[0-9]+/",$data['cine']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Öåíà, òîëüêî öèôðû."; | |
53 | + * } | |
54 | + */ | |
55 | + | |
56 | + if (isset ($upload['pic']['name']) && $upload['pic']['tmp_name']) | |
57 | + { | |
58 | + $type = substr (strrchr ($upload['pic']['name'], "."), 1); | |
59 | + if (! preg_match ("/^(jpeg|jpg|gif|png|bmp)$/i", $type)) | |
60 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif."; | |
61 | + } | |
62 | + | |
63 | + if (isset ($upload['file']['name'])) | |
64 | + { | |
65 | + if (! preg_match ("/\.csv$/i", $upload['file']['name'])) | |
66 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ CSV ôàéë, òîëüêî csv."; | |
67 | + } | |
68 | + | |
69 | + if (isset ($data['order_name'])) | |
70 | + { | |
71 | + if (! preg_match ("/.{1,100}/i", $data['order_name'])) | |
72 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
73 | + } | |
74 | + | |
75 | + if (isset ($data['order_adress'])) | |
76 | + { | |
77 | + if (! preg_match ("/.{1,200}/i", $data['order_adress'])) | |
78 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Àäðåñ (Ìàêñèìóì 200 ñèìâîëîâ)."; | |
79 | + } | |
80 | + | |
81 | + if (isset ($data['order_phone2']) && strlen ($data['order_phone2']) > 0) | |
82 | + { | |
83 | + if (! preg_match ("/.{1,20}/i", $data['order_phone2'])) | |
84 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ)."; | |
85 | + } | |
86 | + | |
87 | + if (isset ($data['order_phone'])) | |
88 | + { | |
89 | + if (trim ($data['order_phone']) == "") | |
90 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX)."; | |
91 | + if (strlen (trim ($data['order_phone'])) < 5) | |
92 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX)."; | |
93 | + } | |
94 | + | |
95 | + if (isset ($data['delivery']) && $data['delivery'] == 0) | |
96 | + { | |
97 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Äîñòàâêà."; | |
98 | + } | |
99 | + | |
100 | + if (isset ($data['user_name'])) | |
101 | + { | |
102 | + if (! preg_match ("/.{1,100}/i", $data['user_name'])) | |
103 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
104 | + } | |
105 | + | |
106 | + if (isset ($data['order_city'])) | |
107 | + { | |
108 | + if (! preg_match ("/.{1,100}/i", $data['order_city'])) | |
109 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Ãîðîä (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
110 | + } | |
111 | + | |
112 | + if (isset ($data['user_email'])) | |
113 | + { | |
114 | + if (! preg_match ("/.{1,80}/i", $data['user_email'])) | |
115 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø e-mail (Ìàêñèìóì 80 ñèìâîëîâ)."; | |
116 | + } | |
117 | + | |
118 | + if (isset ($data['user_login'])) | |
119 | + { | |
120 | + if (! preg_match ("/.{1,100}/i", $data['user_login'])) | |
121 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ëîãèí (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
122 | + elseif ($this->isLoginUser ($data['user_login'])) | |
123 | + $this->error[] = "Îøèáêà òàêîé Ëîãèí óæå åñòü!"; | |
124 | + } | |
125 | + | |
126 | + if (isset ($data['you_login'])) | |
127 | + { | |
128 | + if (! $this->isLoginUser ($data['you_login'])) | |
129 | + $this->error[] = "Òàêîãî ËÎÃÈÍÀ íåò â áàçå äàííûõ ñàéòà!"; | |
130 | + } | |
131 | + | |
132 | + if (isset ($data['user_psw'])) | |
133 | + { | |
134 | + if (! preg_match ("/.{1,100}/i", $data['user_psw'])) | |
135 | + $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ïàðîëü (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
136 | + } | |
137 | + | |
138 | + return (count ($this->error)) ? true : false; | |
139 | + } | |
53 | 140 | |
54 | - if(isset($data['order_name'])){ | |
55 | - if( !preg_match("/.{1,100}/i",$data['order_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
56 | - } | |
57 | - | |
58 | - if(isset($data['order_adress'])){ | |
59 | - if( !preg_match("/.{1,200}/i",$data['order_adress']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Àäðåñ (Ìàêñèìóì 200 ñèìâîëîâ)."; | |
60 | - } | |
61 | - | |
62 | - if(isset($data['order_phone2'])&& strlen($data['order_phone2'])>0){ | |
63 | - if( !preg_match("/.{1,20}/i",$data['order_phone2']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ)."; | |
64 | - } | |
141 | + function deleteRubric ($id, $field = "id") | |
142 | + { | |
143 | + $sql = "select pic,id,parent_id from catalogs_rubrics where $field=?"; | |
144 | + $res = $this->db->getAll ($sql, array ( | |
145 | + $id | |
146 | + ), DB_FETCHMODE_ASSOC); | |
147 | + foreach ($res as $row) | |
148 | + { | |
149 | + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/rubrics/{$row['pic']}"); | |
150 | + $sql = "delete from catalogs_rubrics where id=?"; | |
151 | + $this->db->query ($sql, array ( | |
152 | + $row['id'] | |
153 | + )); | |
154 | + $this->deleteFiltersRubric_id ($row['id']); | |
155 | + $this->deleteFiltersRubric_id2 ($row['id']); | |
156 | + $this->deleteYearsRubric_id ($row['id']); | |
157 | + $this->deleteProductsRubric ($row['id']); | |
158 | + $this->deleteRubric ($row['id'], "parent_id"); | |
159 | + } | |
160 | + } | |
65 | 161 | |
66 | - if(isset($data['order_phone'])){ | |
67 | -if( trim($data['order_phone']) == "" ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX)."; | |
68 | -if( strlen(trim($data['order_phone']))<5 ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX)."; | |
69 | - } | |
70 | - | |
71 | - if(isset($data['delivery']) && $data['delivery']==0){ | |
72 | - $this->error[] = "Îøèáêà ââîäà ïîëÿ Äîñòàâêà."; | |
73 | - } | |
74 | - | |
75 | - if(isset($data['user_name'])){ | |
76 | - if( !preg_match("/.{1,100}/i",$data['user_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
77 | - } | |
78 | - | |
79 | - if(isset($data['order_city'])){ | |
80 | - if( !preg_match("/.{1,100}/i",$data['order_city']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ãîðîä (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
81 | - } | |
82 | - | |
83 | - if(isset($data['user_email'])){ | |
84 | - if( !preg_match("/.{1,80}/i",$data['user_email']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø e-mail (Ìàêñèìóì 80 ñèìâîëîâ)."; | |
85 | - } | |
86 | - | |
87 | - if(isset($data['user_login'])){ | |
88 | - if( !preg_match("/.{1,100}/i",$data['user_login']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ëîãèí (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
89 | - elseif( $this->isLoginUser($data['user_login']) ) $this->error[] = "Îøèáêà òàêîé Ëîãèí óæå åñòü!"; | |
90 | - } | |
91 | - | |
92 | - if(isset($data['you_login'])){ | |
93 | - if( !$this->isLoginUser($data['you_login']) ) $this->error[] = "Òàêîãî ËÎÃÈÍÀ íåò â áàçå äàííûõ ñàéòà!"; | |
94 | - } | |
95 | - | |
96 | - if(isset($data['user_psw'])){ | |
97 | - if( !preg_match("/.{1,100}/i",$data['user_psw']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ïàðîëü (Ìàêñèìóì 100 ñèìâîëîâ)."; | |
98 | - } | |
162 | + function deleteProductPics ($id, $pics = array('pic_big','pic','pic2')) | |
163 | + { | |
164 | + $sql = "select pic_big,pic,pic2 from catalogs_products where id=?"; | |
165 | + $row = $this->db->getRow ($sql, array ( | |
166 | + $id | |
167 | + ), DB_FETCHMODE_ASSOC); | |
168 | + // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}"); | |
169 | + if (in_array ('pic', $pics)) | |
170 | + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/{$row['pic']}"); | |
171 | + if (in_array ('pic2', $pics)) | |
172 | + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/2/{$row['pic2']}"); | |
173 | + } | |
99 | 174 | |
100 | - return ( count($this->error) ) ? true : false; | |
101 | - } | |
102 | - | |
103 | - function deleteRubric($id,$field="id"){ | |
104 | - $sql = "select pic,id,parent_id from catalogs_rubrics where $field=?"; | |
105 | - $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); | |
106 | - foreach($res as $row){ | |
107 | - @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/rubrics/{$row['pic']}"); | |
108 | - $sql = "delete from catalogs_rubrics where id=?"; | |
109 | - $this->db->query($sql,array($row['id'])); | |
110 | - $this->deleteFiltersRubric_id($row['id']); | |
111 | - $this->deleteFiltersRubric_id2($row['id']); | |
112 | - $this->deleteYearsRubric_id($row['id']); | |
113 | - $this->deleteProductsRubric($row['id']); | |
114 | - $this->deleteRubric($row['id'],"parent_id"); | |
115 | - } | |
116 | - } | |
117 | - | |
118 | - function deleteProductPics($id,$pics = array('pic_big','pic','pic2')){ | |
119 | - $sql = "select pic_big,pic,pic2 from catalogs_products where id=?"; | |
120 | - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
121 | - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}"); | |
122 | - if(in_array('pic',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/{$row['pic']}"); | |
123 | - if(in_array('pic2',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/2/{$row['pic2']}"); | |
124 | - } | |
125 | - | |
126 | - function deleteProduct($id){ | |
127 | - $this->deleteProductPics($id); | |
128 | - $sql = "delete from catalogs_products where id=?"; | |
129 | - $this->db->query($sql,array($id)); | |
130 | - $this->delete_keysProductsFilters($id); | |
131 | - $this->delete_keysProductsFilters2($id); | |
132 | - $this->delete_keysProductsAkcii($id); | |
133 | - $this->delete_keysProductsYears($id); | |
134 | - $this->delete_keysProductsCities($id); | |
135 | - $this->deleteProductModifications($id); | |
136 | - } | |
137 | - | |
138 | - function deleteProductsRubric($id){ | |
139 | - $res = $this->db->getAll("select id from catalogs_products where rubric_id=?",array($id),DB_FETCHMODE_ASSOC); | |
140 | - foreach($res as $row){ | |
141 | - $this->deleteProduct($row['id']); | |
142 | - $this->deleteGalleryProduct($row['id']); | |
143 | - } | |
144 | - } | |
175 | + function deleteProduct ($id) | |
176 | + { | |
177 | + $this->deleteProductPics ($id); | |
178 | + $sql = "delete from catalogs_products where id=?"; | |
179 | + $this->db->query ($sql, array ( | |
180 | + $id | |
181 | + )); | |
182 | + $this->delete_keysProductsFilters ($id); | |
183 | + $this->delete_keysProductsFilters2 ($id); | |
184 | + $this->delete_keysProductsAkcii ($id); | |
185 | + $this->delete_keysProductsYears ($id); | |
186 | + $this->delete_keysProductsCities ($id); | |
187 | + $this->deleteProductModifications ($id); | |
188 | + } | |
145 | 189 | |
190 | + function deleteProductsRubric ($id) | |
191 | + { | |
192 | + $res = $this->db->getAll ("select id from catalogs_products where rubric_id=?", array ( | |
193 | + $id | |
194 | + ), DB_FETCHMODE_ASSOC); | |
195 | + foreach ($res as $row) | |
196 | + { | |
197 | + $this->deleteProduct ($row['id']); | |
198 | + $this->deleteGalleryProduct ($row['id']); | |
199 | + } | |
200 | + } | |
146 | 201 | |
147 | - function PhotosCheck($id_s,$check_s = array()){ | |
148 | - $sql = "UPDATE gallery SET active = ? WHERE id =?"; | |
202 | + function PhotosCheck ($id_s, $check_s = array()) | |
203 | + { | |
204 | + $sql = "UPDATE gallery SET active = ? WHERE id =?"; | |
205 | + | |
206 | + foreach ($id_s as $id) | |
207 | + { | |
208 | + $this->db->query ($sql, array ( | |
209 | + 0, | |
210 | + $id | |
211 | + )); | |
212 | + } | |
213 | + | |
214 | + if (count ($check_s)) | |
215 | + { | |
216 | + foreach ($check_s as $id) | |
217 | + { | |
218 | + $this->db->query ($sql, array ( | |
219 | + 1, | |
220 | + $id | |
221 | + )); | |
222 | + } | |
223 | + } | |
224 | + } | |
149 | 225 | |
150 | - foreach($id_s as $id){ | |
151 | - $this->db->query($sql,array(0,$id)); | |
152 | - } | |
153 | - if(count($check_s)){ | |
154 | - foreach($check_s as $id){ | |
155 | - $this->db->query($sql,array(1,$id)); | |
156 | - } | |
157 | - } | |
158 | - } | |
159 | - | |
160 | - function viewRubrics($id = 0,$parent_id = 0){ // print $parent_id."<br />"; | |
161 | - global $rubrics; | |
162 | - //if(!$this->cache->cacheLife("cache_sql_rubrics")){ | |
163 | - | |
164 | - //$sql = "select a.*,(select b.id from catalogs_rubrics b where b.parent_id=a.id order by b.sort limit 1) as r_pid from catalogs_rubrics a where a.parent_id=? group by a.id order by a.sort asc"; | |
165 | - $sql = " | |
226 | + function viewRubrics ($id = 0, $parent_id = 0) | |
227 | + { // print $parent_id."<br />"; | |
228 | + global $rubrics; | |
229 | + // if(!$this->cache->cacheLife("cache_sql_rubrics")){ | |
230 | + | |
231 | + // $sql = "select a.*,(select b.id from catalogs_rubrics b where b.parent_id=a.id order by b.sort limit 1) as r_pid from catalogs_rubrics a where a.parent_id=? group by a.id order by a.sort asc"; | |
232 | + $sql = " | |
166 | 233 | select |
167 | 234 | a.name, |
168 | 235 | a.name_ukr, |
... | ... | @@ -186,33 +253,45 @@ if( strlen(trim($data['order_phone']))<5 ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ì |
186 | 253 | group by a.id |
187 | 254 | order by a.sort asc |
188 | 255 | "; |
189 | - | |
190 | -$res = $this->db->query($sql,array($id)); | |
191 | - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){ | |
192 | - $rubrics[] = $row; //print $row['id']."<br />"; | |
256 | + | |
257 | + $res = $this->db->query ($sql, array ( | |
258 | + $id | |
259 | + )); | |
193 | 260 | |
194 | - if(in_array($row['id'],$this->getParentIdRubric($parent_id))){$this->viewRubrics($row['id']);} | |
195 | - // if($row['level']==0){$this->viewRubrics($row['id']);} | |
196 | - } | |
261 | + while ($res->fetchInto ($row, DB_FETCHMODE_ASSOC)) | |
262 | + { | |
263 | + $rubrics[] = $row; // print $row['id']."<br />"; | |
264 | + | |
265 | + if (in_array ($row['id'], $this->getParentIdRubric ($parent_id))) | |
266 | + { | |
267 | + $this->viewRubrics ($row['id']); | |
268 | + } | |
269 | + // if($row['level']==0){$this->viewRubrics($row['id']);} | |
270 | + } | |
197 | 271 | // $this->cache->cacheSave($rubrics,130); |
198 | - //}else $count = $this->cache->sql_result; | |
199 | - $this->tpl->assign("rubrics",$rubrics); | |
200 | - } | |
201 | - | |
202 | - function getParentIdRubric($id){ | |
203 | - //$ids = array(); | |
204 | - global $ids; | |
205 | - if(!count($ids))$ids = array(); | |
206 | - while($id>0){ | |
207 | - $row = $this->db->getRow('select id,parent_id from catalogs_rubrics where id=?',array($id),DB_FETCHMODE_ASSOC); | |
208 | - //if(isset($row['id'])) | |
209 | - $ids[] = $row['id']; | |
210 | - $id = $row['parent_id']; | |
211 | - } //print_r($ids); | |
212 | - // sort($ids); | |
213 | - return $ids; | |
214 | - } | |
215 | - | |
272 | + // }else $count = $this->cache->sql_result; | |
273 | + $this->tpl->assign ("rubrics", $rubrics); | |
274 | + } | |
275 | + | |
276 | + function getParentIdRubric ($id) | |
277 | + { | |
278 | + // $ids = array(); | |
279 | + global $ids; | |
280 | + if (! count ($ids)) | |
281 | + $ids = array (); | |
282 | + while ($id > 0) | |
283 | + { | |
284 | + $row = $this->db->getRow ('select id,parent_id from catalogs_rubrics where id=?', array ( | |
285 | + $id | |
286 | + ), DB_FETCHMODE_ASSOC); | |
287 | + // if(isset($row['id'])) | |
288 | + $ids[] = $row['id']; | |
289 | + $id = $row['parent_id']; | |
290 | + } // print_r($ids); | |
291 | + // sort($ids); | |
292 | + return $ids; | |
293 | + } | |
294 | + | |
216 | 295 | function viewRubricsAll ($id = 0) |
217 | 296 | { |
218 | 297 | global $rubrics; |
... | ... | @@ -234,24 +313,24 @@ $res = $this->db->query($sql,array($id)); |
234 | 313 | WHERE parent_id=? |
235 | 314 | ORDER BY sort asc |
236 | 315 | "; |
237 | - $res = $this->db->query($sql,array($id)); | |
238 | - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)) | |
316 | + $res = $this->db->query ($sql, array ( | |
317 | + $id | |
318 | + )); | |
319 | + while ($res->fetchInto ($row, DB_FETCHMODE_ASSOC)) | |
239 | 320 | { |
240 | 321 | $rubrics[] = $row; |
241 | - $this->viewRubricsAll($row['id']); | |
322 | + $this->viewRubricsAll ($row['id']); | |
242 | 323 | } |
243 | - | |
244 | - $this->tpl->assign("rubrics",$rubrics); | |
324 | + | |
325 | + $this->tpl->assign ("rubrics", $rubrics); | |
245 | 326 | } |
246 | 327 | |
247 | - | |
248 | - function viewRubrics_begin ($item = 'parents',$lang = 'ru') | |
328 | + function viewRubrics_begin ($item = 'parents', $lang = 'ru') | |
249 | 329 | { |
250 | - //if(!$this->cache->cacheLife("cache_sql_rubrics_$item"."_".$lang)){ | |
251 | - | |
330 | + // if(!$this->cache->cacheLife("cache_sql_rubrics_$item"."_".$lang)){ | |
252 | 331 | $sql = " |
253 | 332 | SELECT |
254 | - a.name".(($lang=='ukr')?'_ukr':'')." as name, | |
333 | + a.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name, | |
255 | 334 | a.id, |
256 | 335 | a.parent_id, |
257 | 336 | a.level, |
... | ... | @@ -274,15 +353,17 @@ $res = $this->db->query($sql,array($id)); |
274 | 353 | ORDER BY a.sort asc |
275 | 354 | "; |
276 | 355 | |
277 | - $row = $this->db->getAll($sql, array (0), DB_FETCHMODE_ASSOC); | |
278 | - | |
356 | + $row = $this->db->getAll ($sql, array ( | |
357 | + 0 | |
358 | + ), DB_FETCHMODE_ASSOC); | |
359 | + | |
279 | 360 | foreach ($row as $key => $value) |
280 | 361 | { |
281 | 362 | if ($item == 'parents') |
282 | 363 | { |
283 | - $row[$key]['parents'] = $this->db->getAll(" | |
364 | + $row[$key]['parents'] = $this->db->getAll (" | |
284 | 365 | SELECT |
285 | - a.name".(($lang=='ukr')?'_ukr':'')." as name, | |
366 | + a.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name, | |
286 | 367 | a.id, |
287 | 368 | a.parent_id, |
288 | 369 | a.level, |
... | ... | @@ -296,11 +377,13 @@ $res = $this->db->query($sql,array($id)); |
296 | 377 | FROM catalogs_rubrics a |
297 | 378 | WHERE parent_id=? |
298 | 379 | ORDER BY sort asc |
299 | - ", array($value['id']), DB_FETCHMODE_ASSOC); | |
380 | + ", array ( | |
381 | + $value['id'] | |
382 | + ), DB_FETCHMODE_ASSOC); | |
300 | 383 | } |
301 | 384 | else if ($item == 'brends') |
302 | 385 | { |
303 | - $row[$key]['brends'] = $this->db->getAll(" | |
386 | + $row[$key]['brends'] = $this->db->getAll (" | |
304 | 387 | SELECT * |
305 | 388 | FROM catalogs_brends |
306 | 389 | WHERE rubric_id in ( |
... | ... | @@ -309,58 +392,58 @@ $res = $this->db->query($sql,array($id)); |
309 | 392 | WHERE parent_id=? or id=? |
310 | 393 | ) |
311 | 394 | GROUP BY name |
312 | - ",array ($value['id'], $value['id']), DB_FETCHMODE_ASSOC); | |
395 | + ", array ( | |
396 | + $value['id'], | |
397 | + $value['id'] | |
398 | + ), DB_FETCHMODE_ASSOC); | |
313 | 399 | } |
314 | 400 | } |
315 | - | |
316 | - $this->tpl->assign("catalogs_rubrics_begin", $row); | |
401 | + | |
402 | + $this->tpl->assign ("catalogs_rubrics_begin", $row); | |
317 | 403 | } |
318 | 404 | |
319 | 405 | // ==== CACHE viewRubrics begin ==== |
320 | - | |
321 | 406 | function getFilenameCacheVRB ($item = 'parents', $lang = 'ru') |
322 | 407 | { |
323 | - return $_SERVER['DOCUMENT_ROOT'].'/cache/menu/menu-'.$item.'-'.$lang.'.php'; | |
408 | + return $_SERVER['DOCUMENT_ROOT'] . '/cache/menu/menu-' . $item . '-' . $lang . '.php'; | |
324 | 409 | } |
325 | - | |
410 | + | |
326 | 411 | function isFreshCacheVRB ($item = 'parents', $lang = 'ru') |
327 | 412 | { |
328 | 413 | $filename = $this->getFilenameCacheVRB ($item, $lang); |
329 | 414 | $time = 60 * 60 * 24; |
330 | - | |
331 | - if (is_file ($filename) && (filemtime ($filename) + $time) > time()) | |
415 | + | |
416 | + if (is_file ($filename) && (filemtime ($filename) + $time) > time ()) | |
332 | 417 | { |
333 | 418 | return true; |
334 | 419 | } |
335 | 420 | |
336 | 421 | return false; |
337 | 422 | } |
338 | - | |
423 | + | |
339 | 424 | function saveCacheVRB ($item = 'parents', $lang = 'ru') |
340 | - { | |
341 | - $filename = $this->getFilenameCacheVRB ($item, $lang); | |
342 | - | |
425 | + { | |
426 | + $filename = $this->getFilenameCacheVRB ($item, $lang); | |
427 | + | |
343 | 428 | ob_start (); |
344 | - var_export ($this->tpl->get_template_vars('catalogs_rubrics_begin')); | |
345 | - // $row - êàñòûëü çàòî÷êà ïîä "catalogs_rubrics_begin", $row | |
346 | - file_put_contents ($filename, '<?php $row = '.ob_get_clean (). ';'); | |
429 | + var_export ($this->tpl->get_template_vars ('catalogs_rubrics_begin')); | |
430 | + // $row - êàñòûëü çàòî÷êà ïîä "catalogs_rubrics_begin", $row | |
431 | + file_put_contents ($filename, '<?php $row = ' . ob_get_clean () . ';'); | |
347 | 432 | } |
348 | - | |
433 | + | |
349 | 434 | function loadCacheVRB ($item = 'parents', $lang = 'ru') |
350 | - { | |
435 | + { | |
351 | 436 | include_once $this->getFilenameCacheVRB ($item, $lang); |
352 | 437 | |
353 | 438 | if (! isset ($this->zlofound)) |
354 | - { | |
355 | - $this->tpl->assign("catalogs_rubrics_begin", $row); | |
439 | + { | |
440 | + $this->tpl->assign ("catalogs_rubrics_begin", $row); | |
356 | 441 | $this->zlofound = true; |
357 | 442 | unset ($row); |
358 | 443 | } |
359 | - } | |
360 | - | |
361 | - // ==== ==== | |
362 | - | |
363 | - function viewRubrics_parent($parent_id = 0) | |
444 | + } | |
445 | + | |
446 | + function viewRubrics_parent ($parent_id = 0) | |
364 | 447 | { |
365 | 448 | $sql = " |
366 | 449 | SELECT |
... | ... | @@ -381,14 +464,16 @@ $res = $this->db->query($sql,array($id)); |
381 | 464 | ORDER BY sort asc |
382 | 465 | "; |
383 | 466 | |
384 | - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC); | |
385 | - $this->tpl->assign("catalogs_rubrics_parent",$row); | |
467 | + $row = $this->db->getAll ($sql, array ( | |
468 | + $parent_id | |
469 | + ), DB_FETCHMODE_ASSOC); | |
470 | + $this->tpl->assign ("catalogs_rubrics_parent", $row); | |
386 | 471 | } |
387 | - | |
472 | + | |
388 | 473 | function viewRubrics_parent2 ($rub_id, $lang = 'ru') |
389 | 474 | { |
390 | - $parent_id = $this->getRubricParent($rub_id); | |
391 | - | |
475 | + $parent_id = $this->getRubricParent ($rub_id); | |
476 | + | |
392 | 477 | if ($parent_id == 0) |
393 | 478 | { |
394 | 479 | $parent_id = $rub_id; |
... | ... | @@ -396,7 +481,7 @@ $res = $this->db->query($sql,array($id)); |
396 | 481 | |
397 | 482 | $sql = " |
398 | 483 | SELECT |
399 | - a.name".(($lang=='ukr')?'_ukr':'')." as name, | |
484 | + a.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name, | |
400 | 485 | a.id, |
401 | 486 | a.parent_id, |
402 | 487 | a.level, |
... | ... | @@ -412,437 +497,563 @@ $res = $this->db->query($sql,array($id)); |
412 | 497 | ORDER BY sort asc |
413 | 498 | "; |
414 | 499 | |
415 | - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC); | |
416 | - $this->tpl->assign("catalogs_rubrics_parent2",$row); | |
500 | + $row = $this->db->getAll ($sql, array ( | |
501 | + $parent_id | |
502 | + ), DB_FETCHMODE_ASSOC); | |
503 | + $this->tpl->assign ("catalogs_rubrics_parent2", $row); | |
417 | 504 | } |
418 | - | |
419 | - function viewRubricOne($id,&$row,$lang = 'ru'){ | |
420 | - if($lang=='ukr') | |
421 | - $sql = "select *,name_ukr as name,name_h1_ukr as name_h1,top_text_ukr as top_text,seo_text_ukr as seo_text, | |
505 | + | |
506 | + function viewRubricOne ($id, &$row, $lang = 'ru') | |
507 | + { | |
508 | + if ($lang == 'ukr') | |
509 | + $sql = "select *,name_ukr as name,name_h1_ukr as name_h1,top_text_ukr as top_text,seo_text_ukr as seo_text, | |
422 | 510 | meta_title_ukr as meta_title,meta_description_ukr as meta_description,meta_keywords_ukr as meta_keywords,meta_about_ukr as meta_about, |
423 | 511 | filter2_ukr as filter2, filter_ukr as filter, list_name_ukr as list_name from catalogs_rubrics where id=?"; |
424 | - else | |
425 | - $sql = "select * from catalogs_rubrics where id=?"; | |
426 | - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
427 | - $this->tpl->assign('rubric',$row); | |
428 | - } | |
512 | + else | |
513 | + $sql = "select * from catalogs_rubrics where id=?"; | |
514 | + $row = $this->db->getRow ($sql, array ( | |
515 | + $id | |
516 | + ), DB_FETCHMODE_ASSOC); | |
517 | + $this->tpl->assign ('rubric', $row); | |
518 | + } | |
429 | 519 | |
430 | - function getRubricName($id,$lang = 'ru'){ | |
431 | - $sql = "select name".($lang=='ukr'?'_ukr':'')." from catalogs_rubrics where id=?"; | |
432 | - return $this->db->getOne($sql,array($id)); | |
433 | - } | |
520 | + function getRubricName ($id, $lang = 'ru') | |
521 | + { | |
522 | + $sql = "select name" . ($lang == 'ukr' ? '_ukr' : '') . " from catalogs_rubrics where id=?"; | |
523 | + return $this->db->getOne ($sql, array ( | |
524 | + $id | |
525 | + )); | |
526 | + } | |
434 | 527 | |
435 | - function getRubricParent($id){ | |
436 | - $sql = "select parent_id from catalogs_rubrics where id=?"; | |
437 | - return $this->db->getOne($sql,array($id)); | |
438 | - } | |
528 | + function getRubricParent ($id) | |
529 | + { | |
530 | + $sql = "select parent_id from catalogs_rubrics where id=?"; | |
531 | + return $this->db->getOne ($sql, array ( | |
532 | + $id | |
533 | + )); | |
534 | + } | |
439 | 535 | |
440 | - function activeRubricTop($id,$top){ | |
441 | - $table_name = "catalogs_rubrics"; | |
442 | - $fields_values = array('top'=>$top); | |
443 | - $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,"id=$id"); | |
444 | - } | |
445 | - | |
446 | - function SaveRubric($data,$upload){ | |
447 | - $table_name = "catalogs_rubrics"; | |
448 | - | |
449 | -if(trim($data['translit']) == '') $data['translit'] = translit($data['name']); | |
450 | - | |
451 | - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
452 | - $parent_id = (isset($data['parent_id']) ? $data['parent_id'] : 0); | |
453 | - $fields_values = array('parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1),'sort' => $data['sort'],'name' => $data['name'],'name_ukr' => $data['name_ukr'],'list_name' => $data['list_name'],'list_name_ukr' => $data['list_name_ukr'],'name_h1' => $data['name_h1'],'name_h1_ukr' => $data['name_h1_ukr'],'seo_text' => $data['seo_text'],'seo_text_ukr' => $data['seo_text_ukr'],'top_text' => $data['top_text'],'top_text_ukr' => $data['top_text_ukr'],'filter' => $data['filter'],'filter_ukr' => $data['filter_ukr'],'filter2' => $data['filter2'],'filter2_ukr' => $data['filter2_ukr'],'filter_products' => $data['filter_products'],'sort_cost' => $data['sort_cost'],'meta_title' => $data['meta_title'],'meta_title_ukr' => $data['meta_title_ukr'],'meta_description' => $data['meta_description'],'meta_description_ukr' => $data['meta_description_ukr'],'meta_keywords' => $data['meta_keywords'],'meta_keywords_ukr' => $data['meta_keywords_ukr'],'meta_about' => $data['meta_about'],'meta_about_ukr' => $data['meta_about_ukr'],'translit' => $data['translit']); | |
454 | - | |
455 | -if(isset($data['literal']))$fields_values['literal'] = 1; | |
456 | -else $fields_values['literal'] = 0; | |
457 | - | |
458 | -if(isset($data['if_filter_mod']))$fields_values['if_filter_mod'] = 1; | |
459 | -else $fields_values['if_filter_mod'] = 0; | |
460 | - | |
461 | -if(isset($data['is_usd']))$fields_values['is_usd'] = 1; | |
462 | -else $fields_values['is_usd'] = 0; | |
463 | - | |
464 | -if(isset($data['is_xml']))$fields_values['is_xml'] = 1; | |
465 | -else $fields_values['is_xml'] = 0; | |
466 | - | |
467 | -if(isset($data['is_xml2']))$fields_values['is_xml2'] = 1; | |
468 | -else $fields_values['is_xml2'] = 0; | |
536 | + function activeRubricTop ($id, $top) | |
537 | + { | |
538 | + $table_name = "catalogs_rubrics"; | |
539 | + $fields_values = array ( | |
540 | + 'top' => $top | |
541 | + ); | |
542 | + $this->db->autoExecute ($table_name, $fields_values, DB_AUTOQUERY_UPDATE, "id=$id"); | |
543 | + } | |
469 | 544 | |
470 | -if(isset($data['is_width']))$fields_values['is_width'] = 1; | |
471 | -else $fields_values['is_width'] = 0; | |
472 | - /* | |
473 | - if($upload['pic']['tmp_name']){ | |
474 | - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/catalogs/rubrics/")); | |
475 | - } */ | |
476 | - | |
477 | - if($upload['pic']['tmp_name']){ | |
478 | - if($data['update_id']>0)$this->deletePicRubric($data['update_id']); | |
479 | - $uploadfile = "./uploaded/pic/catalogs/rubrics/"; | |
480 | - $type = substr(strrchr($upload['pic']['name'],"."),1); | |
481 | - $uploadname = mktime() . "." . $type; | |
482 | - if (!move_uploaded_file($_FILES['pic']['tmp_name'], $uploadfile . $uploadname))print"Îøèáêà ïðè çàêà÷êå ôàéëà!"; | |
483 | - $fields_values['pic'] = $uploadname; | |
484 | - } | |
485 | - //print_r($fields_values);exit; | |
486 | - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); | |
487 | - } | |
488 | - | |
489 | - function deletePicRubric($id){ | |
490 | - $sql = "select pic from catalogs_rubrics where id=?"; | |
491 | - $rub = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
492 | - @unlink("./uploaded/pic/catalogs/rubrics/{$rub['pic']}"); | |
493 | - } | |
494 | - | |
495 | - function getLevelRubric($id){ | |
496 | - $level = $this->db->getOne("select level from catalogs_rubrics where id=?",array($id)); | |
497 | - return ($level==null)? -1 : $level; | |
498 | - } | |
499 | - | |
500 | - function saveUser($data){ | |
501 | - $table_name = "catalogs_users"; | |
502 | - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
503 | - $fields_values = array('name' => $data['user_name'],'email' => $data['user_email'],'login' => $data['user_login'],'psw' => $data['user_psw'],'about' => $data['user_about'],'mktime'=>mktime()); | |
504 | - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); | |
505 | - } | |
506 | - | |
507 | - function updateUser($data){ | |
508 | - $table_name = "catalogs_users"; | |
509 | - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
510 | - $fields_values = array('name' => $data['user_name'],'email' => $data['user_email'],'login' => $data['user_login'],'psw' => $data['user_psw'],'about' => $data['user_about'],'discount'=>$data['user_discount']); | |
511 | - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); | |
512 | - } | |
513 | - | |
514 | - function updateUserID($data,$id){ | |
515 | - $table_name = "catalogs_users"; | |
516 | - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
517 | - $fields_values = array('name' => $data['user_name'],'email' => $data['user_email'],'psw' => $data['user_psw'],'about' => $data['user_about'],'phone' => $data['user_phone'],'phonemob' => $data['user_phonemob'],'adress' => $data['user_adress']); | |
518 | - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$id}"); | |
519 | - } | |
520 | - | |
521 | - function deleteUser($id){ | |
522 | - $this->db->query("delete from catalogs_users where id=?",array($id)); | |
523 | - $res_order_id = $this->db->getRow("select id from catalogs_orders where user_id=?",array($id),DB_FETCHMODE_ASSOC); | |
524 | - if(count($res_order_id)){ | |
525 | - foreach($res_order_id as $_id){ | |
526 | - $this->db->query("delete from catalogs_orders where id=?",array($_id)); | |
527 | - $this->db->query("delete from catalogs_orders_products where order_id=?",array($_id)); | |
528 | - }} | |
529 | - } | |
530 | - | |
531 | - function isLoginUser($login){ | |
532 | - return $this->db->getOne("select id from catalogs_users where login=?",array($login)); | |
533 | - } | |
534 | - | |
535 | - function sendLoginInfo($login){ | |
536 | - $user = $this->db->getRow("select * from catalogs_users where login=?",array($login),DB_FETCHMODE_ASSOC); | |
537 | - $mail = new PHPMailer(); | |
538 | - $mail->CharSet = "windows-1251"; | |
539 | - $mail->From = "shop@eltrade.com.ua"; | |
540 | - $mail->FromName = "shop@eltrade.com.ua"; | |
541 | - $mail->AddAddress($user['email'], $user['name']); | |
542 | - $mail->Subject = "Àêêàóíò ýêñòðèì"; | |
543 | - $msg = ""; | |
544 | - $msg .= "Çäðàâñòâóéòå: ".$user['name']; | |
545 | - $msg .= "<br />"; | |
546 | - $msg .= "Âàø ëîãèí: ".$user['login']; | |
547 | - $msg .= "<br>"; | |
548 | - $msg .= "Âàø ïàðîëü: ".$user['psw']; | |
549 | - $msg .= "<br>"; | |
550 | - $msg .= "Ñ óâàæåíèåì, shop@eltrade.com.ua"; | |
545 | + function SaveRubric ($data, $upload) | |
546 | + { | |
547 | + $table_name = "catalogs_rubrics"; | |
548 | + | |
549 | + if (trim ($data['translit']) == '') | |
550 | + $data['translit'] = translit ($data['name']); | |
551 | + | |
552 | + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
553 | + $parent_id = (isset ($data['parent_id']) ? $data['parent_id'] : 0); | |
554 | + $fields_values = array ( | |
555 | + 'parent_id' => $parent_id, | |
556 | + "level" => ($this->getLevelRubric ($parent_id) + 1), | |
557 | + 'sort' => $data['sort'], | |
558 | + 'name' => $data['name'], | |
559 | + 'name_ukr' => $data['name_ukr'], | |
560 | + 'list_name' => $data['list_name'], | |
561 | + 'list_name_ukr' => $data['list_name_ukr'], | |
562 | + 'name_h1' => $data['name_h1'], | |
563 | + 'name_h1_ukr' => $data['name_h1_ukr'], | |
564 | + 'seo_text' => $data['seo_text'], | |
565 | + 'seo_text_ukr' => $data['seo_text_ukr'], | |
566 | + 'top_text' => $data['top_text'], | |
567 | + 'top_text_ukr' => $data['top_text_ukr'], | |
568 | + 'filter' => $data['filter'], | |
569 | + 'filter_ukr' => $data['filter_ukr'], | |
570 | + 'filter2' => $data['filter2'], | |
571 | + 'filter2_ukr' => $data['filter2_ukr'], | |
572 | + 'filter_products' => $data['filter_products'], | |
573 | + 'sort_cost' => $data['sort_cost'], | |
574 | + 'meta_title' => $data['meta_title'], | |
575 | + 'meta_title_ukr' => $data['meta_title_ukr'], | |
576 | + 'meta_description' => $data['meta_description'], | |
577 | + 'meta_description_ukr' => $data['meta_description_ukr'], | |
578 | + 'meta_keywords' => $data['meta_keywords'], | |
579 | + 'meta_keywords_ukr' => $data['meta_keywords_ukr'], | |
580 | + 'meta_about' => $data['meta_about'], | |
581 | + 'meta_about_ukr' => $data['meta_about_ukr'], | |
582 | + 'translit' => $data['translit'] | |
583 | + ); | |
584 | + | |
585 | + if (isset ($data['literal'])) | |
586 | + $fields_values['literal'] = 1; | |
587 | + else | |
588 | + $fields_values['literal'] = 0; | |
589 | + | |
590 | + if (isset ($data['if_filter_mod'])) | |
591 | + $fields_values['if_filter_mod'] = 1; | |
592 | + else | |
593 | + $fields_values['if_filter_mod'] = 0; | |
594 | + | |
595 | + if (isset ($data['is_usd'])) | |
596 | + $fields_values['is_usd'] = 1; | |
597 | + else | |
598 | + $fields_values['is_usd'] = 0; | |
599 | + | |
600 | + if (isset ($data['is_xml'])) | |
601 | + $fields_values['is_xml'] = 1; | |
602 | + else | |
603 | + $fields_values['is_xml'] = 0; | |
604 | + | |
605 | + if (isset ($data['is_xml2'])) | |
606 | + $fields_values['is_xml2'] = 1; | |
607 | + else | |
608 | + $fields_values['is_xml2'] = 0; | |
609 | + | |
610 | + if (isset ($data['is_width'])) | |
611 | + $fields_values['is_width'] = 1; | |
612 | + else | |
613 | + $fields_values['is_width'] = 0; | |
614 | + /* | |
615 | + * if($upload['pic']['tmp_name']){ | |
616 | + * $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/catalogs/rubrics/")); | |
617 | + * } | |
618 | + */ | |
619 | + | |
620 | + if ($upload['pic']['tmp_name']) | |
621 | + { | |
622 | + if ($data['update_id'] > 0) | |
623 | + $this->deletePicRubric ($data['update_id']); | |
624 | + $uploadfile = "./uploaded/pic/catalogs/rubrics/"; | |
625 | + $type = substr (strrchr ($upload['pic']['name'], "."), 1); | |
626 | + $uploadname = mktime () . "." . $type; | |
627 | + if (! move_uploaded_file ($_FILES['pic']['tmp_name'], $uploadfile . $uploadname)) | |
628 | + print "Îøèáêà ïðè çàêà÷êå ôàéëà!"; | |
629 | + $fields_values['pic'] = $uploadname; | |
630 | + } | |
631 | + // print_r($fields_values);exit; | |
632 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}"); | |
633 | + } | |
551 | 634 | |
552 | - $mail->MsgHTML($msg); | |
635 | + function deletePicRubric ($id) | |
636 | + { | |
637 | + $sql = "select pic from catalogs_rubrics where id=?"; | |
638 | + $rub = $this->db->getRow ($sql, array ( | |
639 | + $id | |
640 | + ), DB_FETCHMODE_ASSOC); | |
641 | + @unlink ("./uploaded/pic/catalogs/rubrics/{$rub['pic']}"); | |
642 | + } | |
553 | 643 | |
554 | - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;} | |
555 | - $mail->ClearAddresses(); | |
556 | - $mail->ClearAttachments(); | |
557 | - } | |
558 | - | |
559 | - function isUser($login,$psw){ | |
560 | - $row = $this->db->getRow("select * from catalogs_users where login=? AND psw=?",array($login,$psw),DB_FETCHMODE_ASSOC); | |
561 | - //print $login .' - '.$psw; | |
562 | - $this->tpl->assign('user_service',$row); | |
563 | - return $row['id']; | |
564 | - } | |
565 | - | |
566 | - function viewUser($id){ | |
567 | - $sql = "select * from catalogs_users where id=?"; | |
568 | - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
569 | - $this->tpl->assign('user',$row); | |
570 | - } | |
571 | - | |
572 | - function getUserDiscount($id){ | |
573 | - return $this->db->getOne("select discount from catalogs_users where id=?",array($id)); | |
574 | - } | |
575 | - | |
576 | - function viewUsers(){ | |
577 | - $sql = "SELECT catalogs_users. *, COUNT(catalogs_orders.user_id) as count_orders | |
578 | -FROM catalogs_users LEFT JOIN catalogs_orders ON catalogs_orders.user_id=catalogs_users.id | |
579 | -GROUP BY catalogs_users.id | |
580 | -ORDER BY catalogs_users.mktime DESC"; | |
644 | + function getLevelRubric ($id) | |
645 | + { | |
646 | + $level = $this->db->getOne ("select level from catalogs_rubrics where id=?", array ( | |
647 | + $id | |
648 | + )); | |
649 | + return ($level == null) ? - 1 : $level; | |
650 | + } | |
581 | 651 | |
582 | - $pagerOptions = Array( | |
583 | - 'mode' => 'Sliding', | |
584 | - 'delta' => 6, | |
585 | - 'perPage' => 10, | |
586 | - 'linkClass'=>"link_class", | |
587 | - 'curPageLinkClassName'=>"link_class_active", | |
588 | - 'spacesBeforeSeparator' => 1, | |
589 | - 'spacesAfterSeparator' => 1 | |
590 | - ); | |
591 | - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array()); | |
652 | + function saveUser ($data) | |
653 | + { | |
654 | + $table_name = "catalogs_users"; | |
655 | + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
656 | + $fields_values = array ( | |
657 | + 'name' => $data['user_name'], | |
658 | + 'email' => $data['user_email'], | |
659 | + 'login' => $data['user_login'], | |
660 | + 'psw' => $data['user_psw'], | |
661 | + 'about' => $data['user_about'], | |
662 | + 'mktime' => mktime () | |
663 | + ); | |
664 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}"); | |
665 | + } | |
592 | 666 | |
593 | - $this->tpl->assign('usersData', $res); | |
594 | - } | |
595 | - | |
596 | -// ====================== | |
597 | -// ==== MODIFICATION ==== | |
598 | -// ====================== | |
599 | - | |
600 | -function viewModifications ($product_id) | |
601 | -{ | |
602 | - $sql = "select * from catalogs_modifications where product_id=? order by id desc"; | |
603 | - $row = $this->db->getAll ($sql, array ( | |
604 | - $product_id | |
605 | - ), DB_FETCHMODE_ASSOC); | |
606 | - if (trim ($_REQUEST['test2']) == '1') | |
607 | - print_r ($row); | |
608 | - $this->tpl->assign ('modifications', $row); | |
609 | -} | |
610 | - | |
611 | -function viewModificationsProduct ($product_id) | |
612 | -{ | |
613 | - $sql = "select a1.* from catalogs_modifications a1 where a1.product_id=? and a1.active>0 order by a1.id asc"; | |
614 | - // $sql = "select m.* from catalogs_keys_products_cities k left join catalogs_modifications m on m.code=k.mod_code where k.product_id=? and k.count>0 order by k.mod_code desc"; | |
615 | - $row = $this->db->getAll ($sql, array ( | |
616 | - $product_id | |
617 | - ), DB_FETCHMODE_ASSOC); | |
618 | - | |
619 | - for ($i = 0; $i < count ($row); $i ++) | |
667 | + function updateUser ($data) | |
620 | 668 | { |
621 | - $row2 = $this->db->getRow ("SELECT * FROM catalogs_keys_products_cities WHERE product_id='" . $product_id . "' AND mod_code='" . @$row[$i]['code'] . "' LIMIT 1;", array (), DB_FETCHMODE_ASSOC); | |
622 | - // if($row2['city_id']==25){ unset($row[$i]); } | |
669 | + $table_name = "catalogs_users"; | |
670 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
671 | + $fields_values = array ( | |
672 | + 'name' => $data['user_name'], | |
673 | + 'email' => $data['user_email'], | |
674 | + 'login' => $data['user_login'], | |
675 | + 'psw' => $data['user_psw'], | |
676 | + 'about' => $data['user_about'], | |
677 | + 'discount' => $data['user_discount'] | |
678 | + ); | |
679 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}"); | |
623 | 680 | } |
624 | - $new_row = array (); | |
625 | - // if($_GET['test']=='18') print_r($row); | |
626 | - foreach ($row as $key => $value) | |
681 | + | |
682 | + function updateUserID ($data, $id) | |
627 | 683 | { |
628 | - // $new_row[] = $value; | |
684 | + $table_name = "catalogs_users"; | |
685 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
686 | + $fields_values = array ( | |
687 | + 'name' => $data['user_name'], | |
688 | + 'email' => $data['user_email'], | |
689 | + 'psw' => $data['user_psw'], | |
690 | + 'about' => $data['user_about'], | |
691 | + 'phone' => $data['user_phone'], | |
692 | + 'phonemob' => $data['user_phonemob'], | |
693 | + 'adress' => $data['user_adress'] | |
694 | + ); | |
695 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$id}"); | |
629 | 696 | } |
630 | - // if($_GET['test']=='18') print_r($new_row); | |
631 | - $this->tpl->assign ('modifications', $row); | |
632 | - return $row; | |
633 | -} | |
634 | 697 | |
635 | -function viewModificationOne ($id) | |
636 | -{ | |
637 | - $sql = "select * from catalogs_modifications where id=?"; | |
638 | - $row = $this->db->getRow ($sql, array ( | |
639 | - $id | |
640 | - ), DB_FETCHMODE_ASSOC); | |
641 | - $this->tpl->assign ('modification', $row); | |
642 | - return $row; | |
643 | -} | |
698 | + function deleteUser ($id) | |
699 | + { | |
700 | + $this->db->query ("delete from catalogs_users where id=?", array ( | |
701 | + $id | |
702 | + )); | |
703 | + $res_order_id = $this->db->getRow ("select id from catalogs_orders where user_id=?", array ( | |
704 | + $id | |
705 | + ), DB_FETCHMODE_ASSOC); | |
706 | + if (count ($res_order_id)) | |
707 | + { | |
708 | + foreach ($res_order_id as $_id) | |
709 | + { | |
710 | + $this->db->query ("delete from catalogs_orders where id=?", array ( | |
711 | + $_id | |
712 | + )); | |
713 | + $this->db->query ("delete from catalogs_orders_products where order_id=?", array ( | |
714 | + $_id | |
715 | + )); | |
716 | + } | |
717 | + } | |
718 | + } | |
644 | 719 | |
645 | -function getModificationProduct_id ($code) | |
646 | -{ | |
647 | - return $this->db->getOne ("select product_id from catalogs_modifications where code=?", array ( | |
648 | - $code | |
649 | - )); | |
650 | -} | |
720 | + function isLoginUser ($login) | |
721 | + { | |
722 | + return $this->db->getOne ("select id from catalogs_users where login=?", array ( | |
723 | + $login | |
724 | + )); | |
725 | + } | |
651 | 726 | |
652 | -function getModification ($product_id, $code) | |
653 | -{ | |
654 | - return $this->db->getOne (" | |
655 | - SELECT id | |
656 | - FROM catalogs_modifications | |
657 | - WHERE product_id=? | |
658 | - AND code=?", array ( | |
659 | - $product_id, | |
660 | - $code | |
661 | - )); | |
662 | -} | |
663 | - | |
664 | -function SaveModification ($data, $upload) | |
665 | -{ | |
666 | - $table_name = "catalogs_modifications"; | |
667 | - $DB_AUTOQUERY = ($data ['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
668 | - $fields_values = array ( | |
669 | - 'product_id' => $data ['product_id'], | |
670 | - 'code' => $data ['code'], | |
671 | - 'size' => $data ['size'], | |
672 | - 'color' => $data ['color'], | |
673 | - 'active' => $data ['active'] | |
674 | - ); | |
675 | - | |
676 | - if (isset ($data ['color2'])) | |
727 | + function sendLoginInfo ($login) | |
677 | 728 | { |
678 | - $fields_values ['color2'] = $data ['color2']; | |
729 | + $user = $this->db->getRow ("select * from catalogs_users where login=?", array ( | |
730 | + $login | |
731 | + ), DB_FETCHMODE_ASSOC); | |
732 | + $mail = new PHPMailer (); | |
733 | + $mail->CharSet = "windows-1251"; | |
734 | + $mail->From = "shop@eltrade.com.ua"; | |
735 | + $mail->FromName = "shop@eltrade.com.ua"; | |
736 | + $mail->AddAddress ($user['email'], $user['name']); | |
737 | + $mail->Subject = "Àêêàóíò ýêñòðèì"; | |
738 | + $msg = ""; | |
739 | + $msg .= "Çäðàâñòâóéòå: " . $user['name']; | |
740 | + $msg .= "<br />"; | |
741 | + $msg .= "Âàø ëîãèí: " . $user['login']; | |
742 | + $msg .= "<br>"; | |
743 | + $msg .= "Âàø ïàðîëü: " . $user['psw']; | |
744 | + $msg .= "<br>"; | |
745 | + $msg .= "Ñ óâàæåíèåì, shop@eltrade.com.ua"; | |
746 | + | |
747 | + $mail->MsgHTML ($msg); | |
748 | + | |
749 | + if (! $mail->Send ()) | |
750 | + { | |
751 | + echo "There has been a mail error sending to <br>"; | |
752 | + return false; | |
753 | + } | |
754 | + $mail->ClearAddresses (); | |
755 | + $mail->ClearAttachments (); | |
679 | 756 | } |
680 | 757 | |
681 | - if (isset ($data ['rost'])) | |
758 | + function isUser ($login, $psw) | |
682 | 759 | { |
683 | - $fields_values ['rost'] = $data ['rost']; | |
760 | + $row = $this->db->getRow ("select * from catalogs_users where login=? AND psw=?", array ( | |
761 | + $login, | |
762 | + $psw | |
763 | + ), DB_FETCHMODE_ASSOC); | |
764 | + // print $login .' - '.$psw; | |
765 | + $this->tpl->assign ('user_service', $row); | |
766 | + return $row['id']; | |
684 | 767 | } |
685 | 768 | |
686 | - if (isset ($data ['delete_pic'])) | |
769 | + function viewUser ($id) | |
687 | 770 | { |
688 | - if ($data ['update_id'] > 0) | |
689 | - { | |
690 | - $this->deleteModificationPics ($data ['update_id']); | |
691 | - } | |
692 | - | |
693 | - $fields_values ['pic'] = null; | |
694 | - $fields_values ['pic_big'] = null; | |
771 | + $sql = "select * from catalogs_users where id=?"; | |
772 | + $row = $this->db->getRow ($sql, array ( | |
773 | + $id | |
774 | + ), DB_FETCHMODE_ASSOC); | |
775 | + $this->tpl->assign ('user', $row); | |
695 | 776 | } |
696 | 777 | |
697 | - if ($upload ['pic'] ['tmp_name']) | |
778 | + function getUserDiscount ($id) | |
698 | 779 | { |
699 | - if ($data ['update_id'] > 0) | |
780 | + return $this->db->getOne ("select discount from catalogs_users where id=?", array ( | |
781 | + $id | |
782 | + )); | |
783 | + } | |
784 | + | |
785 | + function viewUsers () | |
786 | + { | |
787 | + $sql = "SELECT catalogs_users. *, COUNT(catalogs_orders.user_id) as count_orders | |
788 | +FROM catalogs_users LEFT JOIN catalogs_orders ON catalogs_orders.user_id=catalogs_users.id | |
789 | +GROUP BY catalogs_users.id | |
790 | +ORDER BY catalogs_users.mktime DESC"; | |
791 | + | |
792 | + $pagerOptions = Array ( | |
793 | + 'mode' => 'Sliding', | |
794 | + 'delta' => 6, | |
795 | + 'perPage' => 10, | |
796 | + 'linkClass' => "link_class", | |
797 | + 'curPageLinkClassName' => "link_class_active", | |
798 | + 'spacesBeforeSeparator' => 1, | |
799 | + 'spacesAfterSeparator' => 1 | |
800 | + ); | |
801 | + $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ()); | |
802 | + | |
803 | + $this->tpl->assign ('usersData', $res); | |
804 | + } | |
805 | + | |
806 | + // ====================== | |
807 | + // ==== MODIFICATION ==== | |
808 | + // ====================== | |
809 | + | |
810 | + function viewModifications ($product_id) | |
811 | + { | |
812 | + $sql = "select * from catalogs_modifications where product_id=? order by id desc"; | |
813 | + $row = $this->db->getAll ($sql, array ( | |
814 | + $product_id | |
815 | + ), DB_FETCHMODE_ASSOC); | |
816 | + if (trim ($_REQUEST['test2']) == '1') | |
817 | + print_r ($row); | |
818 | + $this->tpl->assign ('modifications', $row); | |
819 | + } | |
820 | + | |
821 | + function viewModificationsProduct ($product_id) | |
822 | + { | |
823 | + $sql = "select a1.* from catalogs_modifications a1 where a1.product_id=? and a1.active>0 order by a1.id asc"; | |
824 | + // $sql = "select m.* from catalogs_keys_products_cities k left join catalogs_modifications m on m.code=k.mod_code where k.product_id=? and k.count>0 order by k.mod_code desc"; | |
825 | + $row = $this->db->getAll ($sql, array ( | |
826 | + $product_id | |
827 | + ), DB_FETCHMODE_ASSOC); | |
828 | + | |
829 | + for ($i = 0; $i < count ($row); $i ++) | |
700 | 830 | { |
701 | - $delete_pics = (isset ($upload ['pic'] ['big']) && $upload ['pic'] ['big'] == true) ? array ( | |
702 | - 'pic' | |
703 | - ) : array ( | |
704 | - 'pic', | |
705 | - 'pic_big' | |
706 | - ); | |
707 | - | |
708 | - $this->deleteModificationPics ($data ['update_id'], $delete_pics); | |
831 | + $row2 = $this->db->getRow ("SELECT * FROM catalogs_keys_products_cities WHERE product_id='" . $product_id . "' AND mod_code='" . @$row[$i]['code'] . "' LIMIT 1;", array (), DB_FETCHMODE_ASSOC); | |
832 | + // if($row2['city_id']==25){ unset($row[$i]); } | |
709 | 833 | } |
710 | - | |
711 | - $fields_values ['pic'] = upload_ImageResize ($upload ['pic'], array ( | |
712 | - 'width' => "144", | |
713 | - 'height' => "144", | |
714 | - 'upload_path' => "./uploaded/pic/catalogs/modifications/" | |
834 | + $new_row = array (); | |
835 | + // if($_GET['test']=='18') print_r($row); | |
836 | + foreach ($row as $key => $value) | |
837 | + { | |
838 | + // $new_row[] = $value; | |
839 | + } | |
840 | + // if($_GET['test']=='18') print_r($new_row); | |
841 | + $this->tpl->assign ('modifications', $row); | |
842 | + return $row; | |
843 | + } | |
844 | + | |
845 | + function viewModificationOne ($id) | |
846 | + { | |
847 | + $sql = "select * from catalogs_modifications where id=?"; | |
848 | + $row = $this->db->getRow ($sql, array ( | |
849 | + $id | |
850 | + ), DB_FETCHMODE_ASSOC); | |
851 | + $this->tpl->assign ('modification', $row); | |
852 | + return $row; | |
853 | + } | |
854 | + | |
855 | + function getModificationProduct_id ($code) | |
856 | + { | |
857 | + return $this->db->getOne ("select product_id from catalogs_modifications where code=?", array ( | |
858 | + $code | |
715 | 859 | )); |
716 | - | |
717 | - $fields_values ['pic_big'] = (isset ($upload ['pic'] ['big']) && $upload ['pic'] ['big'] == true) ? $upload ['pic'] ['name'] : upload_ImageResize ($upload ['pic'], array ( | |
718 | - 'width' => "1000", | |
719 | - 'height' => "1000", | |
720 | - 'upload_path' => "./uploaded/pic/catalogs/modifications/big/" | |
860 | + } | |
861 | + | |
862 | + function getModification ($product_id, $code) | |
863 | + { | |
864 | + return $this->db->getOne (" | |
865 | + SELECT id | |
866 | + FROM catalogs_modifications | |
867 | + WHERE product_id=? | |
868 | + AND code=?", array ( | |
869 | + $product_id, | |
870 | + $code | |
721 | 871 | )); |
722 | 872 | } |
873 | + | |
874 | + function SaveModification ($data, $upload) | |
875 | + { | |
876 | + $table_name = "catalogs_modifications"; | |
877 | + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
878 | + $fields_values = array ( | |
879 | + 'product_id' => $data['product_id'], | |
880 | + 'code' => $data['code'], | |
881 | + 'size' => $data['size'], | |
882 | + 'color' => $data['color'], | |
883 | + 'active' => $data['active'] | |
884 | + ); | |
723 | 885 | |
724 | - $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='{$data['update_id']}'"); | |
725 | - return $id; | |
726 | -} | |
727 | - | |
728 | -function deleteModification ($id) | |
729 | -{ | |
730 | - $this->deleteModificationPics ($id); | |
731 | - $this->db->query ("delete from catalogs_modifications where id=?", array ( | |
732 | - $id | |
733 | - )); | |
734 | -} | |
735 | - | |
736 | -function deleteProductModifications ($product_id, $nopic = false) | |
737 | -{ | |
738 | - IF ($nopic == false) | |
886 | + if (isset ($data['color2'])) | |
887 | + { | |
888 | + $fields_values['color2'] = $data['color2']; | |
889 | + } | |
890 | + | |
891 | + if (isset ($data['rost'])) | |
892 | + { | |
893 | + $fields_values['rost'] = $data['rost']; | |
894 | + } | |
895 | + | |
896 | + if (isset ($data['delete_pic'])) | |
897 | + { | |
898 | + if ($data['update_id'] > 0) | |
899 | + { | |
900 | + $this->deleteModificationPics ($data['update_id']); | |
901 | + } | |
902 | + | |
903 | + $fields_values['pic'] = null; | |
904 | + $fields_values['pic_big'] = null; | |
905 | + } | |
906 | + | |
907 | + if ($upload['pic']['tmp_name']) | |
908 | + { | |
909 | + if ($data['update_id'] > 0) | |
910 | + { | |
911 | + $delete_pics = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? array ( | |
912 | + 'pic' | |
913 | + ) : array ( | |
914 | + 'pic', | |
915 | + 'pic_big' | |
916 | + ); | |
917 | + | |
918 | + $this->deleteModificationPics ($data['update_id'], $delete_pics); | |
919 | + } | |
920 | + | |
921 | + $fields_values['pic'] = upload_ImageResize ($upload['pic'], array ( | |
922 | + 'width' => "144", | |
923 | + 'height' => "144", | |
924 | + 'upload_path' => "./uploaded/pic/catalogs/modifications/" | |
925 | + )); | |
926 | + | |
927 | + $fields_values['pic_big'] = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? $upload['pic']['name'] : upload_ImageResize ($upload['pic'], array ( | |
928 | + 'width' => "1000", | |
929 | + 'height' => "1000", | |
930 | + 'upload_path' => "./uploaded/pic/catalogs/modifications/big/" | |
931 | + )); | |
932 | + } | |
933 | + | |
934 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='{$data['update_id']}'"); | |
935 | + return $id; | |
936 | + } | |
937 | + | |
938 | + function deleteModification ($id) | |
739 | 939 | { |
740 | - $sql = " | |
940 | + $this->deleteModificationPics ($id); | |
941 | + $this->db->query ("delete from catalogs_modifications where id=?", array ( | |
942 | + $id | |
943 | + )); | |
944 | + } | |
945 | + | |
946 | + function deleteProductModifications ($product_id, $nopic = false) | |
947 | + { | |
948 | + IF ($nopic == false) | |
949 | + { | |
950 | + $sql = " | |
741 | 951 | select * |
742 | 952 | from catalogs_modifications |
743 | 953 | where product_id=?"; |
744 | - $res = $this->db->getAll ($sql, array ( | |
954 | + $res = $this->db->getAll ($sql, array ( | |
955 | + $product_id | |
956 | + ), DB_FETCHMODE_ASSOC); | |
957 | + | |
958 | + foreach ($res as $row) | |
959 | + { | |
960 | + $this->deleteModificationPics ($row['id']); | |
961 | + } | |
962 | + } | |
963 | + | |
964 | + $this->db->query (" | |
965 | + delete from catalogs_modifications | |
966 | + where product_id=?", array ( | |
745 | 967 | $product_id |
968 | + )); | |
969 | + } | |
970 | + | |
971 | + function deleteModificationPics ($id, $pics = array('pic_big','pic')) | |
972 | + { | |
973 | + $sql = "select pic,pic_big from catalogs_modifications where id=?"; | |
974 | + | |
975 | + $row = $this->db->getRow ($sql, array ( | |
976 | + $id | |
746 | 977 | ), DB_FETCHMODE_ASSOC); |
747 | 978 | |
748 | - foreach ($res as $row) | |
979 | + if (in_array ('pic', $pics)) | |
749 | 980 | { |
750 | - $this->deleteModificationPics ($row ['id']); | |
981 | + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/{$row['pic']}"); | |
751 | 982 | } |
983 | + | |
984 | + // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}"); | |
752 | 985 | } |
753 | - | |
754 | - $this->db->query (" | |
755 | - delete from catalogs_modifications | |
756 | - where product_id=?", array ( | |
757 | - $product_id | |
758 | - )); | |
759 | -} | |
760 | - | |
761 | -function deleteModificationPics ($id, $pics = array('pic_big','pic')) | |
762 | -{ | |
763 | - $sql = "select pic,pic_big from catalogs_modifications where id=?"; | |
764 | 986 | |
765 | - $row = $this->db->getRow ($sql, array ( | |
766 | - $id | |
767 | - ), DB_FETCHMODE_ASSOC); | |
768 | - | |
769 | - if (in_array ('pic', $pics)) | |
987 | + // ================= | |
988 | + // ==== PRODUCT ==== | |
989 | + // ================= | |
990 | + | |
991 | + function ProductClick ($id) | |
770 | 992 | { |
771 | - @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/{$row['pic']}"); | |
993 | + $this->db->query ("update catalogs_products set click=click+1 where id='$id'"); | |
772 | 994 | } |
773 | - | |
774 | - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}"); | |
775 | -} | |
776 | - | |
777 | -// ================= | |
778 | -// ==== PRODUCT ==== | |
779 | -// ================= | |
780 | - | |
781 | - function ProductClick($id){ | |
782 | - $this->db->query("update catalogs_products set click=click+1 where id='$id'"); | |
783 | - } | |
784 | - | |
785 | -function SaveProduct ($data, $upload) | |
786 | -{ | |
787 | - $table_name = "catalogs_products"; | |
788 | - | |
789 | - if (trim (@$data['translit']) == "") | |
790 | - $data['translit'] = translit ($data['name']); | |
791 | - | |
792 | - $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
793 | - $id = ($data['update_id'] > 0) ? $data['update_id'] : $this->db->nextId ('mySequence_' . $table_name); | |
794 | - $fields_values = array ( | |
795 | - 'id' => $id, | |
796 | - 'rubric_id' => $data['rubric_id'], | |
797 | - 'rubric_parent_id' => $this->getRubricParent ($data['rubric_id']), | |
798 | - 'brend_id' => $data['brend_id'], | |
799 | - 'name' => $data['name'], | |
800 | - 'about' => $data['about'], | |
801 | - 'text' => $data['text'], | |
802 | - 'update_text' => (int)$data['update_text'], | |
803 | - 'strnumber' => $data['strnumber'], | |
804 | - 'cine' => $data['cine'], | |
805 | - 'cine_last' => $data['cine_last'], | |
806 | - 'mktime' => mktime (), | |
807 | - 'meta_title' => $data['meta_title'], | |
808 | - 'meta_description' => $data['meta_description'], | |
809 | - 'meta_keywords' => $data['meta_keywords'], | |
810 | - 'meta_about' => $data['meta_about'], | |
811 | - 'active' => $data['active'], | |
812 | - 'translit' => $data['translit'] | |
813 | - ); | |
814 | - if (isset ($data['is_cost2'])) | |
815 | - $fields_values['is_cost2'] = 1; | |
816 | - else | |
817 | - $fields_values['is_cost2'] = 0; | |
818 | - if (isset ($data['cine2'])) | |
819 | - $fields_values['cine2'] = $data['cine2']; | |
820 | - if (isset ($data['params'])) | |
821 | - $this->saveProductParams ($id, $data['params']); | |
822 | - if (isset ($data['doc'])) | |
823 | - $fields_values['doc'] = $data['doc']; | |
824 | - if (isset ($data['update_text'])) | |
825 | - $fields_values['update_text'] = $data['update_text']; | |
826 | - if (isset ($data['video_code'])) | |
827 | - $fields_values['video_code'] = $data['video_code']; | |
828 | - if (isset ($data['akcii_id'])) | |
829 | - $fields_values['akcii_id'] = $data['akcii_id']; | |
830 | - | |
831 | - if (isset ($data['translit'])) | |
832 | - $fields_values['translit'] = $data['translit']; | |
833 | - | |
834 | - if ($upload['pic']['tmp_name']) | |
835 | - { | |
836 | - $delete_pics = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? array ( | |
837 | - 'pic', | |
838 | - 'pic2' | |
839 | - ) : array ( | |
840 | - 'pic', | |
841 | - 'pic2', | |
842 | - 'pic_big' | |
995 | + | |
996 | + function SaveProduct ($data, $upload) | |
997 | + { | |
998 | + $table_name = "catalogs_products"; | |
999 | + | |
1000 | + if (trim (@$data['translit']) == "") | |
1001 | + $data['translit'] = translit ($data['name']); | |
1002 | + | |
1003 | + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
1004 | + $id = ($data['update_id'] > 0) ? $data['update_id'] : $this->db->nextId ('mySequence_' . $table_name); | |
1005 | + $fields_values = array ( | |
1006 | + 'id' => $id, | |
1007 | + 'rubric_id' => $data['rubric_id'], | |
1008 | + 'rubric_parent_id' => $this->getRubricParent ($data['rubric_id']), | |
1009 | + 'brend_id' => $data['brend_id'], | |
1010 | + 'name' => $data['name'], | |
1011 | + 'about' => $data['about'], | |
1012 | + 'text' => $data['text'], | |
1013 | + 'update_text' => (int) $data['update_text'], | |
1014 | + 'strnumber' => $data['strnumber'], | |
1015 | + 'cine' => $data['cine'], | |
1016 | + 'cine_last' => $data['cine_last'], | |
1017 | + 'mktime' => mktime (), | |
1018 | + 'meta_title' => $data['meta_title'], | |
1019 | + 'meta_description' => $data['meta_description'], | |
1020 | + 'meta_keywords' => $data['meta_keywords'], | |
1021 | + 'meta_about' => $data['meta_about'], | |
1022 | + 'active' => $data['active'], | |
1023 | + 'translit' => $data['translit'] | |
843 | 1024 | ); |
844 | - $this->deleteProductPics ($id, $delete_pics); | |
845 | - $fields_values['pic'] = upload_ImageResize ($upload['pic'], array ( | |
1025 | + if (isset ($data['is_cost2'])) | |
1026 | + $fields_values['is_cost2'] = 1; | |
1027 | + else | |
1028 | + $fields_values['is_cost2'] = 0; | |
1029 | + if (isset ($data['cine2'])) | |
1030 | + $fields_values['cine2'] = $data['cine2']; | |
1031 | + if (isset ($data['params'])) | |
1032 | + $this->saveProductParams ($id, $data['params']); | |
1033 | + if (isset ($data['doc'])) | |
1034 | + $fields_values['doc'] = $data['doc']; | |
1035 | + if (isset ($data['update_text'])) | |
1036 | + $fields_values['update_text'] = $data['update_text']; | |
1037 | + if (isset ($data['video_code'])) | |
1038 | + $fields_values['video_code'] = $data['video_code']; | |
1039 | + if (isset ($data['akcii_id'])) | |
1040 | + $fields_values['akcii_id'] = $data['akcii_id']; | |
1041 | + | |
1042 | + if (isset ($data['translit'])) | |
1043 | + $fields_values['translit'] = $data['translit']; | |
1044 | + | |
1045 | + if ($upload['pic']['tmp_name']) | |
1046 | + { | |
1047 | + $delete_pics = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? array ( | |
1048 | + 'pic', | |
1049 | + 'pic2' | |
1050 | + ) : array ( | |
1051 | + 'pic', | |
1052 | + 'pic2', | |
1053 | + 'pic_big' | |
1054 | + ); | |
1055 | + $this->deleteProductPics ($id, $delete_pics); | |
1056 | + $fields_values['pic'] = upload_ImageResize ($upload['pic'], array ( | |
846 | 1057 | 'width' => "144", |
847 | 1058 | 'height' => "144", |
848 | 1059 | 'upload_path' => "./uploaded/pic/catalogs/products/" |
... | ... | @@ -857,288 +1068,676 @@ function SaveProduct ($data, $upload) |
857 | 1068 | 'height' => "1000", |
858 | 1069 | 'upload_path' => "./uploaded/pic/catalogs/products/big/" |
859 | 1070 | )); |
860 | - } | |
1071 | + } | |
1072 | + | |
1073 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='$id'"); | |
1074 | + $this->save_keysProductsFilters ($id, $data); | |
1075 | + $this->save_keysProductsFilters2 ($id, $data); | |
1076 | + $this->save_keysProductsYears ($id, $data); | |
1077 | + // $this->save_keysProductsCities($id,$data); | |
1078 | + $this->save_keysProductsAkcii ($id, $data); | |
1079 | + $this->save_keysProductsSex ($id, $data); | |
861 | 1080 | |
862 | - $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='$id'"); | |
863 | - $this->save_keysProductsFilters ($id, $data); | |
864 | - $this->save_keysProductsFilters2 ($id, $data); | |
865 | - $this->save_keysProductsYears ($id, $data); | |
866 | - // $this->save_keysProductsCities($id,$data); | |
867 | - $this->save_keysProductsAkcii ($id, $data); | |
868 | - $this->save_keysProductsSex ($id, $data); | |
1081 | + return $id; | |
1082 | + } | |
869 | 1083 | |
870 | - return $id; | |
871 | -} | |
872 | - | |
873 | - function save_keysProductsSex($id,$data){ | |
874 | - $this->delete_keysProductsSex($id); | |
875 | - if(!isset($data['sex']))return false; | |
876 | - $table_name = "catalogs_keys_products_sex"; | |
877 | - foreach($data['sex'] as $sex){ | |
878 | - $this->db->autoExecute($table_name,array('product_id'=>$id,'sex'=>$sex,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); | |
879 | - } | |
880 | - } | |
881 | - | |
882 | - function delete_keysProductsSex($id){ | |
883 | - $this->db->query("delete from catalogs_keys_products_sex where product_id=?",array($id)); | |
884 | - } | |
885 | - | |
886 | - function save_keysProductsFilters2($id,$data){ | |
887 | - $this->delete_keysProductsFilters2($id); | |
888 | - if(!isset($data['filter2']))return false; | |
889 | - $table_name = "catalogs_keys_products_filters2"; | |
890 | - foreach($data['filter2'] as $filter_id){ | |
891 | - $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); | |
892 | - } | |
893 | - } | |
894 | - | |
895 | - function delete_keysProductsFilters2($id){ | |
896 | - $this->db->query("delete from catalogs_keys_products_filters2 where product_id=?",array($id)); | |
897 | - } | |
898 | - | |
899 | - function save_keysProductsFilters($id,$data){ | |
900 | - $this->delete_keysProductsFilters($id); | |
901 | - if(!isset($data['filter']))return false; | |
902 | - $table_name = "catalogs_keys_products_filters"; | |
903 | - foreach($data['filter'] as $filter_id){ | |
904 | - $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); | |
905 | - } | |
906 | - } | |
907 | - | |
908 | - function delete_keysProductsFilters($id){ | |
909 | - $this->db->query("delete from catalogs_keys_products_filters where product_id=?",array($id)); | |
910 | - } | |
911 | - | |
912 | - function save_keysProductsYears($id,$data){ | |
913 | - $this->delete_keysProductsYears($id); | |
914 | - if(!isset($data['years']))return false; | |
915 | - $table_name = "catalogs_keys_products_years"; | |
916 | - foreach($data['years'] as $filter_id){ | |
917 | - $this->db->autoExecute($table_name,array('product_id'=>$id,'year_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); | |
918 | - } | |
919 | - } | |
920 | - | |
921 | - function delete_keysProductsYears($id){ | |
922 | - $this->db->query("delete from catalogs_keys_products_years where product_id=?",array($id)); | |
923 | - } | |
924 | - | |
925 | - function save_keysProductsCities($id,$data){ | |
926 | - $this->delete_keysProductsCities($id); | |
927 | - if(!isset($data['city']))return false; | |
928 | - $table_name = "catalogs_keys_products_cities"; | |
929 | - foreach($data['city'] as $city_id){ | |
930 | - $this->db->autoExecute($table_name,array('product_id'=>$id,'city_id'=>$city_id),DB_AUTOQUERY_INSERT); | |
931 | - } | |
932 | - } | |
933 | - | |
934 | - function delete_keysProductsAkcii($id){ | |
935 | - $this->db->query("delete from catalogs_keys_products_akcii where product_id=?",array($id)); | |
936 | - } | |
937 | - | |
938 | - function save_keysProductsAkcii($id,$data){ | |
939 | - $this->delete_keysProductsAkcii($id); | |
940 | - if(!isset($data['akcii']))return false; | |
941 | - $table_name = "catalogs_keys_products_akcii"; | |
942 | - foreach($data['akcii'] as $rubric_id){ | |
943 | - $this->db->autoExecute($table_name,array('product_id'=>$id,'rubric_id'=>$rubric_id),DB_AUTOQUERY_INSERT); | |
944 | - } | |
945 | - } | |
946 | - | |
947 | - function delete_keysProductsCities($id){ | |
948 | - $this->db->query("delete from catalogs_keys_products_cities where product_id=?",array($id)); | |
949 | - } | |
1084 | + function save_keysProductsSex ($id, $data) | |
1085 | + { | |
1086 | + $this->delete_keysProductsSex ($id); | |
1087 | + if (! isset ($data['sex'])) | |
1088 | + return false; | |
1089 | + $table_name = "catalogs_keys_products_sex"; | |
1090 | + foreach ($data['sex'] as $sex) | |
1091 | + { | |
1092 | + $this->db->autoExecute ($table_name, array ( | |
1093 | + 'product_id' => $id, | |
1094 | + 'sex' => $sex, | |
1095 | + 'rubric_id' => $data['rubric_id'] | |
1096 | + ), DB_AUTOQUERY_INSERT); | |
1097 | + } | |
1098 | + } | |
1099 | + | |
1100 | + function delete_keysProductsSex ($id) | |
1101 | + { | |
1102 | + $this->db->query ("delete from catalogs_keys_products_sex where product_id=?", array ( | |
1103 | + $id | |
1104 | + )); | |
1105 | + } | |
1106 | + | |
1107 | + function save_keysProductsFilters2 ($id, $data) | |
1108 | + { | |
1109 | + $this->delete_keysProductsFilters2 ($id); | |
1110 | + if (! isset ($data['filter2'])) | |
1111 | + return false; | |
1112 | + $table_name = "catalogs_keys_products_filters2"; | |
1113 | + foreach ($data['filter2'] as $filter_id) | |
1114 | + { | |
1115 | + $this->db->autoExecute ($table_name, array ( | |
1116 | + 'product_id' => $id, | |
1117 | + 'filter_id' => $filter_id, | |
1118 | + 'rubric_id' => $data['rubric_id'] | |
1119 | + ), DB_AUTOQUERY_INSERT); | |
1120 | + } | |
1121 | + } | |
1122 | + | |
1123 | + function delete_keysProductsFilters2 ($id) | |
1124 | + { | |
1125 | + $this->db->query ("delete from catalogs_keys_products_filters2 where product_id=?", array ( | |
1126 | + $id | |
1127 | + )); | |
1128 | + } | |
1129 | + | |
1130 | + function save_keysProductsFilters ($id, $data) | |
1131 | + { | |
1132 | + $this->delete_keysProductsFilters ($id); | |
1133 | + if (! isset ($data['filter'])) | |
1134 | + return false; | |
1135 | + $table_name = "catalogs_keys_products_filters"; | |
1136 | + foreach ($data['filter'] as $filter_id) | |
1137 | + { | |
1138 | + $this->db->autoExecute ($table_name, array ( | |
1139 | + 'product_id' => $id, | |
1140 | + 'filter_id' => $filter_id, | |
1141 | + 'rubric_id' => $data['rubric_id'] | |
1142 | + ), DB_AUTOQUERY_INSERT); | |
1143 | + } | |
1144 | + } | |
1145 | + | |
1146 | + function delete_keysProductsFilters ($id) | |
1147 | + { | |
1148 | + $this->db->query ("delete from catalogs_keys_products_filters where product_id=?", array ( | |
1149 | + $id | |
1150 | + )); | |
1151 | + } | |
1152 | + | |
1153 | + function save_keysProductsYears ($id, $data) | |
1154 | + { | |
1155 | + $this->delete_keysProductsYears ($id); | |
1156 | + if (! isset ($data['years'])) | |
1157 | + return false; | |
1158 | + $table_name = "catalogs_keys_products_years"; | |
1159 | + foreach ($data['years'] as $filter_id) | |
1160 | + { | |
1161 | + $this->db->autoExecute ($table_name, array ( | |
1162 | + 'product_id' => $id, | |
1163 | + 'year_id' => $filter_id, | |
1164 | + 'rubric_id' => $data['rubric_id'] | |
1165 | + ), DB_AUTOQUERY_INSERT); | |
1166 | + } | |
1167 | + } | |
1168 | + | |
1169 | + function delete_keysProductsYears ($id) | |
1170 | + { | |
1171 | + $this->db->query ("delete from catalogs_keys_products_years where product_id=?", array ( | |
1172 | + $id | |
1173 | + )); | |
1174 | + } | |
1175 | + | |
1176 | + function save_keysProductsCities ($id, $data) | |
1177 | + { | |
1178 | + $this->delete_keysProductsCities ($id); | |
1179 | + if (! isset ($data['city'])) | |
1180 | + return false; | |
1181 | + $table_name = "catalogs_keys_products_cities"; | |
1182 | + foreach ($data['city'] as $city_id) | |
1183 | + { | |
1184 | + $this->db->autoExecute ($table_name, array ( | |
1185 | + 'product_id' => $id, | |
1186 | + 'city_id' => $city_id | |
1187 | + ), DB_AUTOQUERY_INSERT); | |
1188 | + } | |
1189 | + } | |
1190 | + | |
1191 | + function delete_keysProductsAkcii ($id) | |
1192 | + { | |
1193 | + $this->db->query ("delete from catalogs_keys_products_akcii where product_id=?", array ( | |
1194 | + $id | |
1195 | + )); | |
1196 | + } | |
1197 | + | |
1198 | + function save_keysProductsAkcii ($id, $data) | |
1199 | + { | |
1200 | + $this->delete_keysProductsAkcii ($id); | |
1201 | + if (! isset ($data['akcii'])) | |
1202 | + return false; | |
1203 | + $table_name = "catalogs_keys_products_akcii"; | |
1204 | + foreach ($data['akcii'] as $rubric_id) | |
1205 | + { | |
1206 | + $this->db->autoExecute ($table_name, array ( | |
1207 | + 'product_id' => $id, | |
1208 | + 'rubric_id' => $rubric_id | |
1209 | + ), DB_AUTOQUERY_INSERT); | |
1210 | + } | |
1211 | + } | |
1212 | + | |
1213 | + function delete_keysProductsCities ($id) | |
1214 | + { | |
1215 | + $this->db->query ("delete from catalogs_keys_products_cities where product_id=?", array ( | |
1216 | + $id | |
1217 | + )); | |
1218 | + } | |
1219 | + | |
1220 | + function saveProductSizeCine ($id, $data) | |
1221 | + { | |
1222 | + $this->db->query ("delete from catalogs_products_cine where product_id=?", array ( | |
1223 | + $id | |
1224 | + )); | |
1225 | + foreach ($data['size'] as $key => $size) | |
1226 | + { | |
1227 | + $this->db->autoExecute ("catalogs_products_cine", array ( | |
1228 | + 'product_id' => $id, | |
1229 | + 'size' => $size, | |
1230 | + 'cine' => $data['cine'][$key], | |
1231 | + 'metka' => $data['size_metka'][$key], | |
1232 | + 'n' => $key | |
1233 | + ), DB_AUTOQUERY_INSERT); | |
1234 | + } | |
1235 | + } | |
1236 | + | |
1237 | + function productsIsHits ($products, $hits, $tops, $akcii) | |
1238 | + { | |
1239 | + $sql = "update catalogs_products set active=?,top=?,akcii_id=? where id=?"; | |
1240 | + foreach ($products as $id) | |
1241 | + { | |
1242 | + if (@in_array ($id, $hits)) | |
1243 | + $hit = true; | |
1244 | + else | |
1245 | + $hit = false; | |
1246 | + if (@in_array ($id, $tops)) | |
1247 | + $top = true; | |
1248 | + else | |
1249 | + $top = false; | |
1250 | + if (@in_array ($id, $akcii)) | |
1251 | + $akcii = true; | |
1252 | + else | |
1253 | + $akcii = false; | |
1254 | + $this->db->query ($sql, array ( | |
1255 | + $hit, | |
1256 | + $top, | |
1257 | + $akcii, | |
1258 | + $id | |
1259 | + )); | |
1260 | + } | |
1261 | + } | |
1262 | + | |
1263 | + function productsIsHits2 ($data, $hits) | |
1264 | + { | |
1265 | + $sql = "update catalogs_products set hit=?,hit_sort=? where id=?"; | |
1266 | + foreach ($data['product_id'] as $key => $id) | |
1267 | + { | |
1268 | + if (@in_array ($id, $hits)) | |
1269 | + $hit = true; | |
1270 | + else | |
1271 | + $hit = false; | |
1272 | + $this->db->query ($sql, array ( | |
1273 | + $hit, | |
1274 | + $data['hit_sort'][$key], | |
1275 | + $id | |
1276 | + )); | |
1277 | + } | |
1278 | + } | |
1279 | + | |
1280 | + function viewProductsRubrics ($rubrics, $limit = 20) | |
1281 | + { | |
1282 | + $data = array (); | |
1283 | + foreach ($rubrics as $key => $rubric_id) | |
1284 | + { | |
1285 | + $data[$key]['rubric']['name'] = $this->getRubricName ($rubric_id); | |
1286 | + $data[$key]['rubric']['id'] = $rubric_id; | |
1287 | + | |
1288 | + $count = $this->db->getOne ("select count(*) from catalogs_products WHERE count_modifications>0 and rubric_id=?", array ( | |
1289 | + $rubric_id | |
1290 | + )); | |
1291 | + $limit = 5; | |
1292 | + $round = ($count > $limit) ? rand (0, ($count - $limit)) : $limit; | |
1293 | + $sql = "select * from catalogs_products where count_modifications>0 and rubric_id=? order by id " . ((rand (1, 1000) % 2) ? "asc" : "desc") . " limit $round,$limit"; | |
1294 | + $data[$key]['products'] = $this->db->getAll ($sql, array ( | |
1295 | + $rubric_id | |
1296 | + ), DB_FETCHMODE_ASSOC); | |
1297 | + } | |
1298 | + /* | |
1299 | + * print"<pre>"; | |
1300 | + * print_r($data); | |
1301 | + * print"</pre>"; | |
1302 | + */ | |
1303 | + $this->tpl->assign ('products', $data); | |
1304 | + } | |
1305 | + | |
1306 | + function seralizeFilter ($str) | |
1307 | + { | |
1308 | + $array = explode (';', iconv ('UTF-8', 'CP1251', $str)); | |
1309 | + $filter = array (); | |
1310 | + foreach ($array as $key => $value) | |
1311 | + { | |
1312 | + $filter[substr ($value, 0, 1)][] = "'" . substr (str_replace (".", ",", $value), 1, strpos ($value, "_") - 1) . "'"; | |
1313 | + } | |
1314 | + // print_r($filter); | |
1315 | + return $filter; | |
1316 | + } | |
1317 | + | |
1318 | + function seralizeSex ($str) | |
1319 | + { | |
1320 | + $sex = array (); | |
1321 | + $sex_num = array ( | |
1322 | + 'male' => 1, | |
1323 | + 'female' => 2, | |
1324 | + 'child' => 3, | |
1325 | + 'unisex' => 4 | |
1326 | + ); | |
1327 | + $sex_row = explode (';', $str); | |
1328 | + foreach ($sex_row as $row) | |
1329 | + { | |
1330 | + $sex[] = $sex_num[$row]; | |
1331 | + } | |
1332 | + return $sex; | |
1333 | + } | |
1334 | + | |
1335 | + // ================= | |
1336 | + // ==== FILTER ===== | |
1337 | + // ================= | |
1338 | + | |
1339 | + /** | |
1340 | + * Ôèëüòðàöèÿ òîâàðîâ ïî êðèòåðèÿåì<br/> | |
1341 | + * Ìîæíî èñïîëüçîâàòü â êà÷åñòâå âûâîäà ñïèñêà ñâîéñòâ ôèëüòðîâ | |
1342 | + * @param array $setting | |
1343 | + * @return array òîâàðû/ñïèñêà ñâîéñòâ ôèëüòðîâ | |
1344 | + */ | |
1345 | + function queryBuild (array $setting = array ()) | |
1346 | + { | |
1347 | + Tools::ifNotExist ($setting, array ( | |
1348 | + 'akcii' => true, | |
1349 | + 'sex' => true, | |
1350 | + )); | |
950 | 1351 | |
951 | - | |
952 | - function saveProductSizeCine($id,$data){ | |
953 | - $this->db->query("delete from catalogs_products_cine where product_id=?",array($id)); | |
954 | - foreach($data['size'] as $key=>$size){ | |
955 | - $this->db->autoExecute("catalogs_products_cine",array('product_id'=>$id,'size'=>$size,'cine'=>$data['cine'][$key],'metka'=>$data['size_metka'][$key],'n'=>$key),DB_AUTOQUERY_INSERT); | |
956 | - } | |
957 | - } | |
958 | - | |
1352 | + $SQL = new SqlQuery(); | |
1353 | + $SQL->select(' | |
1354 | + catalogs_products.*, catalogs_products.name.as name, | |
1355 | + catalogs_brends.name as brend_name, | |
1356 | + catalogs_rubrics.list_name' . ($lang == 'ukr' ? '_ukr' : '') . ' as list_name, | |
1357 | + catalogs_rubrics.translit as rubric_translit, | |
1358 | + catalogs_keys_products_filters.*, | |
1359 | + catalogs_keys_products_filters2.*, | |
1360 | + catalogs_modifications.* | |
1361 | + '); | |
1362 | + | |
1363 | + $SQL->from('catalogs_products'); | |
959 | 1364 | |
960 | - function productsIsHits($products,$hits,$tops,$akcii){ | |
961 | - $sql = "update catalogs_products set active=?,top=?,akcii_id=? where id=?"; | |
962 | - foreach($products as $id){ | |
963 | - if(@in_array($id,$hits))$hit = true; | |
964 | - else $hit = false; | |
965 | - if(@in_array($id,$tops))$top = true; | |
966 | - else $top = false; | |
967 | - if(@in_array($id,$akcii))$akcii = true; | |
968 | - else $akcii = false; | |
969 | - $this->db->query($sql,array($hit,$top,$akcii, $id)); | |
970 | - } | |
971 | - } | |
972 | - | |
973 | - function productsIsHits2($data,$hits){ | |
974 | - $sql = "update catalogs_products set hit=?,hit_sort=? where id=?"; | |
975 | - foreach($data['product_id'] as $key=>$id){ | |
976 | - if(@in_array($id,$hits))$hit = true; | |
977 | - else $hit = false; | |
978 | - $this->db->query($sql,array($hit,$data['hit_sort'][$key],$id)); | |
979 | - } | |
980 | - } | |
981 | - | |
982 | - function viewProductsRubrics($rubrics,$limit=20){ | |
983 | - $data = array(); | |
984 | - foreach($rubrics as $key=>$rubric_id){ | |
985 | - $data[$key]['rubric']['name'] = $this->getRubricName($rubric_id); | |
986 | - $data[$key]['rubric']['id'] = $rubric_id; | |
987 | - | |
988 | - $count = $this->db->getOne("select count(*) from catalogs_products WHERE count_modifications>0 and rubric_id=?",array($rubric_id)); | |
989 | - $limit = 5; $round = ($count>$limit) ? rand(0,($count-$limit)) : $limit; | |
990 | - $sql = "select * from catalogs_products where count_modifications>0 and rubric_id=? order by id " . ((rand(1,1000)%2) ? "asc" : "desc") . " limit $round,$limit"; | |
991 | - $data[$key]['products'] = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); | |
992 | - } | |
993 | - /* print"<pre>"; | |
994 | - print_r($data); | |
995 | - print"</pre>"; */ | |
996 | - $this->tpl->assign('products',$data); | |
997 | - } | |
998 | - | |
999 | - function seralizeFilter($str){ | |
1000 | - $array = explode(';',iconv('UTF-8','CP1251',$str)); | |
1001 | - $filter = array(); | |
1002 | - foreach($array as $key=>$value){ | |
1003 | - $filter[substr($value,0,1)][] = "'".substr(str_replace(".", ",", $value),1, strpos($value,"_")-1 )."'"; | |
1004 | - } | |
1005 | - //print_r($filter); | |
1006 | - return $filter; | |
1007 | - } | |
1008 | - | |
1009 | - function seralizeSex($str){ | |
1010 | - $sex = array(); | |
1011 | - $sex_num = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
1012 | - $sex_row = explode(';',$str); | |
1013 | - foreach($sex_row as $row){ | |
1014 | - $sex[] = $sex_num[$row]; | |
1015 | - } | |
1016 | - return $sex; | |
1017 | - } | |
1018 | - | |
1365 | + $SQL->innerJoin( | |
1366 | + 'catalogs_brends', NULL, | |
1367 | + 'catalogs_brends.id = catalogs_products.brend_id' | |
1368 | + ); | |
1019 | 1369 | |
1020 | - function viewProducts($params,$rubricsP = false,$count_modf = true,$lang='ru'){ | |
1021 | - | |
1022 | - | |
1023 | - //exit; | |
1024 | - //print $params['filter_products']; | |
1025 | - | |
1026 | - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); | |
1027 | - $search = array(); | |
1028 | - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20; | |
1029 | - if(isset($params['search_str']) && strlen($params['search_str'])>0){ | |
1030 | - $array_string = explode(" ",trim($params['search_str'])); | |
1031 | - foreach($array_string as $row){ | |
1032 | - $search[] = "(catalogs_products.name LIKE '%".$row."%' OR catalogs_products.text LIKE '%".$row." %' OR catalogs_rubrics.name LIKE '%".$row."%' OR catalogs_brends.name LIKE '%".$row."%' OR catalogs_modifications.code='".$row."')"; | |
1033 | - } | |
1034 | - $search_string = array(); | |
1035 | - // $search_string[] = "catalogs_products.name like '%".mysql_real_escape_string($params['search_str'])."%'"; | |
1036 | - // $search_string[] = "catalogs_products.text like '%".mysql_real_escape_string($params['search_str'])."%'"; | |
1037 | - /* foreach($array_string as $str){ | |
1038 | - $search_string[] = "catalogs_products.name like '$str'"; | |
1039 | - $search_string[] = "catalogs_products.name like'% $str %'"; | |
1040 | - $search_string[] = "catalogs_products.name like'%$str %'"; | |
1041 | - $search_string[] = "catalogs_products.name like'% $str%'"; | |
1370 | + $SQL->innerJoin( | |
1371 | + 'catalogs_rubrics', NULL, | |
1372 | + 'catalogs_rubrics.id=catalogs_products.rubric_id' | |
1373 | + ); | |
1042 | 1374 | |
1043 | - $search_string[] = "catalogs_products.text like '$str'"; | |
1044 | - $search_string[] = "catalogs_products.text like'% $str %'"; | |
1045 | - $search_string[] = "catalogs_products.text like'%$str %'"; | |
1046 | - $search_string[] = "catalogs_products.text like'% $str%'"; | |
1047 | - } */ | |
1048 | - //$search[] = "((" . implode(" OR ",$search_string) . ") OR ". sprintf("catalogs_modifications.code='%s'", mysql_real_escape_string($params['search_str'])).")"; | |
1049 | - } | |
1050 | - // print_r($params); | |
1051 | - if(isset($params['brendID']) && $params['brendID']>0)$search[] = sprintf("catalogs_products.brend_id='%d'",$params['brendID']); | |
1052 | - if(isset($params['akciiID']) && $params['akciiID']>0)$search[] = sprintf("catalogs_products.akcii_id>'%d'",0); | |
1053 | - if(isset($params['new']) && $params['new']>0)$search[] = sprintf("catalogs_products.active='%d'",$params['new']); | |
1054 | - if(isset($params['top']) && $params['top']>0)$search[] = sprintf("catalogs_products.top='%d'",$params['top']); | |
1055 | - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")"; | |
1056 | - if(isset($params['sex']) && strlen($params['sex'])>0){ | |
1057 | - $sex = $this->seralizeSex($params['sex']); | |
1058 | - //print_r($sex); | |
1375 | + $SQL->innerJoin( | |
1376 | + 'catalogs_keys_products_filters', NULL, | |
1377 | + 'catalogs_keys_products_filters.product_id = catalogs_products.id' | |
1378 | + ); | |
1059 | 1379 | |
1060 | - // $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); | |
1380 | + $SQL->innerJoin( | |
1381 | + 'catalogs_keys_products_filters2', NULL, | |
1382 | + 'catalogs_keys_products_filters2.product_id = catalogs_products.id' | |
1383 | + ); | |
1061 | 1384 | |
1062 | - $search[] = "s.sex IN (" . implode(",",$sex) . ")"; | |
1063 | - } | |
1064 | - //if(isset($params['akcii']) && $params['akcii']>0)$search[] = sprintf("catalogs_products.hit='%d'",$params['akcii']); | |
1065 | - if($count_modf==true)$search[] = "catalogs_products.count_modifications>0"; | |
1066 | - if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']) && !isset($params['what'])){ | |
1067 | - $search[] = ($rubricsP==true)?sprintf("(catalogs_products.rubric_id='%d')",$params['rubID']):sprintf(" | |
1068 | - (catalogs_products.rubric_parent_id='%d' || | |
1069 | - catalogs_products.rubric_id='%d' || | |
1070 | - catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') || | |
1071 | - catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d'))",$params['rubID'],$params['rubID'],$params['rubID'],$params['rubID']); | |
1072 | - } | |
1073 | - | |
1074 | - /* if(isset($params['filterID'])){ | |
1075 | - //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']); | |
1076 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")"; | |
1077 | - }*/ | |
1385 | + $SQL->innerJoin( | |
1386 | + 'catalogs_modifications', NULL, | |
1387 | + 'catalogs_modifications.product_id = catalogs_products.id | |
1388 | + AND catalogs_modifications.active = 1' | |
1389 | + ); | |
1390 | + | |
1391 | + // àêöèè | |
1392 | + if ($setting['akcii']) | |
1393 | + { | |
1394 | + $SQL->select('catalogs_keys_products_akcii.*'); | |
1395 | + $SQL->innerJoin( | |
1396 | + 'catalogs_keys_products_akcii', NULL, | |
1397 | + 'catalogs_keys_products_akcii.product_id = catalogs_products.id' | |
1398 | + ); | |
1399 | + } | |
1400 | + | |
1401 | + // ïîë | |
1402 | + if ($setting['sex']) | |
1403 | + { | |
1404 | + $SQL->select('sex.*'); | |
1405 | + $SQL->innerJoin( | |
1406 | + 'catalogs_keys_products_sex', 'sex', | |
1407 | + 'catalogs_keys_products_sex.product_id = catalogs_products.id | |
1408 | + AND sex.sex_id > 0' | |
1409 | + ); | |
1410 | + } | |
1411 | + | |
1412 | + $SQL->where('catalogs_products.count_modifications > 0'); | |
1413 | + | |
1414 | + // =========================== | |
1415 | + // ==== ðàçáîð ïàðàìåòðîâ ==== | |
1416 | + // =========================== | |
1417 | + | |
1418 | + if (isset ($params['filter']) && count ($params['filter']) > 0) | |
1419 | + { | |
1420 | + // LIMIT | |
1421 | + if (isset ($_GET['perPage']) && $_GET['perPage'] > 0 && $_GET['perPage'] <= 100) | |
1422 | + { | |
1423 | + $perPage = $_GET['perPage']; | |
1424 | + } | |
1425 | + else | |
1426 | + { | |
1427 | + $perPage = 20; | |
1428 | + } | |
1429 | + | |
1430 | + $SQL->limit($perPage); | |
1431 | + | |
1432 | + // ÏÎÈÑÊ | |
1433 | + if (isset ($params['search_str']) && strlen ($params['search_str']) > 0) | |
1434 | + { | |
1435 | + $array_string = explode (' ', trim ($params['search_str'])); | |
1436 | + | |
1437 | + foreach ($array_string as $word) | |
1438 | + { | |
1439 | + $SQL->where('( | |
1440 | + catalogs_products.name LIKE "%'.$word.'%" | |
1441 | + OR catalogs_products.text LIKE "%'.$word.'%" | |
1442 | + OR catalogs_rubrics.name LIKE "%'.$word.'%" | |
1443 | + OR catalogs_brends.name LIKE "%'.$word.'%" | |
1444 | + OR catalogs_modifications.code = "'.$word.'" | |
1445 | + )'); | |
1446 | + } | |
1447 | + } | |
1448 | + | |
1449 | + // PARAM | |
1450 | + | |
1451 | + if (isset ($params['brendID']) && $params['brendID'] > 0) | |
1452 | + { | |
1453 | + $SQL->where( sprintf ("catalogs_products.brend_id='%d'", $params['brendID'])); | |
1454 | + } | |
1455 | + | |
1456 | + if (isset ($params['akciiID']) && $params['akciiID'] > 0) | |
1457 | + { | |
1458 | + $SQL->where( sprintf ("catalogs_products.akcii_id>'%d'", 0)); | |
1459 | + } | |
1460 | + | |
1461 | + if (isset ($params['new']) && $params['new'] > 0) | |
1462 | + { | |
1463 | + $SQL->where( sprintf ("catalogs_products.active='%d'", $params['new'])); | |
1464 | + } | |
1078 | 1465 | |
1079 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
1080 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
1081 | - } | |
1082 | - elseif(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($params['what'])){ | |
1083 | - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; | |
1084 | - } | |
1085 | - if(isset($filter['g']) && count($filter['g'])>0){ | |
1086 | - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; | |
1087 | - } | |
1088 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
1089 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
1090 | - } | |
1091 | - if(isset($filter['r']) && count($filter['r'])>0){ | |
1092 | - $search[] = "m2.rost in (".implode(",",$filter['r']).")"; | |
1093 | - } | |
1094 | -/* if(isset($params['yearID']) && $params['yearID']>0){ | |
1095 | - //$search[] = sprintf("catalogs_keys_products_years.year_id='%d'", $params['yearID']); | |
1096 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$params['yearID']).")"; | |
1097 | - }*/ | |
1098 | - if(isset($filter['y']) && $filter['y']>0){ | |
1099 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
1100 | - } | |
1101 | - $sql = "select catalogs_rubrics.translit as rubric_translit,catalogs_products.*,catalogs_products.name".($lang=='ukr'?'':'')." as name,catalogs_brends.name as brend_name,catalogs_rubrics.list_name".($lang=='ukr'?'_ukr':'')." as list_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id "; | |
1102 | - if(isset($params['akcii']) && $params['akcii']>0)$sql .= "RIGHT JOIN catalogs_keys_products_akcii ON catalogs_keys_products_akcii.product_id=catalogs_products.id "; | |
1103 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1104 | - elseif(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($params['what']))$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1466 | + if (isset ($params['top']) && $params['top'] > 0) | |
1467 | + { | |
1468 | + $SQL->where( sprintf ("catalogs_products.top='%d'", $params['top'])); | |
1469 | + } | |
1470 | + | |
1471 | + if (isset ($params['brend']) && strlen ($params['brend']) > 0) | |
1472 | + { | |
1473 | + $SQL->where( "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")"); | |
1474 | + } | |
1475 | + | |
1476 | + if (isset ($params['sex']) && strlen ($params['sex']) > 0) | |
1477 | + { | |
1478 | + $sex = $this->seralizeSex ($params['sex']); | |
1479 | + | |
1480 | + $SQL->where( "s.sex IN (" . implode (",", $sex) . ")"); | |
1481 | + } | |
1482 | + | |
1483 | + // ÕÇ | |
1484 | + if ($count_modf == true) | |
1485 | + { | |
1486 | + $SQL->where( "catalogs_products.count_modifications>0"); | |
1487 | + } | |
1105 | 1488 | |
1106 | - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id "; | |
1489 | + if (isset ($params['rubID']) && $params['rubID'] > 0 | |
1490 | + && ! isset ($params['filter_products']) | |
1491 | + && ! isset ($params['what'])) | |
1492 | + { | |
1493 | + $SQL->where( ($rubricsP == true) ? sprintf ("(catalogs_products.rubric_id='%d')", $params['rubID']) : sprintf (" | |
1494 | + ( | |
1495 | + catalogs_products.rubric_parent_id='%d' || | |
1496 | + catalogs_products.rubric_id='%d' || | |
1497 | + catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') || | |
1498 | + catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') | |
1499 | + )", | |
1500 | + $params['rubID'], | |
1501 | + $params['rubID'], | |
1502 | + $params['rubID'], | |
1503 | + $params['rubID'] | |
1504 | + )); | |
1505 | + } | |
1506 | + | |
1507 | + $filter = $this->seralizeFilter ($params['filter']); | |
1508 | + | |
1509 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
1510 | + { | |
1511 | + $SQL->where( "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"); | |
1512 | + } | |
1513 | + elseif (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($params['what'])) | |
1514 | + { | |
1515 | + $SQL->where( "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")"); | |
1516 | + } | |
1517 | + | |
1518 | + if (isset ($filter['g']) && count ($filter['g']) > 0) | |
1519 | + { | |
1520 | + $SQL->where( "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")"); | |
1521 | + } | |
1522 | + | |
1523 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
1524 | + { | |
1525 | + $SQL->where( "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"); | |
1526 | + } | |
1527 | + | |
1528 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
1529 | + { | |
1530 | + $SQL->where( "m2.rost in (" . implode (",", $filter['r']) . ")"); | |
1531 | + } | |
1107 | 1532 | |
1108 | - //if(isset($params['filterID']) && $params['filterID']>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1109 | -// if(isset($params['yearID']) && $params['yearID']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; | |
1110 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; | |
1111 | - if(isset($params['search_str']) && strlen($params['search_str'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id ";} | |
1112 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";} | |
1113 | - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 ";} | |
1114 | - if(isset($params['sex']) && strlen($params['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";} | |
1533 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
1534 | + { | |
1535 | + $SQL->where( "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"); | |
1536 | + } | |
1115 | 1537 | |
1116 | - | |
1117 | - $sql .= "WHERE 1=1 "; | |
1118 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1119 | - // if(isset($params['akcii']) && $params['akcii']>0){$sql .= " GROUP BY catalogs_keys_products_akcii.product_id ";} | |
1120 | - //if(isset($params['search_str']) && strlen($params['search_str'])>0){} | |
1121 | - $sql .= " GROUP BY catalogs_products.id "; | |
1122 | - $sql .= "order by "; | |
1123 | - if(isset($params['sort'])){ | |
1124 | - switch($params['sort']){ | |
1125 | - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1126 | - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1127 | - case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1128 | - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break; | |
1129 | - default : $sql .= " catalogs_products.mktime desc"; | |
1130 | - } | |
1131 | - }else $sql .= (!empty($params['top']))?" catalogs_rubrics.top desc":" catalogs_products.rating desc"; | |
1538 | + // ==== SORT ==== | |
1132 | 1539 | |
1133 | - $pagerOptions = Array( | |
1134 | - 'mode' => 'Sliding', | |
1135 | - 'delta' => 5, | |
1136 | - 'perPage' => $perPage, | |
1137 | - 'linkClass'=>"link_class", | |
1138 | - 'curPageLinkClassName'=>"link_class_active", | |
1139 | - 'spacesBeforeSeparator' => 1, | |
1140 | - 'spacesAfterSeparator' => 1 | |
1141 | - ); | |
1540 | + if (isset ($params['sort'])) | |
1541 | + { | |
1542 | + switch ($params['sort']) | |
1543 | + { | |
1544 | + case 'cine' : | |
1545 | + | |
1546 | + $SQL->orderBy('catalogs_products.cine '. ($_GET['order'] == 'asc' ? 'ASC' : 'DESC')); | |
1547 | + break; | |
1548 | + | |
1549 | + case 'click' : | |
1550 | + | |
1551 | + $SQL->orderBy('catalogs_products.click' . ($_GET['order'] == 'asc' ? 'ASC' : 'DESC')); | |
1552 | + break; | |
1553 | + | |
1554 | + case 'rating' : | |
1555 | + | |
1556 | + $SQL->orderBy('catalogs_products.rating' . ($_GET['order'] == 'asc' ? 'ASC' : 'DESC')); | |
1557 | + break; | |
1558 | + | |
1559 | + case 'hit' : | |
1560 | + | |
1561 | + $SQL->orderBy('catalogs_products.hit_sort ASC'); | |
1562 | + break; | |
1563 | + | |
1564 | + default : | |
1565 | + | |
1566 | + $SQL->orderBy('catalogs_products.mktime DESC'); | |
1567 | + } | |
1568 | + } | |
1569 | + else | |
1570 | + { | |
1571 | + $SQL->orderBy(! empty ($params['top']) ? 'catalogs_rubrics.top DESC' : 'catalogs_products.rating DESC'); | |
1572 | + } | |
1573 | + | |
1574 | + // ==== GROUP ==== | |
1575 | + | |
1576 | + $SQL->groupBy('catalogs_products.id'); | |
1577 | + } | |
1578 | + | |
1579 | + return $this->db->getAll ($SQL->__toSting(), array (), DB_FETCHMODE_ASSOC); | |
1580 | + } | |
1581 | + | |
1582 | + function viewProducts ($params, $rubricsP = false, $count_modf = true, $lang = 'ru') | |
1583 | + { | |
1584 | + | |
1585 | + // exit; | |
1586 | + // print $params['filter_products']; | |
1587 | + if (isset ($params['filter']) && count ($params['filter']) > 0) | |
1588 | + $filter = $this->seralizeFilter ($params['filter']); | |
1589 | + $search = array (); | |
1590 | + if (isset ($_GET['perPage']) && $_GET['perPage'] > 0 && $_GET['perPage'] <= 100) | |
1591 | + $perPage = $_GET['perPage']; | |
1592 | + else | |
1593 | + $perPage = 20; | |
1594 | + if (isset ($params['search_str']) && strlen ($params['search_str']) > 0) | |
1595 | + { | |
1596 | + $array_string = explode (" ", trim ($params['search_str'])); | |
1597 | + foreach ($array_string as $row) | |
1598 | + { | |
1599 | + $search[] = "(catalogs_products.name LIKE '%" . $row . "%' OR catalogs_products.text LIKE '%" . $row . " %' OR catalogs_rubrics.name LIKE '%" . $row . "%' OR catalogs_brends.name LIKE '%" . $row . "%' OR catalogs_modifications.code='" . $row . "')"; | |
1600 | + } | |
1601 | + $search_string = array (); | |
1602 | + // $search_string[] = "catalogs_products.name like '%".mysql_real_escape_string($params['search_str'])."%'"; | |
1603 | + // $search_string[] = "catalogs_products.text like '%".mysql_real_escape_string($params['search_str'])."%'"; | |
1604 | + /* | |
1605 | + * foreach($array_string as $str){ | |
1606 | + * $search_string[] = "catalogs_products.name like '$str'"; | |
1607 | + * $search_string[] = "catalogs_products.name like'% $str %'"; | |
1608 | + * $search_string[] = "catalogs_products.name like'%$str %'"; | |
1609 | + * $search_string[] = "catalogs_products.name like'% $str%'"; | |
1610 | + * | |
1611 | + * $search_string[] = "catalogs_products.text like '$str'"; | |
1612 | + * $search_string[] = "catalogs_products.text like'% $str %'"; | |
1613 | + * $search_string[] = "catalogs_products.text like'%$str %'"; | |
1614 | + * $search_string[] = "catalogs_products.text like'% $str%'"; | |
1615 | + * } | |
1616 | + */ | |
1617 | + // $search[] = "((" . implode(" OR ",$search_string) . ") OR ". sprintf("catalogs_modifications.code='%s'", mysql_real_escape_string($params['search_str'])).")"; | |
1618 | + } | |
1619 | + // print_r($params); | |
1620 | + if (isset ($params['brendID']) && $params['brendID'] > 0) | |
1621 | + $search[] = sprintf ("catalogs_products.brend_id='%d'", $params['brendID']); | |
1622 | + if (isset ($params['akciiID']) && $params['akciiID'] > 0) | |
1623 | + $search[] = sprintf ("catalogs_products.akcii_id>'%d'", 0); | |
1624 | + if (isset ($params['new']) && $params['new'] > 0) | |
1625 | + $search[] = sprintf ("catalogs_products.active='%d'", $params['new']); | |
1626 | + if (isset ($params['top']) && $params['top'] > 0) | |
1627 | + $search[] = sprintf ("catalogs_products.top='%d'", $params['top']); | |
1628 | + if (isset ($params['brend']) && strlen ($params['brend']) > 0) | |
1629 | + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")"; | |
1630 | + if (isset ($params['sex']) && strlen ($params['sex']) > 0) | |
1631 | + { | |
1632 | + $sex = $this->seralizeSex ($params['sex']); | |
1633 | + // print_r($sex); | |
1634 | + | |
1635 | + // $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); | |
1636 | + | |
1637 | + $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
1638 | + } | |
1639 | + // if(isset($params['akcii']) && $params['akcii']>0)$search[] = sprintf("catalogs_products.hit='%d'",$params['akcii']); | |
1640 | + if ($count_modf == true) | |
1641 | + $search[] = "catalogs_products.count_modifications>0"; | |
1642 | + if (isset ($params['rubID']) && $params['rubID'] > 0 && ! isset ($params['filter_products']) && ! isset ($params['what'])) | |
1643 | + { | |
1644 | + $search[] = ($rubricsP == true) ? sprintf ("(catalogs_products.rubric_id='%d')", $params['rubID']) : sprintf (" | |
1645 | + (catalogs_products.rubric_parent_id='%d' || | |
1646 | + catalogs_products.rubric_id='%d' || | |
1647 | + catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') || | |
1648 | + catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d'))", $params['rubID'], $params['rubID'], $params['rubID'], $params['rubID']); | |
1649 | + } | |
1650 | + | |
1651 | + /* | |
1652 | + * if(isset($params['filterID'])){ | |
1653 | + * //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']); | |
1654 | + * $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")"; | |
1655 | + * } | |
1656 | + */ | |
1657 | + | |
1658 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
1659 | + { | |
1660 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
1661 | + } | |
1662 | + elseif (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($params['what'])) | |
1663 | + { | |
1664 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")"; | |
1665 | + } | |
1666 | + if (isset ($filter['g']) && count ($filter['g']) > 0) | |
1667 | + { | |
1668 | + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")"; | |
1669 | + } | |
1670 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
1671 | + { | |
1672 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
1673 | + } | |
1674 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
1675 | + { | |
1676 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
1677 | + } | |
1678 | + /* | |
1679 | + * if(isset($params['yearID']) && $params['yearID']>0){ | |
1680 | + * //$search[] = sprintf("catalogs_keys_products_years.year_id='%d'", $params['yearID']); | |
1681 | + * $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$params['yearID']).")"; | |
1682 | + * } | |
1683 | + */ | |
1684 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
1685 | + { | |
1686 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
1687 | + } | |
1688 | + $sql = " | |
1689 | + SELECT catalogs_rubrics.translit as rubric_translit,catalogs_products.*,catalogs_products.name" . ($lang == 'ukr' ? '' : '') . " as name,catalogs_brends.name as brend_name,catalogs_rubrics.list_name" . ($lang == 'ukr' ? '_ukr' : '') . " as list_name | |
1690 | + FROM catalogs_products | |
1691 | + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1692 | + LEFT JOIN catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id | |
1693 | + RIGHT JOIN catalogs_keys_products_akcii ON catalogs_keys_products_akcii.product_id=catalogs_products.id | |
1694 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
1695 | + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id | |
1696 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id | |
1697 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id | |
1698 | + AND catalogs_modifications.active=1 | |
1699 | + LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 | |
1700 | + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id | |
1701 | + WHERE 1=1 | |
1702 | + "; | |
1703 | + if (count ($search)) | |
1704 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
1705 | + // if(isset($params['akcii']) && $params['akcii']>0){$sql .= " GROUP BY catalogs_keys_products_akcii.product_id ";} | |
1706 | + // if(isset($params['search_str']) && strlen($params['search_str'])>0){} | |
1707 | + $sql .= " GROUP BY catalogs_products.id "; | |
1708 | + $sql .= "order by "; | |
1709 | + if (isset ($params['sort'])) | |
1710 | + { | |
1711 | + switch ($params['sort']) | |
1712 | + { | |
1713 | + case 'cine' : | |
1714 | + $sql .= " catalogs_products.cine " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
1715 | + break; | |
1716 | + case 'click' : | |
1717 | + $sql .= " catalogs_products.click " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
1718 | + break; | |
1719 | + case 'rating' : | |
1720 | + $sql .= " catalogs_products.rating " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
1721 | + break; | |
1722 | + case 'hit' : | |
1723 | + $sql .= " catalogs_products.hit_sort asc"; | |
1724 | + break; | |
1725 | + default : | |
1726 | + $sql .= " catalogs_products.mktime desc"; | |
1727 | + } | |
1728 | + } | |
1729 | + else | |
1730 | + $sql .= (! empty ($params['top'])) ? " catalogs_rubrics.top desc" : " catalogs_products.rating desc"; | |
1731 | + | |
1732 | + $pagerOptions = Array ( | |
1733 | + 'mode' => 'Sliding', | |
1734 | + 'delta' => 5, | |
1735 | + 'perPage' => $perPage, | |
1736 | + 'linkClass' => "link_class", | |
1737 | + 'curPageLinkClassName' => "link_class_active", | |
1738 | + 'spacesBeforeSeparator' => 1, | |
1739 | + 'spacesAfterSeparator' => 1 | |
1740 | + ); | |
1142 | 1741 | // echo $sql; |
1143 | 1742 | // $sql=""; |
1144 | 1743 | $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ()); |
... | ... | @@ -1160,2848 +1759,3765 @@ function SaveProduct ($data, $upload) |
1160 | 1759 | $res['data'][$i]['rating'] = @$res['data'][$i]['rating'] * 17; |
1161 | 1760 | } |
1162 | 1761 | } |
1163 | - | |
1762 | + | |
1164 | 1763 | $this->tpl->assign ('productsData', $res); |
1165 | 1764 | return $res; |
1166 | - } | |
1167 | - | |
1168 | - function getFilterPh1($product_id,$lang = 'ru'){ | |
1169 | - $sql = "select ph1".($lang=='ukr'?'_ukr':'')." as ph1 from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where k.product_id=? AND f.ph1".($lang=='ukr'?'_ukr':'')."<>''"; | |
1170 | - return $this->db->getOne($sql,array($product_id)); | |
1171 | - } | |
1172 | - | |
1173 | - function getCineCurs($type_curs,$cine){ | |
1174 | - $curs = array(); | |
1175 | - | |
1176 | - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah')); | |
1177 | - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank')); | |
1178 | - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd')); | |
1179 | - | |
1180 | - switch($type_curs){ | |
1181 | - case 'uah' : | |
1182 | - $curs['uah'] = round($cine,2); | |
1183 | - $curs['uah_bank'] = round(($cine/$usd)*$uah_bank,2); | |
1184 | - $curs['usd'] = round($cine/$usd,2); | |
1185 | - break; | |
1186 | - case 'uah_bank' : | |
1187 | - $curs['uah'] = round(($cine/$uah_bank)*$uah,2); | |
1188 | - $curs['uah_bank'] = round($cine,2); | |
1189 | - $curs['usd'] = round($cine/$uah_bank,2); | |
1190 | - break; | |
1191 | - case 'usd' : | |
1192 | - $curs['uah'] = round($cine*$uah,2); | |
1193 | - $curs['uah_bank'] = round($cine*$uah_bank,2); | |
1194 | - $curs['usd'] = round($cine,2); | |
1195 | - break; | |
1196 | - } | |
1197 | - return $curs; | |
1198 | - } | |
1199 | - | |
1200 | - function viewProductsAkcii($rubric_id,$limit = 8){ | |
1201 | - // $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1202 | - // LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1203 | - // LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id | |
1204 | - // WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 "; | |
1205 | - // if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1206 | - // $sql .= "order by RAND() LIMIT $limit"; | |
1207 | - | |
1208 | - $search = array(); | |
1209 | - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); | |
1210 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
1211 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
1212 | - } | |
1213 | - if(isset($filter['g']) && count($filter['g'])>0){ | |
1214 | - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; | |
1215 | - } | |
1216 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
1217 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
1218 | - } | |
1219 | - if(isset($filter['y']) && $filter['y']>0){ | |
1220 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
1221 | - } | |
1222 | - | |
1223 | - | |
1224 | - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; | |
1225 | -/* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
1226 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
1227 | - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]); | |
1228 | - } */ | |
1229 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
1230 | - $sex = $this->seralizeSex($_GET['sex']); | |
1231 | - $search[] = "catalogs_products.sex IN (" . implode(",",$sex) . ")"; | |
1232 | - } | |
1233 | - | |
1234 | - /*$sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_keys_products_akcii | |
1235 | - left join catalogs_products on catalogs_products.id=catalogs_keys_products_akcii.product_id | |
1236 | - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1237 | - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";*/ | |
1238 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1239 | - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1240 | - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; | |
1241 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1242 | - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id "; | |
1243 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; | |
1244 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";} | |
1245 | - //$sql .= "where catalogs_keys_products_akcii.rubric_id=? "; | |
1246 | - $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 "; | |
1247 | - if($rubric_id>0)$sql .="and catalogs_products.rubric_id='$rubric_id' "; | |
1248 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1249 | - $sql .= "order by RAND()"; | |
1250 | - if($rubric_id==0){$sql .= " limit 8";} | |
1251 | - $res = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
1252 | - //print_r($res); | |
1253 | -for($i=0;$i<count($res);$i++){ | |
1254 | - $res[$i]['rating2'] = $res[$i]['rating']; | |
1255 | - if( @$res[$i]['rating'] ) $res[$i]['rating'] = round( (@$res[$i]['rating'] / @$res[$i]['vote_num']), 0 ); | |
1256 | - else $res[$i]['rating'] = 0; | |
1257 | - $res[$i]['rating'] = @$res[$i]['rating'] * 17; | |
1258 | -} | |
1259 | - $this->tpl->assign('products_akcii',$res); | |
1260 | - } | |
1765 | + } | |
1766 | + | |
1767 | + function getFilterPh1 ($product_id, $lang = 'ru') | |
1768 | + { | |
1769 | + $sql = "select ph1" . ($lang == 'ukr' ? '_ukr' : '') . " as ph1 from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where k.product_id=? AND f.ph1" . ($lang == 'ukr' ? '_ukr' : '') . "<>''"; | |
1770 | + return $this->db->getOne ($sql, array ( | |
1771 | + $product_id | |
1772 | + )); | |
1773 | + } | |
1774 | + | |
1775 | + function getCineCurs ($type_curs, $cine) | |
1776 | + { | |
1777 | + $curs = array (); | |
1778 | + | |
1779 | + $uah = $this->db->getOne ("select curs from catalogs_curs where type=?", array ( | |
1780 | + 'uah' | |
1781 | + )); | |
1782 | + $uah_bank = $this->db->getOne ("select curs from catalogs_curs where type=?", array ( | |
1783 | + 'uah_bank' | |
1784 | + )); | |
1785 | + $usd = $this->db->getOne ("select curs from catalogs_curs where type=?", array ( | |
1786 | + 'usd' | |
1787 | + )); | |
1788 | + | |
1789 | + switch ($type_curs) | |
1790 | + { | |
1791 | + case 'uah' : | |
1792 | + $curs['uah'] = round ($cine, 2); | |
1793 | + $curs['uah_bank'] = round (($cine / $usd) * $uah_bank, 2); | |
1794 | + $curs['usd'] = round ($cine / $usd, 2); | |
1795 | + break; | |
1796 | + case 'uah_bank' : | |
1797 | + $curs['uah'] = round (($cine / $uah_bank) * $uah, 2); | |
1798 | + $curs['uah_bank'] = round ($cine, 2); | |
1799 | + $curs['usd'] = round ($cine / $uah_bank, 2); | |
1800 | + break; | |
1801 | + case 'usd' : | |
1802 | + $curs['uah'] = round ($cine * $uah, 2); | |
1803 | + $curs['uah_bank'] = round ($cine * $uah_bank, 2); | |
1804 | + $curs['usd'] = round ($cine, 2); | |
1805 | + break; | |
1806 | + } | |
1807 | + return $curs; | |
1808 | + } | |
1809 | + | |
1810 | + function viewProductsAkcii ($rubric_id, $limit = 8) | |
1811 | + { | |
1812 | + // $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1813 | + // LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1814 | + // LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id | |
1815 | + // WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 "; | |
1816 | + // if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1817 | + // $sql .= "order by RAND() LIMIT $limit"; | |
1818 | + $search = array (); | |
1819 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
1820 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
1821 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
1822 | + { | |
1823 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
1824 | + } | |
1825 | + if (isset ($filter['g']) && count ($filter['g']) > 0) | |
1826 | + { | |
1827 | + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")"; | |
1828 | + } | |
1829 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
1830 | + { | |
1831 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
1832 | + } | |
1833 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
1834 | + { | |
1835 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
1836 | + } | |
1837 | + | |
1838 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
1839 | + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
1840 | + /* | |
1841 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
1842 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
1843 | + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]); | |
1844 | + * } | |
1845 | + */ | |
1846 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
1847 | + { | |
1848 | + $sex = $this->seralizeSex ($_GET['sex']); | |
1849 | + $search[] = "catalogs_products.sex IN (" . implode (",", $sex) . ")"; | |
1850 | + } | |
1851 | + | |
1852 | + /* | |
1853 | + * $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_keys_products_akcii | |
1854 | + * left join catalogs_products on catalogs_products.id=catalogs_keys_products_akcii.product_id | |
1855 | + * LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1856 | + * LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; | |
1857 | + */ | |
1858 | + $sql = " | |
1859 | + SELECT catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit | |
1860 | + FROM catalogs_products | |
1861 | + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1862 | + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id | |
1863 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
1864 | + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id | |
1865 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id | |
1866 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 | |
1867 | + WHERE catalogs_products.count_modifications>0 | |
1868 | + AND catalogs_products.akcii_id>0 | |
1869 | + "; | |
1870 | + if ($rubric_id > 0) | |
1871 | + $sql .= "and catalogs_products.rubric_id='$rubric_id' "; | |
1872 | + if (count ($search)) | |
1873 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
1874 | + $sql .= "order by RAND()"; | |
1875 | + if ($rubric_id == 0) | |
1876 | + { | |
1877 | + $sql .= " limit 8"; | |
1878 | + } | |
1879 | + $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
1880 | + // print_r($res); | |
1881 | + for ($i = 0; $i < count ($res); $i ++) | |
1882 | + { | |
1883 | + $res[$i]['rating2'] = $res[$i]['rating']; | |
1884 | + if (@$res[$i]['rating']) | |
1885 | + $res[$i]['rating'] = round ((@$res[$i]['rating'] / @$res[$i]['vote_num']), 0); | |
1886 | + else | |
1887 | + $res[$i]['rating'] = 0; | |
1888 | + $res[$i]['rating'] = @$res[$i]['rating'] * 17; | |
1889 | + } | |
1890 | + $this->tpl->assign ('products_akcii', $res); | |
1891 | + } | |
1261 | 1892 | |
1262 | - function getProductsAkcii($limit = 6){ | |
1263 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1893 | + function getProductsAkcii ($limit = 6) | |
1894 | + { | |
1895 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1264 | 1896 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
1265 | - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; | |
1266 | - //$sql .= "where catalogs_keys_products_akcii.rubric_id=? "; | |
1267 | - $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 "; | |
1268 | - //if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1269 | - $sql .= "order by RAND() limit $limit"; | |
1270 | - return $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
1271 | - } | |
1272 | - | |
1273 | - function viewProductsHitsAll2(){ | |
1274 | - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20; | |
1275 | - $sql = "select * from catalogs_products where hit=?"; | |
1276 | - $pagerOptions = Array( | |
1277 | - 'mode' => 'Sliding', | |
1278 | - 'delta' => 6, | |
1279 | - 'perPage' => $perPage, | |
1280 | - 'linkClass'=>"link_class", | |
1281 | - 'curPageLinkClassName'=>"link_class_active", | |
1282 | - 'spacesBeforeSeparator' => 1, | |
1283 | - 'spacesAfterSeparator' => 1 | |
1284 | - ); | |
1285 | - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array(true)); | |
1897 | + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; | |
1898 | + // $sql .= "where catalogs_keys_products_akcii.rubric_id=? "; | |
1899 | + $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 "; | |
1900 | + // if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1901 | + $sql .= "order by RAND() limit $limit"; | |
1902 | + return $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
1903 | + } | |
1286 | 1904 | |
1287 | - $this->tpl->assign('productsData', $res); | |
1288 | - } | |
1905 | + function viewProductsHitsAll2 () | |
1906 | + { | |
1907 | + if (isset ($_GET['perPage']) && $_GET['perPage'] > 0 && $_GET['perPage'] <= 100) | |
1908 | + $perPage = $_GET['perPage']; | |
1909 | + else | |
1910 | + $perPage = 20; | |
1911 | + $sql = "select * from catalogs_products where hit=?"; | |
1912 | + $pagerOptions = Array ( | |
1913 | + 'mode' => 'Sliding', | |
1914 | + 'delta' => 6, | |
1915 | + 'perPage' => $perPage, | |
1916 | + 'linkClass' => "link_class", | |
1917 | + 'curPageLinkClassName' => "link_class_active", | |
1918 | + 'spacesBeforeSeparator' => 1, | |
1919 | + 'spacesAfterSeparator' => 1 | |
1920 | + ); | |
1921 | + $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ( | |
1922 | + true | |
1923 | + )); | |
1924 | + | |
1925 | + $this->tpl->assign ('productsData', $res); | |
1926 | + } | |
1289 | 1927 | |
1290 | - function viewProductsActiveAll($params,$limit = 4,$curs = null){ | |
1291 | - $search = array(); | |
1292 | - | |
1293 | - $sql = " | |
1928 | + function viewProductsActiveAll ($params, $limit = 4, $curs = null) | |
1929 | + { | |
1930 | + $search = array (); | |
1931 | + | |
1932 | + $sql = " | |
1294 | 1933 | SELECT * FROM ( |
1295 | 1934 | select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products |
1296 | 1935 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
1297 | 1936 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
1298 | 1937 | WHERE catalogs_products.active=? and catalogs_products.count_modifications>0 "; |
1299 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1300 | - $sql .= "ORDER BY RAND()) as T "; | |
1301 | - $sql .= "Group By rubric_id ORDER BY RAND() LIMIT $limit"; | |
1302 | - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); | |
1303 | - //print_r($res); | |
1304 | - $this->tpl->assign('products_active',$res); | |
1305 | - } | |
1306 | - | |
1307 | - function viewProductsActive($params,$limit = 4,$curs = null){ | |
1308 | - $search = array(); | |
1309 | - if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']))$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']); | |
1310 | - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); | |
1311 | - | |
1312 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
1313 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
1314 | - } | |
1315 | - if(isset($filter['g']) && count($filter['g'])>0){ | |
1316 | - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; | |
1317 | - } | |
1318 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
1319 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
1320 | - } | |
1321 | - if(isset($filter['y']) && $filter['y']>0){ | |
1322 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
1323 | - } | |
1324 | - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ | |
1325 | - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; | |
1326 | - } | |
1327 | - | |
1328 | - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")"; | |
1329 | - | |
1330 | -/* if(isset($params['sex']) && strlen($params['sex'])>0){ | |
1331 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
1332 | - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); | |
1333 | - } */ | |
1334 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
1335 | - $sex = $this->seralizeSex($_GET['sex']); | |
1336 | - $search[] = "s.sex IN (" . implode(",",$sex) . ")"; | |
1337 | - } | |
1338 | - | |
1339 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1340 | - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1341 | - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; | |
1342 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1343 | - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id "; | |
1344 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; | |
1345 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";} | |
1346 | - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f']))$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1347 | - if(isset($params['sex']) && strlen($params['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";} | |
1348 | - | |
1349 | - $sql .= "WHERE catalogs_products.active=? and catalogs_products.count_modifications>0 "; | |
1350 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1351 | - $sql .= "order by RAND() LIMIT $limit"; | |
1352 | - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); | |
1353 | - //print_r($res); | |
1354 | - $this->tpl->assign('products_active',$res); | |
1355 | - } | |
1356 | - | |
1357 | - function viewProductsHits($params,$limit = 4,$curs = null){ | |
1358 | - $search = array(); | |
1359 | - if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']); | |
1360 | - | |
1361 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1362 | - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1363 | - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id | |
1364 | - WHERE catalogs_products.hit=? and catalogs_products.count_modifications>0 "; | |
1365 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1366 | - $sql .= "order by "; | |
1367 | - if(isset($params['sort'])){ | |
1368 | - switch($params['sort']){ | |
1369 | - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1370 | - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1371 | - case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1372 | - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break; | |
1373 | - default : $sql .= " RAND()"; | |
1374 | - } | |
1375 | - }else $sql .= " RAND()"; | |
1376 | - $sql .=" LIMIT $limit"; | |
1377 | - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); | |
1378 | - //print_r($res); | |
1379 | - $this->tpl->assign('products_hits',$res); | |
1380 | - } | |
1381 | - | |
1382 | - function viewProductsTops($params,$limit = 4,$curs = null){ | |
1383 | - $search = array(); | |
1384 | - if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']))$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']); | |
1385 | - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); | |
1386 | - | |
1387 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
1388 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
1389 | - } | |
1390 | - if(isset($filter['g']) && count($filter['g'])>0){ | |
1391 | - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; | |
1392 | - } | |
1393 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
1394 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
1395 | - } | |
1396 | - if(isset($filter['y']) && $filter['y']>0){ | |
1397 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
1398 | - } | |
1399 | - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ | |
1400 | - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; | |
1401 | - } | |
1402 | - | |
1403 | - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")"; | |
1404 | - | |
1405 | - /*if(isset($params['sex']) && strlen($params['sex'])>0){ | |
1406 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
1407 | - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); | |
1408 | - }*/ | |
1409 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
1410 | - $sex = $this->seralizeSex($_GET['sex']); | |
1411 | - $search[] = "catalogs_products.sex IN (" . implode(",",$sex) . ")"; | |
1412 | - } | |
1413 | - | |
1414 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
1415 | - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1416 | - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; | |
1417 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1418 | - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id "; | |
1419 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; | |
1420 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";} | |
1421 | - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f']))$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1422 | - | |
1423 | - $sql .= "WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 "; | |
1424 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1425 | - // $sql .= "order by RAND()"; | |
1426 | - $sql .= "order by "; | |
1427 | - if(isset($params['sort'])){ | |
1428 | - switch($params['sort']){ | |
1429 | - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1430 | - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1431 | - case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break; | |
1432 | - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break; | |
1433 | - default : $sql .= " r.top desc"; | |
1434 | - } | |
1435 | - }else $sql .= " r.top desc"; | |
1436 | - $sql .=" LIMIT $limit"; | |
1437 | - //print $sql; | |
1438 | - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); | |
1439 | - //print_r($res); | |
1440 | - $this->tpl->assign('products_top',$res); | |
1441 | - } | |
1442 | - | |
1443 | - function viewProductsTopOne(){ | |
1444 | - $count = $this->db->getOne("select count(*) from catalogs_products WHERE catalogs_products.header=?",array(true)); | |
1445 | - $limit = 1; $round = rand(0,($count-$limit)); | |
1446 | - $res = $this->db->getRow("select * from catalogs_products WHERE catalogs_products.header=? order by id " . ((rand(1,1000)%2) ? "asc" : "desc") . " LIMIT $round,$limit",array(true),DB_FETCHMODE_ASSOC); | |
1447 | - $this->tpl->assign('products_top_one',$res); | |
1448 | - } | |
1449 | - | |
1450 | - function viewProductsLast($limit = 1){ | |
1451 | - $search = array(); | |
1452 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE catalogs_products.active=? "; | |
1453 | - $sql .= "order by catalogs_products.mktime desc LIMIT $limit"; | |
1454 | - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); | |
1455 | - $this->tpl->assign('products_last',$res); | |
1456 | - } | |
1457 | - | |
1458 | - function viewProductsHitsAll($limit = 4){ | |
1459 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE hit=? "; | |
1460 | - $sql .= "order by mktime desc LIMIT $limit"; | |
1461 | - $products_hits = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); | |
1462 | - $this->tpl->assign('products_hits_all',$products_hits); | |
1463 | - } | |
1464 | - | |
1465 | - function activeNull($rubric_id){ | |
1466 | - $sql = "update catalogs_products set active=? where rubric_id=?"; | |
1467 | - $this->db->query($sql,array(0,$rubric_id)); | |
1468 | - } | |
1469 | - | |
1470 | - function viewProductOne($id,&$row){ | |
1471 | -// $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b2 ON b2.id=p.brend_id left join catalogs_brends b ON b.name=b2.name and b.active=1 where p.id=?"; | |
1472 | - $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b ON b.id=p.brend_id where p.id=?"; | |
1473 | - | |
1474 | - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
1475 | - $row['ph1'] = $this->getFilterPh1($row['id']); | |
1476 | - | |
1477 | - $row['rating2'] = $row['rating']; | |
1478 | - if( @$row['rating'] ) $row['rating'] = round( (@$row['rating'] / @$row['vote_num']), 0 ); | |
1479 | - else $row['rating'] = 0; | |
1480 | - $row['rating'] = @$row['rating'] * 17; | |
1481 | - //print_r($row); | |
1482 | - $this->tpl->assign('product',$row); | |
1483 | - } | |
1484 | - | |
1485 | - function deleteCompareProduct(&$compare,$id){ | |
1486 | - foreach($compare as $key=>$_id){ | |
1487 | - if($_id == $id)unset($compare[$key]); | |
1488 | - } | |
1489 | - } | |
1490 | - | |
1491 | - function viewCompareProducts($compare){ | |
1492 | - $products = array(); | |
1493 | - $i = 0; | |
1494 | - foreach($compare as $id){ | |
1495 | - $sql = "select p.* from catalogs_products p where p.id=?"; | |
1496 | - $products[$i] = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
1497 | - $products[$i]['params'] = $this->getProductParams($id); | |
1498 | - $i++; | |
1499 | - } //print_r($products); | |
1500 | - $this->tpl->assign('products',$products); | |
1501 | - } | |
1502 | - | |
1503 | - function viewProductNembers($str_n){ | |
1504 | - $arr_id = explode(",",$str_n); | |
1505 | - $products = array(); | |
1506 | - foreach($arr_id as $id){ | |
1507 | - $count = $this->db->getOne("select count(*) from catalogs_keys_products_filters where filter_id=?",array(trim($id))); | |
1508 | - $limit = 1; $round = rand(0,($count-$limit)); //" LIMIT 0,$limit" | |
1509 | - $sql = "select catalogs_rubrics.translit as rubric_translit,catalogs_rubrics.name as rubric, catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id=? and catalogs_products.count_modifications>0 order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") ; //. " LIMIT $round,$limit"; | |
1510 | - $row = $this->db->getRow($sql ,array(trim($id)),DB_FETCHMODE_ASSOC); | |
1511 | - if(count($row)>0)$products[] = $row; | |
1512 | - } | |
1513 | - | |
1514 | -// $products = $this->db->getAll("select catalogs_rubrics.translit as translit2,catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id in(".implode(',',$arr_id).") and catalogs_products.count_modifications>0 Group By catalogs_keys_products_filters.filter_id order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") ,array(),DB_FETCHMODE_ASSOC); | |
1515 | - $this->tpl->assign('products_parent',$products); | |
1516 | - } | |
1517 | - | |
1518 | - function getProductSizeCine($id,&$products){ | |
1519 | - $res = $this->db->getAll("select * from catalogs_products_cine where product_id=?",array($id),DB_FETCHMODE_ASSOC); | |
1520 | - $i = 0; | |
1521 | - foreach($res as $row){ | |
1522 | - $products['size_' . $row['n']] = $row['size']; | |
1523 | - $products['cine_' . $row['n']] = $row['cine']; | |
1524 | - $products['metka_' . $row['n']] = $row['metka']; | |
1525 | - $products['id_cine_' . $row['n']] = $row['id']; | |
1526 | - $i++; | |
1527 | - } //print_r($products); | |
1528 | - } | |
1529 | - /* | |
1530 | - function getProductCine($id,$curs = null){ | |
1531 | - $sql = "select cine from catalogs_products where id=?"; | |
1532 | - $row = $this->db->getOne($sql,array($id)); | |
1533 | - return $row; | |
1534 | - }*/ | |
1535 | - | |
1536 | - function getProductCine($id){ | |
1537 | - $sql = "select IF( catalogs_products.is_cost2 <1, catalogs_products.cine, catalogs_products.cine2 ) AS cine from catalogs_modifications left join catalogs_products on catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?"; | |
1538 | - return $this->db->getOne($sql,array($id)); | |
1539 | - } | |
1540 | - | |
1541 | - function viewProductCine($id){ | |
1542 | - $row = $this->db->getAll("select * from catalogs_products_cine where product_id=? and cine>0 Order By n ASC",array($id),DB_FETCHMODE_ASSOC); | |
1543 | - $this->tpl->assign('product_cines',$row); | |
1544 | - } | |
1545 | - | |
1546 | - function viewCatalogsCurs(){ | |
1547 | - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah')); | |
1548 | - $this->tpl->assign('curs_uah',$uah); | |
1549 | - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank')); | |
1550 | - $this->tpl->assign('curs_uah_bank',$uah_bank); | |
1551 | - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd')); | |
1552 | - $this->tpl->assign('curs_usd',$usd); | |
1553 | - } | |
1554 | - | |
1555 | - function saveCurs($data){ | |
1556 | - $table_name = "catalogs_curs"; | |
1557 | - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
1558 | - foreach($data as $key=>$value){ | |
1559 | - $this->db->autoExecute($table_name,array('curs'=>$value),$DB_AUTOQUERY,"type='$key'"); | |
1560 | - } | |
1561 | - } | |
1562 | - | |
1563 | - function viewVarCurs($curs){ | |
1564 | - $this->tpl->assign('curs',$curs); | |
1565 | - } | |
1566 | - | |
1567 | - function viewBasketProducts($session_basket,$curs = null,$discount = 0){ | |
1568 | - $products = array(); $i = 0; $cineAll = 0; | |
1569 | -// $sql = "select catalogs_products.* from catalogs_products where catalogs_products.id=?"; | |
1570 | -// $sql = "select catalogs_modifications.id,IF(catalogs_products.is_cost2<1,catalogs_products.cine,catalogs_products.cine2) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?"; | |
1571 | - $sql = "select catalogs_modifications.id,catalogs_modifications.sale,IF(catalogs_modifications.cine>0,catalogs_modifications.cine,catalogs_products.cine) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?"; | |
1572 | - | |
1573 | - foreach($session_basket as $id){ | |
1574 | - $products_count = 1; | |
1575 | - if(count($products)){ | |
1576 | - foreach($products as $key=>$value){ | |
1577 | - if($value['id']==$id){$products_count=$products[$key]['products_count']+$products_count;$products[$key]['products_count']=$products_count;$products[$key]['products_cine_all']=$products[$key]['cine']*$products_count;$cineAll = $cineAll+$products[$key]['cine'];} | |
1578 | - }} | |
1579 | - if($products_count==1){ | |
1580 | - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
1581 | - $products[$i] = $row; | |
1582 | - $products[$i]['cine'] = round($products[$i]['cine'] - ($products[$i]['cine']*$products[$i]['sale']/100)); | |
1583 | - | |
1584 | - $products[$i]['products_count']=$products_count; | |
1585 | - $products[$i]['products_cine_all']=$products[$i]['cine']*$products_count; | |
1586 | - $cineAll = $cineAll+$products[$i]['products_cine_all']; | |
1587 | - $i++; | |
1588 | - } | |
1938 | + if (count ($search)) | |
1939 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
1940 | + $sql .= "ORDER BY RAND()) as T "; | |
1941 | + $sql .= "Group By rubric_id ORDER BY RAND() LIMIT $limit"; | |
1942 | + $res = $this->db->getAll ($sql, array ( | |
1943 | + true | |
1944 | + ), DB_FETCHMODE_ASSOC); | |
1945 | + // print_r($res); | |
1946 | + $this->tpl->assign ('products_active', $res); | |
1947 | + } | |
1589 | 1948 | |
1590 | - } | |
1591 | - /*print"<pre>"; | |
1592 | - print_r($products); | |
1593 | - print"</pre>";*/ | |
1594 | - $this->tpl->assign('cineAll',$cineAll); | |
1595 | - $this->tpl->assign('cineAll_discount',$cineAll - (($cineAll*$discount)/100)); | |
1596 | - $this->tpl->assign('basket_products',$products); //print_r($products); | |
1597 | - } | |
1598 | - | |
1599 | - | |
1600 | - function BasketUpload(&$session_basket,$proructs_count){ | |
1601 | - | |
1602 | - // ========== ZLODEYEV ============ | |
1603 | - | |
1604 | - foreach($proructs_count as $key=>$value){ | |
1605 | - | |
1606 | - // ==== îáíîâëÿåì ==== | |
1607 | - | |
1608 | - // Âûáèðàåì èíôî î òîâàðå | |
1609 | - $sql4 = "SELECT * FROM catalogs_modifications as m | |
1610 | - LEFT JOIN catalogs_products as p | |
1611 | - ON p.id=m.product_id | |
1612 | - WHERE m.id='".$key."' "; | |
1613 | - $result4 = mysql_query($sql4) or die(mysql_error()); | |
1614 | - if (mysql_affected_rows()!=0) { | |
1615 | - $item=mysql_fetch_assoc($result4); | |
1616 | - } | |
1949 | + function viewProductsActive ($params, $limit = 4, $curs = null) | |
1950 | + { | |
1951 | + $search = array (); | |
1952 | + if (isset ($params['rubID']) && $params['rubID'] > 0 && ! isset ($params['filter_products'])) | |
1953 | + $search[] = sprintf ("catalogs_products.rubric_id=%d", $params['rubID']); | |
1954 | + if (isset ($params['filter']) && count ($params['filter']) > 0) | |
1955 | + $filter = $this->seralizeFilter ($params['filter']); | |
1956 | + | |
1957 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
1958 | + { | |
1959 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
1960 | + } | |
1961 | + if (isset ($filter['g']) && count ($filter['g']) > 0) | |
1962 | + { | |
1963 | + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")"; | |
1964 | + } | |
1965 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
1966 | + { | |
1967 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
1968 | + } | |
1969 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
1970 | + { | |
1971 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
1972 | + } | |
1973 | + if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f'])) | |
1974 | + { | |
1975 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")"; | |
1976 | + } | |
1617 | 1977 | |
1618 | - $f=0; | |
1978 | + if (isset ($params['brend']) && strlen ($params['brend']) > 0) | |
1979 | + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")"; | |
1980 | + | |
1981 | + /* | |
1982 | + * if(isset($params['sex']) && strlen($params['sex'])>0){ | |
1983 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
1984 | + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); | |
1985 | + * } | |
1986 | + */ | |
1987 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
1988 | + { | |
1989 | + $sex = $this->seralizeSex ($_GET['sex']); | |
1990 | + $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
1991 | + } | |
1619 | 1992 | |
1620 | - if (isset($_SESSION['shopcart'])) { | |
1993 | + $sql = " | |
1994 | + SELECT catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit | |
1995 | + FROM catalogs_products | |
1996 | + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
1997 | + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id | |
1998 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
1999 | + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id | |
2000 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id | |
2001 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 | |
2002 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
2003 | + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id | |
2004 | + WHERE catalogs_products.active=? | |
2005 | + AND catalogs_products.count_modifications>0 | |
2006 | + "; | |
1621 | 2007 | |
1622 | - foreach ($_SESSION['shopcart'] as $i => $cart) { | |
2008 | + if (count ($search)) | |
2009 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2010 | + $sql .= "order by RAND() LIMIT $limit"; | |
2011 | + $res = $this->db->getAll ($sql, array ( | |
2012 | + true | |
2013 | + ), DB_FETCHMODE_ASSOC); | |
2014 | + // print_r($res); | |
2015 | + $this->tpl->assign ('products_active', $res); | |
2016 | + } | |
1623 | 2017 | |
1624 | - | |
1625 | - if ($cart['code']!='' && $cart['code']==$key) { | |
1626 | - $f=1; | |
1627 | - $_SESSION['shopcart'][$i]['count']=$value; | |
1628 | - $_SESSION['shopcart'][$i]['total']=$value*$_SESSION['shopcart'][$i]['price']; | |
1629 | - if ($_SESSION['shopcart'][$i]['total']==0) { | |
1630 | - unset($_SESSION['shopcart'][$i]); | |
1631 | - } | |
2018 | + function viewProductsHits ($params, $limit = 4, $curs = null) | |
2019 | + { | |
2020 | + $search = array (); | |
2021 | + if (isset ($params['rubID']) && $params['rubID'] > 0) | |
2022 | + $search[] = sprintf ("catalogs_products.rubric_id=%d", $params['rubID']); | |
2023 | + | |
2024 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
2025 | + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
2026 | + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id | |
2027 | + WHERE catalogs_products.hit=? and catalogs_products.count_modifications>0 "; | |
2028 | + if (count ($search)) | |
2029 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2030 | + $sql .= "order by "; | |
2031 | + if (isset ($params['sort'])) | |
2032 | + { | |
2033 | + switch ($params['sort']) | |
2034 | + { | |
2035 | + case 'cine' : | |
2036 | + $sql .= " catalogs_products.cine " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
1632 | 2037 | break; |
1633 | - } | |
2038 | + case 'click' : | |
2039 | + $sql .= " catalogs_products.click " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
2040 | + break; | |
2041 | + case 'rating' : | |
2042 | + $sql .= " catalogs_products.rating " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
2043 | + break; | |
2044 | + case 'hit' : | |
2045 | + $sql .= " catalogs_products.hit_sort asc"; | |
2046 | + break; | |
2047 | + default : | |
2048 | + $sql .= " RAND()"; | |
1634 | 2049 | } |
1635 | - } | |
2050 | + } | |
2051 | + else | |
2052 | + $sql .= " RAND()"; | |
2053 | + $sql .= " LIMIT $limit"; | |
2054 | + $res = $this->db->getAll ($sql, array ( | |
2055 | + true | |
2056 | + ), DB_FETCHMODE_ASSOC); | |
2057 | + // print_r($res); | |
2058 | + $this->tpl->assign ('products_hits', $res); | |
1636 | 2059 | } |
1637 | - | |
1638 | - // ========== ZLODEYEV ============ | |
1639 | - | |
1640 | - | |
1641 | - $session_basket = array(); | |
1642 | - foreach($proructs_count as $key=>$value){ | |
1643 | - for($i=0;$i<$value;$i++){ | |
1644 | - $session_basket[] = $key; | |
1645 | - } | |
1646 | - } | |
1647 | - } | |
1648 | - | |
1649 | - function sendOrder($data){ | |
1650 | - $mail = new PHPMailer(); | |
1651 | - $mail->CharSet = "windows-1251"; | |
1652 | - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; | |
1653 | - $mail->FromName = $data['order_name']; | |
1654 | - $mail->AddAddress("shop@eltrade.com.ua","shop"); | |
1655 | - $mail->Subject = "Îôîðìèòü çàêàç ñ ÝêñòðèìÑòèëü"; | |
1656 | - $title = Mail::str_rus("Îôîðìèòü çàêàç"); | |
1657 | - $msg = ""; | |
1658 | - foreach($data['product_id'] as $key=>$value){ | |
1659 | - $msg .= "ID: ".$value." "; | |
1660 | - $msg .= "Íàçâàíèå: <b>".$data['product_name'][$key]."</b> "; | |
1661 | - $msg .= "Öåíà çà îäèí: ".$data['product_cine'][$key]." "; | |
1662 | - $msg .= "Êîëè÷åñòâî: ".$data['product_count'][$key]." "; | |
1663 | - $msg .= "Çà âåñü òîâàð: ".$data['product_cine_all'][$key]." "; | |
1664 | - $msg .= "<br>"; | |
1665 | - } | |
1666 | - $msg .= "Îáùàÿ ñóìà: ".$data['cineAll']; | |
1667 | - $msg .= "<br>"; | |
1668 | - /* $msg .= "Ñêèäêà: ".$data['discount']." %"; | |
1669 | - $msg .= "<br>"; */ | |
1670 | - $msg .= "Èòîãî ê îïëàòå: ".$data['cineAll_discount']; | |
1671 | - $msg .= "<br><br><br>"; | |
1672 | - $msg .= "Êîíòàêòíûå äàííûå:"; | |
1673 | - $msg .= "<br>"; | |
1674 | - $msg .= "Èìÿ: ".$data['order_name']; | |
1675 | - $msg .= "<br>"; | |
1676 | - $msg .= "Àäðåñ: ".$data['order_adress']; | |
1677 | - $msg .= "<br>"; | |
1678 | - $msg .= "E-mail: ".$data['order_email']; | |
1679 | - $msg .= "<br>"; | |
1680 | - $msg .= "Êîíòàêòíûé òåëåôîí: ".$data['order_phone']; | |
1681 | -// $msg .= "<br>"; | |
1682 | -// $msg .= "Ìîáèëüíûé òåëåôîí: ".$data['order_phonemob']; | |
1683 | - $msg .= "<br>"; | |
1684 | - $msg .= "Êîììåíòàðèé: ".$data['order_comment']; | |
1685 | -// $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "vapila@vapila.kiev.ua"; | |
1686 | -// Mail::send("borisenko.pavel@gmail.com",$data['order_email'],$title,Mail::str_rus($msg)); | |
1687 | - $mail->MsgHTML($msg); | |
1688 | - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;} | |
1689 | - $mail->ClearAddresses(); | |
1690 | - $mail->ClearAttachments(); | |
1691 | - | |
1692 | - $this->sendOrderXML($data); | |
1693 | - } | |
1694 | - | |
1695 | - | |
1696 | - function sendOrderXML($data){ | |
1697 | - | |
1698 | - | |
1699 | - | |
1700 | -$data['order_phone'] = str_replace("-","",$data['order_phone']); | |
1701 | -$data['order_phone'] = str_replace(")","",$data['order_phone']); | |
1702 | -$data['order_phone'] = str_replace("(","",$data['order_phone']); | |
1703 | -$data['order_phone'] = str_replace(" ","",$data['order_phone']); | |
1704 | -$ffffffff = substr($data['order_phone'],0,3); | |
1705 | -if($ffffffff!="380") | |
1706 | -$data['order_phone'] = "+38".$data['order_phone']; | |
1707 | - | |
1708 | - | |
1709 | - | |
1710 | - $mail = new PHPMailer(); | |
1711 | - $mail->CharSet = "windows-1251"; | |
1712 | - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; | |
1713 | - $mail->FromName = $data['order_name']; | |
1714 | - $mail->AddAddress("extremshop@portal.myoffice.biz.ua","extremshop"); | |
1715 | - $mail->Subject = "xml çàêàç ñ ÝêñòðèìÑòèëü"; | |
1716 | - $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; | |
1717 | - $xml = '<?xml version="1.0" encoding="windows-1251" ?>'; | |
1718 | - $xml .= '<Order orderNum="'.mktime().'">'; | |
1719 | - foreach($data['product_id'] as $key=>$value){ | |
1720 | - $xml .= "<OrderItem ID='".$data['product_code'][$key]."'>"; | |
1721 | - $xml .= "<ProductName>".$data['product_name2'][$key]."</ProductName>"; | |
1722 | - $xml .= "<Size>".$data['product_size'][$key]."</Size>"; | |
1723 | - $xml .= "<Color>".$data['product_color'][$key]."</Color>"; | |
1724 | - $xml .= "<Price>".$data['product_price'][$key]."</Price>"; | |
1725 | - $xml .= "<Count>".$data['product_count'][$key]."</Count>"; | |
1726 | - $xml .= "</OrderItem>"; | |
1727 | - } | |
1728 | - $xml .= '<CustomerInfo>'; | |
1729 | - $xml .= '<Name>'.$data['order_name'].'</Name>'; | |
1730 | - $xml .= '<Mobile>'.$data['order_phone'].'</Mobile>'; | |
1731 | - $xml .= '<Email>'.$data['order_email'].'</Email>'; | |
1732 | - $xml .= '</CustomerInfo>'; | |
1733 | - $xml .= '<DeliveryInfo>'; | |
1734 | - $xml .= '<City>Óêðàèíà</City>'; | |
1735 | - $xml .= '<Address>'.$data['order_adress'].'</Address>'; | |
1736 | - $xml .= '<DeliveryType>Äîñòàâêà</DeliveryType>'; | |
1737 | - $xml .= '</DeliveryInfo>'; | |
1738 | - $xml .= '<Comment>'.$data['order_comment'].'</Comment>'; | |
1739 | - $xml .= '</Order>'; | |
1740 | - $tmpfname = tempnam("tmp", "FOO"); | |
1741 | - $handle = fopen($tmpfname, "w"); | |
1742 | - fwrite($handle, $xml); | |
1743 | - $mail->AddAttachment($tmpfname, 'order.xml'); | |
1744 | - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;} | |
1745 | - fclose($handle); | |
1746 | - unlink($tmpfname); | |
1747 | - $mail->ClearAddresses(); | |
1748 | - $mail->ClearAttachments(); | |
1749 | - // Mail::send("borisenko.pavel@gmail.com",$order_email,"Order",Mail::str_rus($xml)); | |
1750 | - // Mail::send("andrey.belyy@gmail.com",$order_email,"Order",Mail::str_rus($xml)); | |
1751 | - } | |
1752 | - | |
1753 | - function saveOrder($data,$userID = 0){ | |
1754 | - | |
1755 | - $table_name = "catalogs_orders"; | |
1756 | - | |
1757 | - if(isset($data['update_id']) && $data['update_id']>0){ | |
1758 | - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
1759 | - $id = $data['update_id']; | |
1760 | - $where = sprintf("id='%d'",$id); | |
1761 | - } else { | |
1762 | - $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; | |
1763 | - $id = $this->db->nextId('mySequence_'.$table_name); | |
1764 | - $where = null; | |
1765 | - } | |
1766 | - | |
1767 | - | |
1768 | - | |
1769 | - | |
1770 | - $fields_values = array( | |
1771 | - 'id'=>$id, | |
1772 | - 'user_id'=>$userID, | |
1773 | - 'name' => $data['order_name'], | |
1774 | - 'email' => $data['order_email'], | |
1775 | - 'adress' => $data['order_adress'], | |
1776 | - //'phone' => phone_mobil($data['order_phone']), | |
1777 | - 'phone' => $data['order_phone'], | |
1778 | - 'comment' => $data['order_comment'], | |
1779 | - 'delivery' => $data['delivery'], | |
1780 | - 'total'=>$_SESSION['cart']['total'], | |
1781 | - 'status' => '1', | |
1782 | - 'mktime'=>mktime() | |
1783 | - ); | |
1784 | - $DB_AUTOQUERY; | |
1785 | - | |
1786 | - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,$where); | |
1787 | - | |
1788 | - if(isset($data['product_id'])){ $i=-1; | |
1789 | - foreach($data['product_id'] as $key=>$value){ $i++; | |
1790 | - $this->db->autoExecute("catalogs_orders_products",array( | |
1791 | - 'order_id'=>$id, | |
1792 | - 'product_id'=>$value, | |
1793 | - 'product_cine_id'=>$_SESSION['cart'][$i]['price'], | |
1794 | - 'count'=>$data['product_count'][$key]) | |
1795 | - ,DB_AUTOQUERY_INSERT); | |
1796 | - } | |
1797 | - } | |
1798 | - | |
1799 | - | |
1800 | - } | |
1801 | - | |
1802 | - function deleteOrder($id){ | |
1803 | - $this->db->query("delete from catalogs_orders where id=?",array($id)); | |
1804 | - $this->db->query("delete from catalogs_orders_products where order_id=?",array($id)); | |
1805 | - } | |
1806 | - | |
1807 | - function updateOrder($data){ | |
1808 | - $table_name = "catalogs_orders"; | |
1809 | - $fields_values = array('name' => $data['order_name'],'email' => $data['order_email'],'adress' => $data['order_adress'],'phone' => $data['order_phone'],'comment' => $data['order_comment'],'mktime'=>mktime()); | |
1810 | - if(isset($data['order_active']))$fields_values['active'] = 1; | |
1811 | - else $fields_values['active'] = 0; | |
1812 | - $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,sprintf("id='%d'",$data['update_id'])); | |
1813 | - } | |
1814 | - | |
1815 | - function updateOrderProducts($data){ | |
1816 | - foreach($data['product_id'] as $key=>$value){ | |
1817 | - if($data['product_count'][$value]<1){$this->db->query("delete from catalogs_orders_products where order_id='{$data['order_id']}' AND product_id='$value'");} | |
1818 | - else{$this->db->autoExecute("catalogs_orders_products",array('count'=>$data['product_count'][$value]),DB_AUTOQUERY_UPDATE,"order_id='{$data['order_id']}' AND product_id='$value'");} | |
1819 | - } | |
1820 | - } | |
1821 | - | |
1822 | - function viewOrder($id){ | |
1823 | - $row = $this->db->getRow("select * from catalogs_orders where id=?",array($id),DB_FETCHMODE_ASSOC); | |
1824 | - $this->tpl->assign('order', $row); | |
1825 | - } | |
1826 | - | |
1827 | - function viewOrderProducts($order_id){ | |
1828 | - $res = $this->db->getAll("select p.*,op.*,pr.name,pr.pic,pr.pic_big from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id Left join catalogs_products pr On pr.id=p.product_id where order_id=?",array($order_id),DB_FETCHMODE_ASSOC); | |
1829 | - $sum = 0; | |
1830 | - foreach($res as $key=>$row){ | |
1831 | - $sum = $sum + ($row['cine']*$row['count']); | |
1832 | - $res[$key]['cine_all'] = ($row['cine']*$row['count']); | |
1833 | - } | |
1834 | - $discount = $this->db->getOne('select catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id where catalogs_orders.id=?',array($order_id)); | |
1835 | - $this->tpl->assign('cine', array('sum'=>$sum,'discount'=>$discount,'sum_discount'=>($sum - (($sum*$discount)/100)) )); | |
1836 | - $this->tpl->assign('basket_products', $res); | |
1837 | - } | |
1838 | - | |
1839 | - function viewOrders($params = array()){ | |
1840 | - $search = array(); | |
1841 | - if(isset($params['userID']) && $params['userID']>0)$search[] = sprintf("catalogs_orders.user_id='%d'",$params['userID']); | |
1842 | - $sql = "select catalogs_orders.*,catalogs_users.login as user_login,catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id WHERE 1=1 "; | |
1843 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1844 | - $sql .= " order by mktime desc"; | |
1845 | - $pagerOptions = Array( | |
1846 | - 'mode' => 'Sliding', | |
1847 | - 'delta' => 16, | |
1848 | - 'perPage' => 50, | |
1849 | - 'linkClass'=>"link_class", | |
1850 | - 'curPageLinkClassName'=>"link_class_active", | |
1851 | - 'spacesBeforeSeparator' => 1, | |
1852 | - 'spacesAfterSeparator' => 1 | |
1853 | - ); | |
1854 | - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array()); | |
1855 | - foreach($res['data'] as $key=>$value){ | |
1856 | - $res['data'][$key]['sum'] = $this->getOrderProductsSum($value['id']); | |
1857 | - $res['data'][$key]['sum_discount'] = $res['data'][$key]['sum'] - (($res['data'][$key]['sum']*$value['discount'])/100); | |
1858 | - } | |
1859 | - $this->tpl->assign('ordersData', $res); | |
1860 | - } | |
1861 | - | |
1862 | - function getOrderProductsSum($order_id){ | |
1863 | - $res = $this->db->getAll("select op.*,p.cine from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id where op.order_id=?",array($order_id),DB_FETCHMODE_ASSOC); | |
1864 | - // print_r($res); | |
1865 | - $sum = 0; | |
1866 | - foreach($res as $row){ | |
1867 | - $sum = $sum + ($row['cine']*$row['count']); | |
1868 | - } | |
1869 | - return $sum; | |
1870 | - } | |
1871 | - | |
1872 | - function SaveBrend($data,$upload){ | |
1873 | - $table_name = "catalogs_brends"; | |
1874 | - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
1875 | - $fields_values = array('rubric_id'=>$data['rubric_id'],'name'=>$data['brend'],'email'=>$data['email'],'text'=>$data['text_setka'],'youtube'=>$data['youtube'],'seo'=>$data['seo_text'],'sort'=>$data['sort'],'meta_title'=>$data['meta_title'],'meta_description'=>$data['meta_description'],'meta_keywords'=>$data['meta_keywords'],'active'=>$data['active'] ,'about'=>$data['about'],'link'=>$data['link'],'teh'=>$data['teh']); | |
1876 | - | |
1877 | - if(isset($data['delete_video']) && $data['delete_video']==1){ | |
1878 | - $this->deleteBrendPic($data['update_id']); | |
1879 | - $fields_values['pic'] = null; | |
1880 | - } | |
1881 | - if($upload['pic']['tmp_name']){ | |
1882 | - if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic')); | |
1883 | - $name_pic = mktime() . "." . substr(strrchr($_FILES['pic']['name'],"."),1); | |
1884 | - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/$name_pic"; | |
1885 | - move_uploaded_file($_FILES["pic"]["tmp_name"], $file_name); | |
1886 | - chmod($file_name,"0777"); | |
1887 | - $fields_values['pic'] = $name_pic; | |
1888 | - } | |
1889 | - | |
1890 | - if(isset($data['delete_pic_s']) && $data['delete_pic_s']==1){ | |
1891 | - $this->deleteBrendPic($data['update_id'],array('pic_s')); | |
1892 | - $fields_values['pic_s'] = null; | |
1893 | - } | |
1894 | - if($upload['pic_s']['tmp_name']){ | |
1895 | - if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic_s')); | |
1896 | - $name_pic = mktime() . "." . substr(strrchr($_FILES['pic_s']['name'],"."),1); | |
1897 | - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/$name_pic"; | |
1898 | - move_uploaded_file($_FILES["pic_s"]["tmp_name"], $file_name); | |
1899 | - chmod($file_name,"0777"); | |
1900 | - $fields_values['pic_s'] = $name_pic; | |
1901 | - } | |
1902 | - | |
1903 | - | |
1904 | - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); | |
1905 | - } | |
1906 | - | |
1907 | - function deleteBrendPic($id,$pics = array('pic','pic_s')){ | |
1908 | - $sql = "select " . implode(',',$pics) . " from catalogs_brends where id=?"; | |
1909 | - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); | |
1910 | - if(isset($row['pic'])){ | |
1911 | - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/{$row['pic']}"; | |
1912 | - @unlink($file_name); | |
1913 | - } | |
1914 | - if(isset($row['pic_s'])){ | |
1915 | - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/{$row['pic_s']}"; | |
1916 | - @unlink($file_name); | |
1917 | - } | |
1918 | - } | |
1919 | - | |
1920 | - function viewBrends($type = false){ | |
1921 | - $sql = "select b.*,r.name as rubric from catalogs_brends b left join catalogs_rubrics r On r.id=b.rubric_id "; | |
1922 | - if($type!=false)$sql .= "where b.type='$type'"; | |
1923 | - $sql .= " Order by b.name Asc"; | |
1924 | - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
1925 | - $this->tpl->assign('brends',$row); | |
1926 | - } | |
1927 | - | |
1928 | - function viewBrendsGroup($params = array()){ | |
1929 | - $search = array(); | |
1930 | - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); | |
1931 | - | |
1932 | - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ | |
1933 | - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; | |
1934 | - } | |
1935 | - | |
1936 | - if(isset($filter['y']) && $filter['y']>0){ | |
1937 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
1938 | - } | |
1939 | - | |
1940 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
1941 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
1942 | - } | |
1943 | - | |
1944 | - if(isset($filter['g']) && count($filter['g'])>0){ | |
1945 | - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; | |
1946 | - } | |
1947 | - | |
1948 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
1949 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
1950 | - } | |
1951 | - if(isset($filter['r']) && count($filter['r'])>0){ | |
1952 | - $search[] = "m2.rost in (".implode(",",$filter['r']).")"; | |
1953 | - } | |
1954 | - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("catalogs_products.active='%d'",$_GET['new']); | |
1955 | - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("catalogs_products.top='%d'",$_GET['top']); | |
1956 | -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("catalogs_products.akcii_id>'%d'",0); | |
1957 | - /*if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
1958 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
1959 | - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]); | |
1960 | - }*/ | |
1961 | 2060 | |
1962 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
1963 | - $sex = $this->seralizeSex($_GET['sex']); | |
1964 | - $search[] = "s.sex IN (" . implode(",",$sex) . ")"; | |
1965 | - } | |
1966 | -/* | |
1967 | - $sql = "select * from catalogs_products "; | |
1968 | - $sql .= "LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id "; | |
1969 | - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ | |
1970 | - //$sql .= "LEFT JOIN catalogs_products ON catalogs_products.brend_id=catalogs_brends.id "; | |
1971 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1972 | - } | |
1973 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; | |
1974 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
1975 | - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id "; | |
1976 | - | |
1977 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";} | |
1978 | - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 ";} | |
1979 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";} | |
1980 | - $sql .= "where catalogs_products.count_modifications>0 and catalogs_brends.id>0 "; | |
1981 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
1982 | - if(isset($params['rubID']) && !isset($params['filter_products'])){ | |
1983 | - $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']); | |
1984 | - $rubric_id = ($rubric_id==0)?$params['rubID']:$rubric_id; | |
1985 | - $sql .= "and catalogs_products.rubric_id='".$rubric_id."'"; | |
1986 | - } | |
1987 | - $sql .= " Group by catalogs_brends.name Order by catalogs_brends.name Asc"; | |
1988 | - // print $sql; | |
1989 | - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
1990 | - $this->tpl->assign('brends',$row); | |
1991 | - } | |
1992 | -*/ | |
1993 | - | |
1994 | - // ==== catalogs_products ==== | |
1995 | - | |
1996 | - $sql = array (); | |
1997 | - $sql[] = "select * from catalogs_products "; | |
1998 | - $sql[] = "LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id "; | |
1999 | - | |
2000 | - if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f'])) | |
2001 | - { | |
2002 | - //$sql .= "LEFT JOIN catalogs_products ON catalogs_products.brend_id=catalogs_brends.id "; | |
2003 | - $sql[] = "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
2004 | - } | |
2005 | - | |
2006 | - if (isset ($filter['y']) && $filter['y'] > 0) | |
2061 | + function viewProductsTops ($params, $limit = 4, $curs = null) | |
2007 | 2062 | { |
2008 | - $sql[] = "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; | |
2063 | + $search = array (); | |
2064 | + if (isset ($params['rubID']) && $params['rubID'] > 0 && ! isset ($params['filter_products'])) | |
2065 | + $search[] = sprintf ("catalogs_products.rubric_id=%d", $params['rubID']); | |
2066 | + if (isset ($params['filter']) && count ($params['filter']) > 0) | |
2067 | + $filter = $this->seralizeFilter ($params['filter']); | |
2068 | + | |
2069 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2070 | + { | |
2071 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2072 | + } | |
2073 | + if (isset ($filter['g']) && count ($filter['g']) > 0) | |
2074 | + { | |
2075 | + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")"; | |
2076 | + } | |
2077 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2078 | + { | |
2079 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
2080 | + } | |
2081 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2082 | + { | |
2083 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
2084 | + } | |
2085 | + if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f'])) | |
2086 | + { | |
2087 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")"; | |
2088 | + } | |
2089 | + | |
2090 | + if (isset ($params['brend']) && strlen ($params['brend']) > 0) | |
2091 | + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")"; | |
2092 | + | |
2093 | + /* | |
2094 | + * if(isset($params['sex']) && strlen($params['sex'])>0){ | |
2095 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2096 | + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); | |
2097 | + * } | |
2098 | + */ | |
2099 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2100 | + { | |
2101 | + $sex = $this->seralizeSex ($_GET['sex']); | |
2102 | + $search[] = "catalogs_products.sex IN (" . implode (",", $sex) . ")"; | |
2103 | + } | |
2104 | + | |
2105 | + $sql = " | |
2106 | + SELECT catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit | |
2107 | + FROM catalogs_products | |
2108 | + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
2109 | + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id | |
2110 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
2111 | + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id | |
2112 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id | |
2113 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 | |
2114 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
2115 | + WHERE catalogs_products.top=? | |
2116 | + AND catalogs_products.count_modifications>0 | |
2117 | + "; | |
2118 | + | |
2119 | + if (count ($search)) | |
2120 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2121 | + // $sql .= "order by RAND()"; | |
2122 | + $sql .= "order by "; | |
2123 | + if (isset ($params['sort'])) | |
2124 | + { | |
2125 | + switch ($params['sort']) | |
2126 | + { | |
2127 | + case 'cine' : | |
2128 | + $sql .= " catalogs_products.cine " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
2129 | + break; | |
2130 | + case 'click' : | |
2131 | + $sql .= " catalogs_products.click " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
2132 | + break; | |
2133 | + case 'rating' : | |
2134 | + $sql .= " catalogs_products.rating " . (($_GET['order'] == 'asc') ? "asc" : "desc"); | |
2135 | + break; | |
2136 | + case 'hit' : | |
2137 | + $sql .= " catalogs_products.hit_sort asc"; | |
2138 | + break; | |
2139 | + default : | |
2140 | + $sql .= " r.top desc"; | |
2141 | + } | |
2142 | + } | |
2143 | + else | |
2144 | + $sql .= " r.top desc"; | |
2145 | + $sql .= " LIMIT $limit"; | |
2146 | + // print $sql; | |
2147 | + $res = $this->db->getAll ($sql, array ( | |
2148 | + true | |
2149 | + ), DB_FETCHMODE_ASSOC); | |
2150 | + // print_r($res); | |
2151 | + $this->tpl->assign ('products_top', $res); | |
2009 | 2152 | } |
2010 | 2153 | |
2011 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2154 | + function viewProductsTopOne () | |
2012 | 2155 | { |
2013 | - $sql[] = "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; | |
2156 | + $count = $this->db->getOne ("select count(*) from catalogs_products WHERE catalogs_products.header=?", array ( | |
2157 | + true | |
2158 | + )); | |
2159 | + $limit = 1; | |
2160 | + $round = rand (0, ($count - $limit)); | |
2161 | + $res = $this->db->getRow ("select * from catalogs_products WHERE catalogs_products.header=? order by id " . ((rand (1, 1000) % 2) ? "asc" : "desc") . " LIMIT $round,$limit", array ( | |
2162 | + true | |
2163 | + ), DB_FETCHMODE_ASSOC); | |
2164 | + $this->tpl->assign ('products_top_one', $res); | |
2014 | 2165 | } |
2015 | 2166 | |
2016 | - if (isset ($filter['g']) && count ($filter['g']) > 0) | |
2167 | + function viewProductsLast ($limit = 1) | |
2017 | 2168 | { |
2018 | - $sql[] = "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id "; | |
2169 | + $search = array (); | |
2170 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE catalogs_products.active=? "; | |
2171 | + $sql .= "order by catalogs_products.mktime desc LIMIT $limit"; | |
2172 | + $res = $this->db->getAll ($sql, array ( | |
2173 | + true | |
2174 | + ), DB_FETCHMODE_ASSOC); | |
2175 | + $this->tpl->assign ('products_last', $res); | |
2019 | 2176 | } |
2020 | 2177 | |
2021 | - if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2178 | + function viewProductsHitsAll ($limit = 4) | |
2022 | 2179 | { |
2023 | - $sql[] = "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 "; | |
2180 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE hit=? "; | |
2181 | + $sql .= "order by mktime desc LIMIT $limit"; | |
2182 | + $products_hits = $this->db->getAll ($sql, array ( | |
2183 | + true | |
2184 | + ), DB_FETCHMODE_ASSOC); | |
2185 | + $this->tpl->assign ('products_hits_all', $products_hits); | |
2024 | 2186 | } |
2025 | 2187 | |
2026 | - if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2188 | + function activeNull ($rubric_id) | |
2027 | 2189 | { |
2028 | - $sql[] = "LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 "; | |
2190 | + $sql = "update catalogs_products set active=? where rubric_id=?"; | |
2191 | + $this->db->query ($sql, array ( | |
2192 | + 0, | |
2193 | + $rubric_id | |
2194 | + )); | |
2029 | 2195 | } |
2030 | 2196 | |
2031 | - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2197 | + function viewProductOne ($id, &$row) | |
2032 | 2198 | { |
2033 | - $sql[] = "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id "; | |
2199 | + // $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b2 ON b2.id=p.brend_id left join catalogs_brends b ON b.name=b2.name and b.active=1 where p.id=?"; | |
2200 | + $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b ON b.id=p.brend_id where p.id=?"; | |
2201 | + | |
2202 | + $row = $this->db->getRow ($sql, array ( | |
2203 | + $id | |
2204 | + ), DB_FETCHMODE_ASSOC); | |
2205 | + $row['ph1'] = $this->getFilterPh1 ($row['id']); | |
2206 | + | |
2207 | + $row['rating2'] = $row['rating']; | |
2208 | + if (@$row['rating']) | |
2209 | + $row['rating'] = round ((@$row['rating'] / @$row['vote_num']), 0); | |
2210 | + else | |
2211 | + $row['rating'] = 0; | |
2212 | + $row['rating'] = @$row['rating'] * 17; | |
2213 | + // print_r($row); | |
2214 | + $this->tpl->assign ('product', $row); | |
2034 | 2215 | } |
2035 | 2216 | |
2036 | - $sql[] = "where catalogs_products.count_modifications > 0 and catalogs_brends.id > 0 "; | |
2037 | - | |
2038 | - if (count ($search)) | |
2217 | + function deleteCompareProduct (&$compare, $id) | |
2039 | 2218 | { |
2040 | - $sql[] = "AND " . implode(" AND ", $search) . " "; | |
2219 | + foreach ($compare as $key => $_id) | |
2220 | + { | |
2221 | + if ($_id == $id) | |
2222 | + unset ($compare[$key]); | |
2223 | + } | |
2041 | 2224 | } |
2042 | 2225 | |
2043 | - if (isset ($params['rubID']) && ! isset ($params['filter_products'])) | |
2226 | + function viewCompareProducts ($compare) | |
2044 | 2227 | { |
2045 | - $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']); | |
2046 | - $rubric_id = ($rubric_id == 0) ? $params['rubID'] : $rubric_id; | |
2047 | - $sql[] = "and catalogs_products.rubric_id='".$rubric_id."'"; | |
2228 | + $products = array (); | |
2229 | + $i = 0; | |
2230 | + foreach ($compare as $id) | |
2231 | + { | |
2232 | + $sql = "select p.* from catalogs_products p where p.id=?"; | |
2233 | + $products[$i] = $this->db->getRow ($sql, array ( | |
2234 | + $id | |
2235 | + ), DB_FETCHMODE_ASSOC); | |
2236 | + $products[$i]['params'] = $this->getProductParams ($id); | |
2237 | + $i ++; | |
2238 | + } // print_r($products); | |
2239 | + $this->tpl->assign ('products', $products); | |
2048 | 2240 | } |
2049 | 2241 | |
2050 | - $sql[] = " Group by catalogs_brends.name Order by catalogs_brends.name Asc"; | |
2051 | - | |
2052 | - if (count ($sql) > 4) | |
2053 | - { | |
2054 | - $row = $this->db->getAll(implode (' ', $sql), array(), DB_FETCHMODE_ASSOC); | |
2055 | - } | |
2056 | - else | |
2242 | + function viewProductNembers ($str_n) | |
2057 | 2243 | { |
2058 | - // çíà÷èò ñòðàíèöà | |
2059 | - $row = array (); | |
2244 | + $arr_id = explode (",", $str_n); | |
2245 | + $products = array (); | |
2246 | + foreach ($arr_id as $id) | |
2247 | + { | |
2248 | + $count = $this->db->getOne ("select count(*) from catalogs_keys_products_filters where filter_id=?", array ( | |
2249 | + trim ($id) | |
2250 | + )); | |
2251 | + $limit = 1; | |
2252 | + $round = rand (0, ($count - $limit)); // " LIMIT 0,$limit" | |
2253 | + $sql = "select catalogs_rubrics.translit as rubric_translit,catalogs_rubrics.name as rubric, catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id=? and catalogs_products.count_modifications>0 order by catalogs_keys_products_filters.product_id " . ((rand (1, 1000) % 2) ? "asc" : "desc"); // . " LIMIT $round,$limit"; | |
2254 | + $row = $this->db->getRow ($sql, array ( | |
2255 | + trim ($id) | |
2256 | + ), DB_FETCHMODE_ASSOC); | |
2257 | + if (count ($row) > 0) | |
2258 | + $products[] = $row; | |
2259 | + } | |
2260 | + | |
2261 | + // $products = $this->db->getAll("select catalogs_rubrics.translit as translit2,catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id in(".implode(',',$arr_id).") and catalogs_products.count_modifications>0 Group By catalogs_keys_products_filters.filter_id order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") ,array(),DB_FETCHMODE_ASSOC); | |
2262 | + $this->tpl->assign ('products_parent', $products); | |
2060 | 2263 | } |
2061 | - $this->tpl->assign('brends', $row); | |
2062 | - | |
2063 | -} | |
2064 | - | |
2065 | -// ===== | |
2066 | - | |
2067 | - function viewBrendsActive(){ | |
2068 | - $sql = "select * from catalogs_brends where active=1 "; | |
2069 | - $sql .= " Order by name Asc"; | |
2070 | - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
2071 | - $this->tpl->assign('brends_a',$row); | |
2072 | - } | |
2073 | - | |
2074 | - function SaveCity($data){ | |
2075 | - $table_name = "catalogs_cities"; | |
2076 | - $DB_AUTOQUERY = (isset($data['update_id']) && $data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
2077 | - $fields_values = array('name'=>$data['name']); | |
2078 | - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); | |
2079 | - return mysql_insert_id(); | |
2080 | - } | |
2081 | - | |
2082 | - function is_city($name){ | |
2083 | - return $this->db->getOne('select id from catalogs_cities where name=?',array($name)); | |
2084 | - } | |
2085 | - | |
2086 | - function viewCityMod($code){ | |
2087 | - $sql = "select c.name from catalogs_keys_products_cities k left join catalogs_cities c on c.id=k.city_id where k.mod_code=? and k.count>0"; | |
2088 | - $row = $this->db->getCol($sql,"name",array($code)); | |
2089 | - if(!count($row))return ""; | |
2090 | - if(count($row) == 1 && trim($row[0])==''){ return ""; } | |
2091 | - | |
2092 | - foreach($row as $key=>$value){if($value=="Èíòåðíåò ìàãàçèí" or $value=="Êèåâ(Îëèìïèéñêèé)" or $value=="Ëüâîâ" or trim($value)=="")unset($row[$key]);} | |
2093 | -$row2 = array(); | |
2094 | -foreach($row as $key=>$value) if(trim($value)!='') $row2[] = $value; | |
2095 | -$row = $row2; | |
2096 | - | |
2097 | - $l = array(); | |
2098 | - for($i=0;$i<count($row);$i++){ | |
2099 | - $key = 0; | |
2100 | - for($i2=0;$i2<count($l);$i2++) | |
2101 | - if($l[$i2]==$row[$i]) $key=1; | |
2102 | - if($key==0) $l[]=$row[$i]; | |
2103 | - } | |
2104 | - if(trim($_REQUEST['test2'])!='1') | |
2105 | - { return implode(', ',$l);} | |
2106 | - return implode(', ',$row); | |
2107 | - } | |
2108 | - | |
2109 | - function viewCitiesProductID($id){ | |
2110 | - $sql = "select city_id from catalogs_keys_products_cities where product_id=?"; | |
2111 | - $row = $this->db->getCol($sql,"city_id",array($id)); | |
2112 | - $this->tpl->assign('product_cities',$row); | |
2113 | - } | |
2114 | 2264 | |
2115 | - function viewCities($type = false){ | |
2116 | - $sql = "select * from catalogs_cities "; | |
2117 | - $sql .= " Order by name Asc"; | |
2118 | - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
2119 | - $this->tpl->assign('cities',$row); | |
2120 | - } | |
2121 | - | |
2122 | - function viewCitiesProduct($id){ | |
2123 | - $sql = "select catalogs_cities.* from catalogs_keys_products_cities left join catalogs_cities on catalogs_cities.id=catalogs_keys_products_cities.city_id Where catalogs_keys_products_cities.product_id=?"; | |
2124 | - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); | |
2125 | - $this->tpl->assign('cities',$row); | |
2126 | - } | |
2127 | - | |
2128 | - function viewCity($id){ | |
2129 | - $row = $this->db->getRow("select * from catalogs_cities where id=?",array($id),DB_FETCHMODE_ASSOC); | |
2130 | - $this->tpl->assign('city', $row); | |
2131 | - } | |
2132 | - | |
2133 | - function deleteCity($id){ | |
2134 | - $this->db->query("delete from catalogs_cities where id=?",array($id)); | |
2135 | - $this->delete_keysCitiesProduct($id); | |
2136 | - } | |
2137 | - | |
2138 | - function delete_keysCitiesProduct($id){ | |
2139 | - $sql = "delete from catalogs_keys_products_cities where city_id=?"; | |
2140 | - $this->db->query($sql,array($id)); | |
2141 | - } | |
2142 | - | |
2143 | - function SaveYears($data){ | |
2144 | - $table_name = "catalogs_years"; | |
2145 | - foreach($data['filter'] as $key=>$name){ | |
2146 | - if(strlen($name)>0){ | |
2147 | - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";} | |
2148 | - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";} | |
2149 | - $this->db->autoExecute($table_name,array('name'=>$name,'rubric_id'=>$data['rubric_id']),$DB_AUTOQUERY,$where); | |
2150 | - } | |
2151 | - } | |
2152 | - } | |
2153 | - | |
2154 | - function viewYearsProduct($id){ | |
2155 | - $sql = "select y.* from catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id where k.product_id=?"; | |
2156 | - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); | |
2157 | - $this->tpl->assign('product_years',$row); | |
2158 | - } | |
2159 | - | |
2160 | - function viewYearsProductID($id){ | |
2161 | - $sql = "select year_id from catalogs_keys_products_years where product_id=?"; | |
2162 | - $row = $this->db->getCol($sql,"year_id",array($id)); | |
2163 | - $this->tpl->assign('product_years',$row); | |
2164 | - } | |
2165 | - | |
2166 | -function viewYears ($rubric_id, $filters = null) | |
2167 | -{ | |
2168 | - $search = array (); | |
2169 | - | |
2170 | - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2171 | - $filter = $this->seralizeFilter ($_GET['filter']); | |
2172 | - | |
2173 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2265 | + function getProductSizeCine ($id, &$products) | |
2174 | 2266 | { |
2175 | - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2267 | + $res = $this->db->getAll ("select * from catalogs_products_cine where product_id=?", array ( | |
2268 | + $id | |
2269 | + ), DB_FETCHMODE_ASSOC); | |
2270 | + $i = 0; | |
2271 | + foreach ($res as $row) | |
2272 | + { | |
2273 | + $products['size_' . $row['n']] = $row['size']; | |
2274 | + $products['cine_' . $row['n']] = $row['cine']; | |
2275 | + $products['metka_' . $row['n']] = $row['metka']; | |
2276 | + $products['id_cine_' . $row['n']] = $row['id']; | |
2277 | + $i ++; | |
2278 | + } // print_r($products); | |
2176 | 2279 | } |
2177 | 2280 | |
2178 | - if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2281 | + /* | |
2282 | + * function getProductCine($id,$curs = null){ | |
2283 | + * $sql = "select cine from catalogs_products where id=?"; | |
2284 | + * $row = $this->db->getOne($sql,array($id)); | |
2285 | + * return $row; | |
2286 | + * } | |
2287 | + */ | |
2288 | + function getProductCine ($id) | |
2179 | 2289 | { |
2180 | - $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
2290 | + $sql = "select IF( catalogs_products.is_cost2 <1, catalogs_products.cine, catalogs_products.cine2 ) AS cine from catalogs_modifications left join catalogs_products on catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?"; | |
2291 | + return $this->db->getOne ($sql, array ( | |
2292 | + $id | |
2293 | + )); | |
2181 | 2294 | } |
2182 | - | |
2183 | - if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2295 | + | |
2296 | + function viewProductCine ($id) | |
2184 | 2297 | { |
2185 | - $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
2298 | + $row = $this->db->getAll ("select * from catalogs_products_cine where product_id=? and cine>0 Order By n ASC", array ( | |
2299 | + $id | |
2300 | + ), DB_FETCHMODE_ASSOC); | |
2301 | + $this->tpl->assign ('product_cines', $row); | |
2186 | 2302 | } |
2187 | 2303 | |
2188 | - if (isset ($_GET['new']) && $_GET['new'] > 0) | |
2189 | - $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
2190 | - | |
2191 | - if (isset ($_GET['top']) && $_GET['top'] > 0) | |
2192 | - $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
2193 | - | |
2194 | - if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
2195 | - $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
2196 | - | |
2197 | - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2198 | - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2199 | - | |
2200 | - /** | |
2201 | - * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2202 | - * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2203 | - * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2204 | - * } | |
2205 | - */ | |
2206 | - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2304 | + function viewCatalogsCurs () | |
2207 | 2305 | { |
2208 | - $sex = $this->seralizeSex ($_GET['sex']); | |
2209 | - $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
2306 | + $uah = $this->db->getOne ("select curs from catalogs_curs where type=?", array ( | |
2307 | + 'uah' | |
2308 | + )); | |
2309 | + $this->tpl->assign ('curs_uah', $uah); | |
2310 | + $uah_bank = $this->db->getOne ("select curs from catalogs_curs where type=?", array ( | |
2311 | + 'uah_bank' | |
2312 | + )); | |
2313 | + $this->tpl->assign ('curs_uah_bank', $uah_bank); | |
2314 | + $usd = $this->db->getOne ("select curs from catalogs_curs where type=?", array ( | |
2315 | + 'usd' | |
2316 | + )); | |
2317 | + $this->tpl->assign ('curs_usd', $usd); | |
2210 | 2318 | } |
2211 | 2319 | |
2212 | - if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2320 | + function saveCurs ($data) | |
2213 | 2321 | { |
2214 | - $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; | |
2322 | + $table_name = "catalogs_curs"; | |
2323 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
2324 | + foreach ($data as $key => $value) | |
2325 | + { | |
2326 | + $this->db->autoExecute ($table_name, array ( | |
2327 | + 'curs' => $value | |
2328 | + ), $DB_AUTOQUERY, "type='$key'"); | |
2329 | + } | |
2215 | 2330 | } |
2216 | 2331 | |
2217 | - $sql = "select y.* from catalogs_products p, catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id "; | |
2218 | - | |
2219 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2220 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; | |
2221 | - | |
2222 | - if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2332 | + function viewVarCurs ($curs) | |
2223 | 2333 | { |
2224 | - $sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 "; | |
2334 | + $this->tpl->assign ('curs', $curs); | |
2225 | 2335 | } |
2226 | 2336 | |
2227 | - if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2337 | + function viewBasketProducts ($session_basket, $curs = null, $discount = 0) | |
2228 | 2338 | { |
2229 | - $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 "; | |
2339 | + $products = array (); | |
2340 | + $i = 0; | |
2341 | + $cineAll = 0; | |
2342 | + // $sql = "select catalogs_products.* from catalogs_products where catalogs_products.id=?"; | |
2343 | + // $sql = "select catalogs_modifications.id,IF(catalogs_products.is_cost2<1,catalogs_products.cine,catalogs_products.cine2) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?"; | |
2344 | + $sql = "select catalogs_modifications.id,catalogs_modifications.sale,IF(catalogs_modifications.cine>0,catalogs_modifications.cine,catalogs_products.cine) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?"; | |
2345 | + | |
2346 | + foreach ($session_basket as $id) | |
2347 | + { | |
2348 | + $products_count = 1; | |
2349 | + if (count ($products)) | |
2350 | + { | |
2351 | + foreach ($products as $key => $value) | |
2352 | + { | |
2353 | + if ($value['id'] == $id) | |
2354 | + { | |
2355 | + $products_count = $products[$key]['products_count'] + $products_count; | |
2356 | + $products[$key]['products_count'] = $products_count; | |
2357 | + $products[$key]['products_cine_all'] = $products[$key]['cine'] * $products_count; | |
2358 | + $cineAll = $cineAll + $products[$key]['cine']; | |
2359 | + } | |
2360 | + } | |
2361 | + } | |
2362 | + if ($products_count == 1) | |
2363 | + { | |
2364 | + $row = $this->db->getRow ($sql, array ( | |
2365 | + $id | |
2366 | + ), DB_FETCHMODE_ASSOC); | |
2367 | + $products[$i] = $row; | |
2368 | + $products[$i]['cine'] = round ($products[$i]['cine'] - ($products[$i]['cine'] * $products[$i]['sale'] / 100)); | |
2369 | + | |
2370 | + $products[$i]['products_count'] = $products_count; | |
2371 | + $products[$i]['products_cine_all'] = $products[$i]['cine'] * $products_count; | |
2372 | + $cineAll = $cineAll + $products[$i]['products_cine_all']; | |
2373 | + $i ++; | |
2374 | + } | |
2375 | + } | |
2376 | + /* | |
2377 | + * print"<pre>"; | |
2378 | + * print_r($products); | |
2379 | + * print"</pre>"; | |
2380 | + */ | |
2381 | + $this->tpl->assign ('cineAll', $cineAll); | |
2382 | + $this->tpl->assign ('cineAll_discount', $cineAll - (($cineAll * $discount) / 100)); | |
2383 | + $this->tpl->assign ('basket_products', $products); // print_r($products); | |
2230 | 2384 | } |
2231 | 2385 | |
2232 | - if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2386 | + function BasketUpload (&$session_basket, $proructs_count) | |
2233 | 2387 | { |
2234 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; | |
2388 | + | |
2389 | + // ========== ZLODEYEV ============ | |
2390 | + foreach ($proructs_count as $key => $value) | |
2391 | + { | |
2392 | + | |
2393 | + // ==== îáíîâëÿåì ==== | |
2394 | + | |
2395 | + // Âûáèðàåì èíôî î òîâàðå | |
2396 | + $sql4 = "SELECT * FROM catalogs_modifications as m | |
2397 | + LEFT JOIN catalogs_products as p | |
2398 | + ON p.id=m.product_id | |
2399 | + WHERE m.id='" . $key . "' "; | |
2400 | + $result4 = mysql_query ($sql4) or die (mysql_error ()); | |
2401 | + if (mysql_affected_rows () != 0) | |
2402 | + { | |
2403 | + $item = mysql_fetch_assoc ($result4); | |
2404 | + } | |
2405 | + | |
2406 | + $f = 0; | |
2407 | + | |
2408 | + if (isset ($_SESSION['shopcart'])) | |
2409 | + { | |
2410 | + | |
2411 | + foreach ($_SESSION['shopcart'] as $i => $cart) | |
2412 | + { | |
2413 | + | |
2414 | + if ($cart['code'] != '' && $cart['code'] == $key) | |
2415 | + { | |
2416 | + $f = 1; | |
2417 | + $_SESSION['shopcart'][$i]['count'] = $value; | |
2418 | + $_SESSION['shopcart'][$i]['total'] = $value * $_SESSION['shopcart'][$i]['price']; | |
2419 | + if ($_SESSION['shopcart'][$i]['total'] == 0) | |
2420 | + { | |
2421 | + unset ($_SESSION['shopcart'][$i]); | |
2422 | + } | |
2423 | + break; | |
2424 | + } | |
2425 | + } | |
2426 | + } | |
2427 | + } | |
2428 | + | |
2429 | + // ========== ZLODEYEV ============ | |
2430 | + | |
2431 | + $session_basket = array (); | |
2432 | + foreach ($proructs_count as $key => $value) | |
2433 | + { | |
2434 | + for ($i = 0; $i < $value; $i ++) | |
2435 | + { | |
2436 | + $session_basket[] = $key; | |
2437 | + } | |
2438 | + } | |
2235 | 2439 | } |
2236 | 2440 | |
2237 | - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2441 | + function sendOrder ($data) | |
2238 | 2442 | { |
2239 | - $sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id "; | |
2443 | + $mail = new PHPMailer (); | |
2444 | + $mail->CharSet = "windows-1251"; | |
2445 | + $mail->From = (strlen ($data['order_email']) > 0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; | |
2446 | + $mail->FromName = $data['order_name']; | |
2447 | + $mail->AddAddress ("shop@eltrade.com.ua", "shop"); | |
2448 | + $mail->Subject = "Îôîðìèòü çàêàç ñ ÝêñòðèìÑòèëü"; | |
2449 | + $title = Mail::str_rus ("Îôîðìèòü çàêàç"); | |
2450 | + $msg = ""; | |
2451 | + foreach ($data['product_id'] as $key => $value) | |
2452 | + { | |
2453 | + $msg .= "ID: " . $value . " "; | |
2454 | + $msg .= "Íàçâàíèå: <b>" . $data['product_name'][$key] . "</b> "; | |
2455 | + $msg .= "Öåíà çà îäèí: " . $data['product_cine'][$key] . " "; | |
2456 | + $msg .= "Êîëè÷åñòâî: " . $data['product_count'][$key] . " "; | |
2457 | + $msg .= "Çà âåñü òîâàð: " . $data['product_cine_all'][$key] . " "; | |
2458 | + $msg .= "<br>"; | |
2459 | + } | |
2460 | + $msg .= "Îáùàÿ ñóìà: " . $data['cineAll']; | |
2461 | + $msg .= "<br>"; | |
2462 | + /* | |
2463 | + * $msg .= "Ñêèäêà: ".$data['discount']." %"; | |
2464 | + * $msg .= "<br>"; | |
2465 | + */ | |
2466 | + $msg .= "Èòîãî ê îïëàòå: " . $data['cineAll_discount']; | |
2467 | + $msg .= "<br><br><br>"; | |
2468 | + $msg .= "Êîíòàêòíûå äàííûå:"; | |
2469 | + $msg .= "<br>"; | |
2470 | + $msg .= "Èìÿ: " . $data['order_name']; | |
2471 | + $msg .= "<br>"; | |
2472 | + $msg .= "Àäðåñ: " . $data['order_adress']; | |
2473 | + $msg .= "<br>"; | |
2474 | + $msg .= "E-mail: " . $data['order_email']; | |
2475 | + $msg .= "<br>"; | |
2476 | + $msg .= "Êîíòàêòíûé òåëåôîí: " . $data['order_phone']; | |
2477 | + // $msg .= "<br>"; | |
2478 | + // $msg .= "Ìîáèëüíûé òåëåôîí: ".$data['order_phonemob']; | |
2479 | + $msg .= "<br>"; | |
2480 | + $msg .= "Êîììåíòàðèé: " . $data['order_comment']; | |
2481 | + // $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "vapila@vapila.kiev.ua"; | |
2482 | + // Mail::send("borisenko.pavel@gmail.com",$data['order_email'],$title,Mail::str_rus($msg)); | |
2483 | + $mail->MsgHTML ($msg); | |
2484 | + if (! $mail->Send ()) | |
2485 | + { | |
2486 | + echo "There has been a mail error sending to <br>"; | |
2487 | + return false; | |
2488 | + } | |
2489 | + $mail->ClearAddresses (); | |
2490 | + $mail->ClearAttachments (); | |
2491 | + | |
2492 | + $this->sendOrderXML ($data); | |
2240 | 2493 | } |
2241 | 2494 | |
2242 | - $sql .= "where p.id=k.product_id and p.count_modifications>0 "; | |
2243 | - | |
2244 | - if ($filters == null) | |
2245 | - $sql .= " and p.rubric_id='" . $rubric_id . "' "; | |
2246 | - | |
2247 | - if (count ($search)) | |
2248 | - $sql .= "AND " . implode (" AND ", $search) . " "; | |
2249 | - | |
2250 | - $sql .= " GROUP BY k.year_id order by y.name desc"; | |
2251 | - | |
2252 | - // print $sql; | |
2253 | - $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
2254 | - $this->tpl->assign ('years', $row); | |
2255 | -} | |
2256 | - | |
2257 | - function viewYearsAll($rubric_id){ | |
2258 | - $sql = "SELECT * FROM catalogs_years WHERE rubric_id=? ORDER BY id asc "; | |
2259 | - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); | |
2260 | - $this->tpl->assign('years', $row); | |
2261 | - } | |
2262 | - | |
2263 | - function viewSexProduct($id){ | |
2264 | - $sql = "select * from catalogs_keys_products_sex where product_id=?"; | |
2265 | - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); | |
2266 | - $this->tpl->assign('product_sex',$row); | |
2267 | - } | |
2268 | - | |
2269 | - function viewSexProductID($id){ | |
2270 | - $sql = "select sex from catalogs_keys_products_sex where product_id=?"; | |
2271 | - $row = $this->db->getCol($sql,"sex",array($id)); | |
2272 | - $this->tpl->assign('product_sex',$row); | |
2273 | - } | |
2274 | - | |
2275 | -function viewSex ($rubric_id, $filters = null, $lang = 'rus') | |
2276 | -{ | |
2277 | - $search = array (); | |
2278 | - | |
2279 | - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2280 | - $filter = $this->seralizeFilter ($_GET['filter']); | |
2281 | - | |
2282 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2495 | + function sendOrderXML ($data) | |
2283 | 2496 | { |
2284 | - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2497 | + $data['order_phone'] = str_replace ("-", "", $data['order_phone']); | |
2498 | + $data['order_phone'] = str_replace (")", "", $data['order_phone']); | |
2499 | + $data['order_phone'] = str_replace ("(", "", $data['order_phone']); | |
2500 | + $data['order_phone'] = str_replace (" ", "", $data['order_phone']); | |
2501 | + $ffffffff = substr ($data['order_phone'], 0, 3); | |
2502 | + if ($ffffffff != "380") | |
2503 | + $data['order_phone'] = "+38" . $data['order_phone']; | |
2504 | + | |
2505 | + $mail = new PHPMailer (); | |
2506 | + $mail->CharSet = "windows-1251"; | |
2507 | + $mail->From = (strlen ($data['order_email']) > 0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; | |
2508 | + $mail->FromName = $data['order_name']; | |
2509 | + $mail->AddAddress ("extremshop@portal.myoffice.biz.ua", "extremshop"); | |
2510 | + $mail->Subject = "xml çàêàç ñ ÝêñòðèìÑòèëü"; | |
2511 | + $order_email = (strlen ($data['order_email']) > 0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; | |
2512 | + $xml = '<?xml version="1.0" encoding="windows-1251" ?>'; | |
2513 | + $xml .= '<Order orderNum="' . mktime () . '">'; | |
2514 | + foreach ($data['product_id'] as $key => $value) | |
2515 | + { | |
2516 | + $xml .= "<OrderItem ID='" . $data['product_code'][$key] . "'>"; | |
2517 | + $xml .= "<ProductName>" . $data['product_name2'][$key] . "</ProductName>"; | |
2518 | + $xml .= "<Size>" . $data['product_size'][$key] . "</Size>"; | |
2519 | + $xml .= "<Color>" . $data['product_color'][$key] . "</Color>"; | |
2520 | + $xml .= "<Price>" . $data['product_price'][$key] . "</Price>"; | |
2521 | + $xml .= "<Count>" . $data['product_count'][$key] . "</Count>"; | |
2522 | + $xml .= "</OrderItem>"; | |
2523 | + } | |
2524 | + $xml .= '<CustomerInfo>'; | |
2525 | + $xml .= '<Name>' . $data['order_name'] . '</Name>'; | |
2526 | + $xml .= '<Mobile>' . $data['order_phone'] . '</Mobile>'; | |
2527 | + $xml .= '<Email>' . $data['order_email'] . '</Email>'; | |
2528 | + $xml .= '</CustomerInfo>'; | |
2529 | + $xml .= '<DeliveryInfo>'; | |
2530 | + $xml .= '<City>Óêðàèíà</City>'; | |
2531 | + $xml .= '<Address>' . $data['order_adress'] . '</Address>'; | |
2532 | + $xml .= '<DeliveryType>Äîñòàâêà</DeliveryType>'; | |
2533 | + $xml .= '</DeliveryInfo>'; | |
2534 | + $xml .= '<Comment>' . $data['order_comment'] . '</Comment>'; | |
2535 | + $xml .= '</Order>'; | |
2536 | + $tmpfname = tempnam ("tmp", "FOO"); | |
2537 | + $handle = fopen ($tmpfname, "w"); | |
2538 | + fwrite ($handle, $xml); | |
2539 | + $mail->AddAttachment ($tmpfname, 'order.xml'); | |
2540 | + if (! $mail->Send ()) | |
2541 | + { | |
2542 | + echo "There has been a mail error sending to <br>"; | |
2543 | + return false; | |
2544 | + } | |
2545 | + fclose ($handle); | |
2546 | + unlink ($tmpfname); | |
2547 | + $mail->ClearAddresses (); | |
2548 | + $mail->ClearAttachments (); | |
2549 | + // Mail::send("borisenko.pavel@gmail.com",$order_email,"Order",Mail::str_rus($xml)); | |
2550 | + // Mail::send("andrey.belyy@gmail.com",$order_email,"Order",Mail::str_rus($xml)); | |
2285 | 2551 | } |
2286 | - if (isset ($filter['y']) && $filter['y'] > 0) | |
2552 | + | |
2553 | + function saveOrder ($data, $userID = 0) | |
2287 | 2554 | { |
2288 | - $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
2555 | + $table_name = "catalogs_orders"; | |
2556 | + | |
2557 | + if (isset ($data['update_id']) && $data['update_id'] > 0) | |
2558 | + { | |
2559 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
2560 | + $id = $data['update_id']; | |
2561 | + $where = sprintf ("id='%d'", $id); | |
2562 | + } | |
2563 | + else | |
2564 | + { | |
2565 | + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; | |
2566 | + $id = $this->db->nextId ('mySequence_' . $table_name); | |
2567 | + $where = null; | |
2568 | + } | |
2569 | + | |
2570 | + $fields_values = array ( | |
2571 | + 'id' => $id, | |
2572 | + 'user_id' => $userID, | |
2573 | + 'name' => $data['order_name'], | |
2574 | + 'email' => $data['order_email'], | |
2575 | + 'adress' => $data['order_adress'], | |
2576 | + // 'phone' => phone_mobil($data['order_phone']), | |
2577 | + 'phone' => $data['order_phone'], | |
2578 | + 'comment' => $data['order_comment'], | |
2579 | + 'delivery' => $data['delivery'], | |
2580 | + 'total' => $_SESSION['cart']['total'], | |
2581 | + 'status' => '1', | |
2582 | + 'mktime' => mktime () | |
2583 | + ); | |
2584 | + $DB_AUTOQUERY; | |
2585 | + | |
2586 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, $where); | |
2587 | + | |
2588 | + if (isset ($data['product_id'])) | |
2589 | + { | |
2590 | + $i = - 1; | |
2591 | + foreach ($data['product_id'] as $key => $value) | |
2592 | + { | |
2593 | + $i ++; | |
2594 | + $this->db->autoExecute ("catalogs_orders_products", array ( | |
2595 | + 'order_id' => $id, | |
2596 | + 'product_id' => $value, | |
2597 | + 'product_cine_id' => $_SESSION['cart'][$i]['price'], | |
2598 | + 'count' => $data['product_count'][$key] | |
2599 | + ), DB_AUTOQUERY_INSERT); | |
2600 | + } | |
2601 | + } | |
2289 | 2602 | } |
2290 | - if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2603 | + | |
2604 | + function deleteOrder ($id) | |
2291 | 2605 | { |
2292 | - $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
2606 | + $this->db->query ("delete from catalogs_orders where id=?", array ( | |
2607 | + $id | |
2608 | + )); | |
2609 | + $this->db->query ("delete from catalogs_orders_products where order_id=?", array ( | |
2610 | + $id | |
2611 | + )); | |
2293 | 2612 | } |
2294 | - if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2613 | + | |
2614 | + function updateOrder ($data) | |
2295 | 2615 | { |
2296 | - $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
2616 | + $table_name = "catalogs_orders"; | |
2617 | + $fields_values = array ( | |
2618 | + 'name' => $data['order_name'], | |
2619 | + 'email' => $data['order_email'], | |
2620 | + 'adress' => $data['order_adress'], | |
2621 | + 'phone' => $data['order_phone'], | |
2622 | + 'comment' => $data['order_comment'], | |
2623 | + 'mktime' => mktime () | |
2624 | + ); | |
2625 | + if (isset ($data['order_active'])) | |
2626 | + $fields_values['active'] = 1; | |
2627 | + else | |
2628 | + $fields_values['active'] = 0; | |
2629 | + $this->db->autoExecute ($table_name, $fields_values, DB_AUTOQUERY_UPDATE, sprintf ("id='%d'", $data['update_id'])); | |
2297 | 2630 | } |
2298 | - if (isset ($_GET['new']) && $_GET['new'] > 0) | |
2299 | - $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
2300 | - if (isset ($_GET['top']) && $_GET['top'] > 0) | |
2301 | - $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
2302 | - if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
2303 | - $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
2304 | 2631 | |
2305 | - if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2632 | + function updateOrderProducts ($data) | |
2306 | 2633 | { |
2307 | - $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; | |
2634 | + foreach ($data['product_id'] as $key => $value) | |
2635 | + { | |
2636 | + if ($data['product_count'][$value] < 1) | |
2637 | + { | |
2638 | + $this->db->query ("delete from catalogs_orders_products where order_id='{$data['order_id']}' AND product_id='$value'"); | |
2639 | + } | |
2640 | + else | |
2641 | + { | |
2642 | + $this->db->autoExecute ("catalogs_orders_products", array ( | |
2643 | + 'count' => $data['product_count'][$value] | |
2644 | + ), DB_AUTOQUERY_UPDATE, "order_id='{$data['order_id']}' AND product_id='$value'"); | |
2645 | + } | |
2646 | + } | |
2308 | 2647 | } |
2309 | 2648 | |
2310 | - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2311 | - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2312 | - | |
2313 | - $sql = "select s.sex from catalogs_products p LEFT JOIN catalogs_keys_products_sex s ON s.product_id=p.id "; | |
2314 | - | |
2315 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2316 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2317 | - if (isset ($filter['y']) && $filter['y'] > 0) | |
2318 | - $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
2319 | - if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2649 | + function viewOrder ($id) | |
2320 | 2650 | { |
2321 | - $sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=p.id and catalogs_modifications.active=1 "; | |
2651 | + $row = $this->db->getRow ("select * from catalogs_orders where id=?", array ( | |
2652 | + $id | |
2653 | + ), DB_FETCHMODE_ASSOC); | |
2654 | + $this->tpl->assign ('order', $row); | |
2322 | 2655 | } |
2323 | - if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2656 | + | |
2657 | + function viewOrderProducts ($order_id) | |
2324 | 2658 | { |
2325 | - $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 "; | |
2659 | + $res = $this->db->getAll ("select p.*,op.*,pr.name,pr.pic,pr.pic_big from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id Left join catalogs_products pr On pr.id=p.product_id where order_id=?", array ( | |
2660 | + $order_id | |
2661 | + ), DB_FETCHMODE_ASSOC); | |
2662 | + $sum = 0; | |
2663 | + foreach ($res as $key => $row) | |
2664 | + { | |
2665 | + $sum = $sum + ($row['cine'] * $row['count']); | |
2666 | + $res[$key]['cine_all'] = ($row['cine'] * $row['count']); | |
2667 | + } | |
2668 | + $discount = $this->db->getOne ('select catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id where catalogs_orders.id=?', array ( | |
2669 | + $order_id | |
2670 | + )); | |
2671 | + $this->tpl->assign ('cine', array ( | |
2672 | + 'sum' => $sum, | |
2673 | + 'discount' => $discount, | |
2674 | + 'sum_discount' => ($sum - (($sum * $discount) / 100)) | |
2675 | + )); | |
2676 | + $this->tpl->assign ('basket_products', $res); | |
2326 | 2677 | } |
2327 | - if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
2678 | + | |
2679 | + function viewOrders ($params = array()) | |
2328 | 2680 | { |
2329 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2681 | + $search = array (); | |
2682 | + if (isset ($params['userID']) && $params['userID'] > 0) | |
2683 | + $search[] = sprintf ("catalogs_orders.user_id='%d'", $params['userID']); | |
2684 | + $sql = "select catalogs_orders.*,catalogs_users.login as user_login,catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id WHERE 1=1 "; | |
2685 | + if (count ($search)) | |
2686 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
2687 | + $sql .= " order by mktime desc"; | |
2688 | + $pagerOptions = Array ( | |
2689 | + 'mode' => 'Sliding', | |
2690 | + 'delta' => 16, | |
2691 | + 'perPage' => 50, | |
2692 | + 'linkClass' => "link_class", | |
2693 | + 'curPageLinkClassName' => "link_class_active", | |
2694 | + 'spacesBeforeSeparator' => 1, | |
2695 | + 'spacesAfterSeparator' => 1 | |
2696 | + ); | |
2697 | + $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ()); | |
2698 | + foreach ($res['data'] as $key => $value) | |
2699 | + { | |
2700 | + $res['data'][$key]['sum'] = $this->getOrderProductsSum ($value['id']); | |
2701 | + $res['data'][$key]['sum_discount'] = $res['data'][$key]['sum'] - (($res['data'][$key]['sum'] * $value['discount']) / 100); | |
2702 | + } | |
2703 | + $this->tpl->assign ('ordersData', $res); | |
2330 | 2704 | } |
2331 | 2705 | |
2332 | - $sql .= "where p.count_modifications>0 | |
2333 | - and s.sex < 4 | |
2334 | - and p.sex > 0 | |
2335 | - "; | |
2336 | - | |
2337 | - if ($filters == null) | |
2338 | - $sql .= " and p.rubric_id='" . $rubric_id . "' "; | |
2339 | - if (count ($search)) | |
2340 | - $sql .= "AND " . implode (" AND ", $search) . " "; | |
2341 | - | |
2342 | - $sql .= " GROUP BY s.sex"; | |
2343 | - // print $sql; | |
2344 | - $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
2345 | - // print_r($res); | |
2346 | - $sex = array (); | |
2347 | - if ($lang == 'ukr') | |
2348 | - $arr = array ( | |
2349 | - 1 => array ( | |
2350 | - 'name' => "×îëîâ³÷èé", | |
2351 | - 'link' => 'male' | |
2352 | - ), | |
2353 | - 2 => array ( | |
2354 | - 'name' => "Ƴíî÷èé", | |
2355 | - 'link' => 'female' | |
2356 | - ), | |
2357 | - 3 => array ( | |
2358 | - 'name' => "Äèòÿ÷èé", | |
2359 | - 'link' => 'child' | |
2360 | - ) | |
2361 | - ) | |
2362 | - // 4=>array('name'=>"Óí³ñåêñ",'link'=>'unisex') | |
2363 | - ; | |
2364 | - else | |
2365 | - $arr = array ( | |
2366 | - 1 => array ( | |
2367 | - 'name' => "Ìóæñêîé", | |
2368 | - 'link' => 'male' | |
2369 | - ), | |
2370 | - 2 => array ( | |
2371 | - 'name' => "Æåíñêèé", | |
2372 | - 'link' => 'female' | |
2373 | - ), | |
2374 | - 3 => array ( | |
2375 | - 'name' => "Äåòñêèé", | |
2376 | - 'link' => 'child' | |
2377 | - ) | |
2378 | - ) | |
2379 | - // 4=>array('name'=>"Óíèñåêñ",'link'=>'unisex') | |
2380 | - ; | |
2381 | - | |
2382 | - foreach ($res as $row) | |
2706 | + function getOrderProductsSum ($order_id) | |
2383 | 2707 | { |
2384 | - $sex[] = $arr[$row['sex']]; | |
2708 | + $res = $this->db->getAll ("select op.*,p.cine from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id where op.order_id=?", array ( | |
2709 | + $order_id | |
2710 | + ), DB_FETCHMODE_ASSOC); | |
2711 | + // print_r($res); | |
2712 | + $sum = 0; | |
2713 | + foreach ($res as $row) | |
2714 | + { | |
2715 | + $sum = $sum + ($row['cine'] * $row['count']); | |
2716 | + } | |
2717 | + return $sum; | |
2385 | 2718 | } |
2386 | 2719 | |
2387 | - if (isset ($_GET['s'])) | |
2388 | - print_r ($sex); | |
2720 | + function SaveBrend ($data, $upload) | |
2721 | + { | |
2722 | + $table_name = "catalogs_brends"; | |
2723 | + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
2724 | + $fields_values = array ( | |
2725 | + 'rubric_id' => $data['rubric_id'], | |
2726 | + 'name' => $data['brend'], | |
2727 | + 'email' => $data['email'], | |
2728 | + 'text' => $data['text_setka'], | |
2729 | + 'youtube' => $data['youtube'], | |
2730 | + 'seo' => $data['seo_text'], | |
2731 | + 'sort' => $data['sort'], | |
2732 | + 'meta_title' => $data['meta_title'], | |
2733 | + 'meta_description' => $data['meta_description'], | |
2734 | + 'meta_keywords' => $data['meta_keywords'], | |
2735 | + 'active' => $data['active'], | |
2736 | + 'about' => $data['about'], | |
2737 | + 'link' => $data['link'], | |
2738 | + 'teh' => $data['teh'] | |
2739 | + ); | |
2740 | + | |
2741 | + if (isset ($data['delete_video']) && $data['delete_video'] == 1) | |
2742 | + { | |
2743 | + $this->deleteBrendPic ($data['update_id']); | |
2744 | + $fields_values['pic'] = null; | |
2745 | + } | |
2746 | + if ($upload['pic']['tmp_name']) | |
2747 | + { | |
2748 | + if ($data['update_id'] > 0) | |
2749 | + $this->deleteBrendPic ($data['update_id'], array ( | |
2750 | + 'pic' | |
2751 | + )); | |
2752 | + $name_pic = mktime () . "." . substr (strrchr ($_FILES['pic']['name'], "."), 1); | |
2753 | + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/$name_pic"; | |
2754 | + move_uploaded_file ($_FILES["pic"]["tmp_name"], $file_name); | |
2755 | + chmod ($file_name, "0777"); | |
2756 | + $fields_values['pic'] = $name_pic; | |
2757 | + } | |
2758 | + | |
2759 | + if (isset ($data['delete_pic_s']) && $data['delete_pic_s'] == 1) | |
2760 | + { | |
2761 | + $this->deleteBrendPic ($data['update_id'], array ( | |
2762 | + 'pic_s' | |
2763 | + )); | |
2764 | + $fields_values['pic_s'] = null; | |
2765 | + } | |
2766 | + if ($upload['pic_s']['tmp_name']) | |
2767 | + { | |
2768 | + if ($data['update_id'] > 0) | |
2769 | + $this->deleteBrendPic ($data['update_id'], array ( | |
2770 | + 'pic_s' | |
2771 | + )); | |
2772 | + $name_pic = mktime () . "." . substr (strrchr ($_FILES['pic_s']['name'], "."), 1); | |
2773 | + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/$name_pic"; | |
2774 | + move_uploaded_file ($_FILES["pic_s"]["tmp_name"], $file_name); | |
2775 | + chmod ($file_name, "0777"); | |
2776 | + $fields_values['pic_s'] = $name_pic; | |
2777 | + } | |
2778 | + | |
2779 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}"); | |
2780 | + } | |
2389 | 2781 | |
2390 | - $this->tpl->assign ('sex', $sex); | |
2391 | -} | |
2392 | - | |
2393 | - function getYearsName_IDs($ids){ | |
2394 | - //$sql = "select name from catalogs_years where id in (".implode(",",$ids).") order by name"; | |
2395 | - //$row = $this->db->getCol($sql,"name",array()); | |
2396 | - //return implode(", ",$row); | |
2397 | - | |
2398 | - $name = array(); | |
2399 | - foreach($ids as $id){ | |
2400 | - $name[] = $this->db->getOne("select name from catalogs_years where id=$id",array()); | |
2401 | - } | |
2402 | - return implode(", ",$name); | |
2403 | - } | |
2404 | - | |
2405 | - function deleteYearsRubric_id($id){ | |
2406 | - $this->db->query("delete from catalogs_years where rubric_id=?",array($id)); | |
2407 | - $this->delete_keysYearsRubric($id); | |
2408 | - } | |
2409 | - | |
2410 | - function delete_keysYearsRubric($id){ | |
2411 | - $sql = "delete from catalogs_keys_products_years where rubric_id=?"; | |
2412 | - $this->db->query($sql,array($id)); | |
2413 | - } | |
2414 | - | |
2415 | - function deleteYear($id){ | |
2416 | - $this->db->query("delete from catalogs_years where id=?",array($id)); | |
2417 | - $this->delete_keysYearsProduct($id); | |
2418 | - } | |
2419 | - | |
2420 | - function delete_keysYearsProduct($id){ | |
2421 | - $sql = "delete from catalogs_keys_products_years where year_id=?"; | |
2422 | - $this->db->query($sql,array($id)); | |
2423 | - } | |
2424 | - | |
2425 | - function SaveFilters($data){ | |
2426 | - $table_name = "catalogs_filters"; | |
2427 | - foreach($data['filter'] as $key=>$name){ | |
2428 | - if(strlen($name)>0){ | |
2429 | - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";} | |
2430 | - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";} | |
2431 | - $active = (isset($data['active'][$key])) ? 1 : 0; | |
2432 | - $fields = array('name'=>$name,"name_ukr"=>$data['filter_ukr'][$key],'prefix'=>encodestring($name),'rubric_id'=>$data['rubric_id'],"ph1"=>$data['ph1'][$key],"ph1_ukr"=>$data['ph1_ukr'][$key],"sort"=>$data['sort'][$key],"active"=>$active); | |
2433 | - if(isset($data['cat'][$key])){$fields['cat'] = $data['cat'][$key];} | |
2434 | - $this->db->autoExecute($table_name,$fields,$DB_AUTOQUERY,$where); | |
2435 | - } | |
2436 | - } | |
2437 | - } | |
2438 | - | |
2439 | - function viewFilterProduct($id){ | |
2440 | - $sql = "select f.* from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where f.active='0' and k.product_id=?"; | |
2441 | - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); | |
2442 | - $this->tpl->assign('product_filters',$row); | |
2443 | - return $row; | |
2444 | - } | |
2445 | - | |
2446 | - function viewFilterProductID($id){ | |
2447 | - $sql = "select filter_id from catalogs_keys_products_filters where product_id=?"; | |
2448 | - $row = $this->db->getCol($sql,"filter_id",array($id)); | |
2449 | - $this->tpl->assign('product_filters',$row); | |
2450 | - } | |
2451 | - | |
2452 | - function deleteFilter($id){ | |
2453 | - $this->db->query("delete from catalogs_filters where id=?",array($id)); | |
2454 | - $this->delete_keysFilterProduct($id); | |
2455 | - } | |
2456 | - | |
2457 | - function deleteFiltersRubric_id($rubric_id){ | |
2458 | - $this->db->query("delete from catalogs_filters where rubric_id=?",array($rubric_id)); | |
2459 | - $this->delete_keysFilterRubric($rubric_id); | |
2460 | - } | |
2461 | - | |
2462 | - function delete_keysFilterProduct($id){ | |
2463 | - $sql = "delete from catalogs_keys_products_filters where filter_id=?"; | |
2464 | - $this->db->query($sql,array($id)); | |
2465 | - } | |
2466 | - | |
2467 | - function delete_keysFilterRubric($id){ | |
2468 | - $sql = "delete from catalogs_keys_products_filters where rubric_id=?"; | |
2469 | - $this->db->query($sql,array($id)); | |
2470 | - } | |
2471 | - | |
2472 | - function viewFilters($rubric_id,$all = false,$lang = 'ru'){ | |
2473 | - $search = array(); | |
2474 | - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); | |
2475 | - if(isset($filter['g']) && count($filter['g'])>0){ | |
2476 | - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; | |
2477 | - } | |
2478 | - if(isset($filter['y']) && $filter['y']>0){ | |
2479 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
2480 | - } | |
2481 | - | |
2482 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
2483 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
2484 | - } | |
2485 | - | |
2486 | - if(isset($filter['r']) && count($filter['r'])>0){ | |
2487 | - $search[] = "m2.rost in (".implode(",",$filter['r']).")"; | |
2488 | - } | |
2489 | - | |
2490 | - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); | |
2491 | - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); | |
2492 | -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); | |
2493 | - | |
2494 | - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; | |
2495 | - /* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2496 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2497 | - $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2498 | - } */ | |
2499 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2500 | - $sex = $this->seralizeSex($_GET['sex']); | |
2501 | - $search[] = "s.sex IN (" . implode(",",$sex) . ")"; | |
2502 | - } | |
2503 | - $sql = "select f.*,f.name".($lang=='ukr'?'_ukr':'')." as name,f.h1".($lang=='ukr'?'_ukr':'')." as h1 from catalogs_products p, catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id "; | |
2504 | - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=k.product_id "; | |
2505 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id "; | |
2506 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 ";} | |
2507 | - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 ";} | |
2508 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";} | |
2509 | - $sql .= "where p.id=k.product_id and p.count_modifications>0 "; | |
2510 | - //$sql = "select * from catalogs_filters where 1=1 "; | |
2511 | - if($all == false)$sql .= "and f.active='0' "; | |
2512 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
2513 | - $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc"; | |
2514 | - // print $sql; | |
2515 | - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); | |
2516 | - $this->tpl->assign('filters', $row); | |
2517 | - } | |
2518 | - | |
2519 | - function viewFiltersAll($rubric_id){ | |
2520 | - $row = $this->db->getAll("select * from catalogs_filters where rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC); | |
2521 | - $this->tpl->assign('filters', $row); | |
2522 | - } | |
2523 | - | |
2524 | - function getFiltersName_IDs($ids,$lang){ | |
2525 | - //$sql = "select name from catalogs_filters where id in (".implode(",",$ids).")"; | |
2526 | - //$row = $this->db->getCol($sql,"name",array()); | |
2527 | - $name = array(); | |
2528 | - foreach($ids as $id){ | |
2529 | - $row = $this->db->getRow("select h1".($lang=='ukr'?'_ukr':'')." as h1 from catalogs_filters where id=$id",array(),DB_FETCHMODE_ASSOC); | |
2530 | - $name[] = ((strlen($row['h1'])>0) ? $row['h1'] : $row['name']); | |
2531 | - } | |
2532 | - | |
2533 | - return implode(", ",$name); | |
2534 | - } | |
2535 | - | |
2536 | - function getFilters2Name_IDs($ids){ | |
2537 | - //$sql = "select name from catalogs_filters where id in (".implode(",",$ids).")"; | |
2538 | - //$row = $this->db->getCol($sql,"name",array()); | |
2539 | - $name = array(); | |
2540 | - foreach($ids as $id){ | |
2541 | - $row = $this->db->getRow("select h1,name from catalogs_filters2 where id=$id",array(),DB_FETCHMODE_ASSOC); | |
2542 | - $name[] = ((strlen($row['h1'])>0) ? $row['h1'] : $row['name']); | |
2543 | - } | |
2544 | -//print_r($name); | |
2545 | - return implode(", ",$name); | |
2546 | - } | |
2547 | - | |
2548 | - function SaveFilters2($data){ | |
2549 | - $table_name = "catalogs_filters2"; | |
2550 | - foreach($data['filter2'] as $key=>$name){ | |
2551 | - if(strlen($name)>0){ | |
2552 | - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";} | |
2553 | - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";} | |
2554 | - $active = (isset($data['active'][$key])) ? 1 : 0; | |
2555 | - $this->db->autoExecute($table_name,array('name'=>$name,"name_ukr"=>$data['filter_ukr'][$key],'prefix'=>encodestring($name),'rubric_id'=>$data['rubric_id'],"sort"=>$data['sort'][$key],"active"=>$active),$DB_AUTOQUERY,$where); | |
2556 | - } | |
2557 | - } | |
2558 | - } | |
2559 | - | |
2560 | - function viewFilterProductID2($id){ | |
2561 | - $sql = "select filter_id from catalogs_keys_products_filters2 where product_id=?"; | |
2562 | - $row = $this->db->getCol($sql,"filter_id",array($id)); | |
2563 | - $this->tpl->assign('product_filters2',$row); | |
2564 | - } | |
2565 | - | |
2566 | - function deleteFilter2($id){ | |
2567 | - $this->db->query("delete from catalogs_filters2 where id=?",array($id)); | |
2568 | - $this->delete_keysFilterProduct2($id); | |
2569 | - } | |
2570 | - | |
2571 | - function delete_keysFilterProduct2($id){ | |
2572 | - $sql = "delete from catalogs_keys_products_filters2 where filter_id=?"; | |
2573 | - $this->db->query($sql,array($id)); | |
2574 | - } | |
2575 | - | |
2576 | - function deleteFiltersRubric_id2($rubric_id){ | |
2577 | - $this->db->query("delete from catalogs_filters2 where rubric_id=?",array($rubric_id)); | |
2578 | - $this->delete_keysFilterRubric2($rubric_id); | |
2579 | - } | |
2580 | - | |
2581 | - function delete_keysFilterRubric2($id){ | |
2582 | - $sql = "delete from catalogs_keys_products_filters2 where rubric_id=?"; | |
2583 | - $this->db->query($sql,array($id)); | |
2584 | - } | |
2585 | - | |
2586 | - function viewFilters2($rubric_id,$lang='ru'){ | |
2587 | - $search = array(); | |
2588 | - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); | |
2589 | - if(isset($filter['f']) && count($filter['f'])>0){ | |
2590 | - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; | |
2591 | - } | |
2592 | - if(isset($filter['y']) && $filter['y']>0){ | |
2593 | - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; | |
2594 | - } | |
2595 | - | |
2596 | - if(isset($filter['s']) && count($filter['s'])>0){ | |
2597 | - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; | |
2598 | - } | |
2599 | - | |
2600 | - if(isset($filter['r']) && count($filter['r'])>0){ | |
2601 | - $search[] = "m2.rost in (".implode(",",$filter['r']).")"; | |
2602 | - } | |
2603 | - | |
2604 | - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); | |
2605 | - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); | |
2606 | -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); | |
2607 | - | |
2608 | - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; | |
2609 | - /* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2610 | - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2611 | - $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2612 | - } */ | |
2613 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2614 | - $sex = $this->seralizeSex($_GET['sex']); | |
2615 | - $search[] = "s.sex IN (" . implode(",",$sex) . ")"; | |
2616 | - } | |
2617 | - $sql = "select f.*,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_products p, catalogs_keys_products_filters2 k LEFT JOIN catalogs_filters2 f ON f.id=k.filter_id "; | |
2618 | - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; | |
2619 | - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id "; | |
2620 | - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 ";} | |
2621 | - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 ";} | |
2622 | - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";} | |
2623 | - $sql .= "where p.id=k.product_id and p.count_modifications>0 "; | |
2624 | - //$sql = "select * from catalogs_filters where 1=1 "; | |
2625 | - if($all == false)$sql .= "and f.active='0' "; | |
2626 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
2627 | - $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc"; | |
2628 | - //print $sql; | |
2629 | - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); | |
2630 | - | |
2631 | - // $row = $this->db->getAll("select *,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_filters2 f where f.active='0' and f.rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC); | |
2632 | - $this->tpl->assign('filters2', $row); | |
2633 | - } | |
2634 | - | |
2635 | - function getFiltersMod_IDs($ids){ | |
2636 | - $name = array(); | |
2637 | - foreach($ids as $id){ | |
2638 | - $name[] = $this->db->getOne("select size from catalogs_modifications where size=$id",array()); | |
2639 | - } | |
2640 | - return implode(", ",$name); | |
2641 | - } | |
2642 | - | |
2643 | - function viewFiltersMod ($rubric_id) | |
2644 | -{ | |
2645 | - $search = array (); | |
2782 | + function deleteBrendPic ($id, $pics = array('pic','pic_s')) | |
2783 | + { | |
2784 | + $sql = "select " . implode (',', $pics) . " from catalogs_brends where id=?"; | |
2785 | + $row = $this->db->getRow ($sql, array ( | |
2786 | + $id | |
2787 | + ), DB_FETCHMODE_ASSOC); | |
2788 | + if (isset ($row['pic'])) | |
2789 | + { | |
2790 | + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/{$row['pic']}"; | |
2791 | + @unlink ($file_name); | |
2792 | + } | |
2793 | + if (isset ($row['pic_s'])) | |
2794 | + { | |
2795 | + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/{$row['pic_s']}"; | |
2796 | + @unlink ($file_name); | |
2797 | + } | |
2798 | + } | |
2646 | 2799 | |
2647 | - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2648 | - $filter = $this->seralizeFilter ($_GET['filter']); | |
2800 | + function viewBrends ($type = false) | |
2801 | + { | |
2802 | + $sql = "select b.*,r.name as rubric from catalogs_brends b left join catalogs_rubrics r On r.id=b.rubric_id "; | |
2803 | + if ($type != false) | |
2804 | + $sql .= "where b.type='$type'"; | |
2805 | + $sql .= " Order by b.name Asc"; | |
2806 | + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
2807 | + $this->tpl->assign ('brends', $row); | |
2808 | + } | |
2649 | 2809 | |
2650 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2810 | + function viewBrendsGroup ($params = array()) | |
2651 | 2811 | { |
2652 | - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2812 | + $search = array (); | |
2813 | + if (isset ($params['filter']) && count ($params['filter']) > 0) | |
2814 | + $filter = $this->seralizeFilter ($params['filter']); | |
2815 | + | |
2816 | + if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f'])) | |
2817 | + { | |
2818 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")"; | |
2819 | + } | |
2820 | + | |
2821 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
2822 | + { | |
2823 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
2824 | + } | |
2825 | + | |
2826 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2827 | + { | |
2828 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
2829 | + } | |
2830 | + | |
2831 | + if (isset ($filter['g']) && count ($filter['g']) > 0) | |
2832 | + { | |
2833 | + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")"; | |
2834 | + } | |
2835 | + | |
2836 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
2837 | + { | |
2838 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
2839 | + } | |
2840 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2841 | + { | |
2842 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
2843 | + } | |
2844 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
2845 | + $search[] = sprintf ("catalogs_products.active='%d'", $_GET['new']); | |
2846 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
2847 | + $search[] = sprintf ("catalogs_products.top='%d'", $_GET['top']); | |
2848 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
2849 | + $search[] = sprintf ("catalogs_products.akcii_id>'%d'", 0); | |
2850 | + /* | |
2851 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2852 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2853 | + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]); | |
2854 | + * } | |
2855 | + */ | |
2856 | + | |
2857 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2858 | + { | |
2859 | + $sex = $this->seralizeSex ($_GET['sex']); | |
2860 | + $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
2861 | + } | |
2862 | + | |
2863 | + // ==== catalogs_products ==== | |
2864 | + | |
2865 | + $sql[] = " | |
2866 | + SELECT * | |
2867 | + FROM catalogs_products | |
2868 | + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id | |
2869 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
2870 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id | |
2871 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id | |
2872 | + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id | |
2873 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 | |
2874 | + LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 | |
2875 | + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id | |
2876 | + WHERE catalogs_products.count_modifications > 0 | |
2877 | + AND catalogs_brends.id > 0 | |
2878 | + "; | |
2879 | + | |
2880 | + if (count ($search)) | |
2881 | + { | |
2882 | + $sql[] = "AND " . implode (" AND ", $search) . " "; | |
2883 | + } | |
2884 | + | |
2885 | + if (isset ($params['rubID']) && ! isset ($params['filter_products'])) | |
2886 | + { | |
2887 | + $rubric_id = $params['rubID']; // $this->getRubricParent($params['rubID']); | |
2888 | + $rubric_id = ($rubric_id == 0) ? $params['rubID'] : $rubric_id; | |
2889 | + $sql[] = "and catalogs_products.rubric_id='" . $rubric_id . "'"; | |
2890 | + } | |
2891 | + | |
2892 | + $sql[] = " Group by catalogs_brends.name Order by catalogs_brends.name Asc"; | |
2893 | + | |
2894 | + if (count ($sql) > 4) | |
2895 | + { | |
2896 | + $row = $this->db->getAll (implode (' ', $sql), array (), DB_FETCHMODE_ASSOC); | |
2897 | + } | |
2898 | + else | |
2899 | + { | |
2900 | + // çíà÷èò ñòðàíèöà | |
2901 | + $row = array (); | |
2902 | + } | |
2903 | + $this->tpl->assign ('brends', $row); | |
2653 | 2904 | } |
2654 | - | |
2655 | - if (isset ($filter['y']) && $filter['y'] > 0) | |
2905 | + | |
2906 | + // ===== | |
2907 | + | |
2908 | + function viewBrendsActive () | |
2656 | 2909 | { |
2657 | - $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
2910 | + $sql = "select * from catalogs_brends where active=1 "; | |
2911 | + $sql .= " Order by name Asc"; | |
2912 | + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
2913 | + $this->tpl->assign ('brends_a', $row); | |
2658 | 2914 | } |
2659 | - | |
2660 | - if (isset ($filter['r']) && count ($filter['r']) > 0) | |
2915 | + | |
2916 | + function SaveCity ($data) | |
2661 | 2917 | { |
2662 | - $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
2918 | + $table_name = "catalogs_cities"; | |
2919 | + $DB_AUTOQUERY = (isset ($data['update_id']) && $data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; | |
2920 | + $fields_values = array ( | |
2921 | + 'name' => $data['name'] | |
2922 | + ); | |
2923 | + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}"); | |
2924 | + return mysql_insert_id (); | |
2663 | 2925 | } |
2664 | 2926 | |
2665 | - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2666 | - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2667 | - /* | |
2668 | - * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2669 | - * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2670 | - * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2671 | - * } | |
2672 | - */ | |
2673 | - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
2927 | + function is_city ($name) | |
2674 | 2928 | { |
2675 | - $sex = $this->seralizeSex ($_GET['sex']); | |
2676 | - $search[] = "p.sex IN (" . implode (",", $sex) . ")"; | |
2929 | + return $this->db->getOne ('select id from catalogs_cities where name=?', array ( | |
2930 | + $name | |
2931 | + )); | |
2677 | 2932 | } |
2678 | 2933 | |
2679 | - if (isset ($_GET['new']) && $_GET['new'] > 0) | |
2680 | - $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
2934 | + function viewCityMod ($code) | |
2935 | + { | |
2936 | + $sql = "select c.name from catalogs_keys_products_cities k left join catalogs_cities c on c.id=k.city_id where k.mod_code=? and k.count>0"; | |
2937 | + $row = $this->db->getCol ($sql, "name", array ( | |
2938 | + $code | |
2939 | + )); | |
2940 | + if (! count ($row)) | |
2941 | + return ""; | |
2942 | + if (count ($row) == 1 && trim ($row[0]) == '') | |
2943 | + { | |
2944 | + return ""; | |
2945 | + } | |
2946 | + | |
2947 | + foreach ($row as $key => $value) | |
2948 | + { | |
2949 | + if ($value == "Èíòåðíåò ìàãàçèí" or $value == "Êèåâ(Îëèìïèéñêèé)" or $value == "Ëüâîâ" or trim ($value) == "") | |
2950 | + unset ($row[$key]); | |
2951 | + } | |
2952 | + $row2 = array (); | |
2953 | + foreach ($row as $key => $value) | |
2954 | + if (trim ($value) != '') | |
2955 | + $row2[] = $value; | |
2956 | + $row = $row2; | |
2957 | + | |
2958 | + $l = array (); | |
2959 | + for ($i = 0; $i < count ($row); $i ++) | |
2960 | + { | |
2961 | + $key = 0; | |
2962 | + for ($i2 = 0; $i2 < count ($l); $i2 ++) | |
2963 | + if ($l[$i2] == $row[$i]) | |
2964 | + $key = 1; | |
2965 | + if ($key == 0) | |
2966 | + $l[] = $row[$i]; | |
2967 | + } | |
2968 | + if (trim ($_REQUEST['test2']) != '1') | |
2969 | + { | |
2970 | + return implode (', ', $l); | |
2971 | + } | |
2972 | + return implode (', ', $row); | |
2973 | + } | |
2681 | 2974 | |
2682 | - if (isset ($_GET['top']) && $_GET['top'] > 0) | |
2683 | - $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
2975 | + function viewCitiesProductID ($id) | |
2976 | + { | |
2977 | + $sql = "select city_id from catalogs_keys_products_cities where product_id=?"; | |
2978 | + $row = $this->db->getCol ($sql, "city_id", array ( | |
2979 | + $id | |
2980 | + )); | |
2981 | + $this->tpl->assign ('product_cities', $row); | |
2982 | + } | |
2684 | 2983 | |
2685 | - if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
2686 | - $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
2984 | + function viewCities ($type = false) | |
2985 | + { | |
2986 | + $sql = "select * from catalogs_cities "; | |
2987 | + $sql .= " Order by name Asc"; | |
2988 | + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
2989 | + $this->tpl->assign ('cities', $row); | |
2990 | + } | |
2687 | 2991 | |
2688 | - $sql = "select m.* from catalogs_modifications m,catalogs_products p "; | |
2689 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2690 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
2992 | + function viewCitiesProduct ($id) | |
2993 | + { | |
2994 | + $sql = "select catalogs_cities.* from catalogs_keys_products_cities left join catalogs_cities on catalogs_cities.id=catalogs_keys_products_cities.city_id Where catalogs_keys_products_cities.product_id=?"; | |
2995 | + $row = $this->db->getAll ($sql, array ( | |
2996 | + $id | |
2997 | + ), DB_FETCHMODE_ASSOC); | |
2998 | + $this->tpl->assign ('cities', $row); | |
2999 | + } | |
2691 | 3000 | |
2692 | - if (isset ($filter['y']) && $filter['y'] > 0) | |
2693 | - $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
3001 | + function viewCity ($id) | |
3002 | + { | |
3003 | + $row = $this->db->getRow ("select * from catalogs_cities where id=?", array ( | |
3004 | + $id | |
3005 | + ), DB_FETCHMODE_ASSOC); | |
3006 | + $this->tpl->assign ('city', $row); | |
3007 | + } | |
2694 | 3008 | |
2695 | - if (isset ($filter['r']) && count ($filter['r']) > 0) | |
3009 | + function deleteCity ($id) | |
2696 | 3010 | { |
2697 | - $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 "; | |
3011 | + $this->db->query ("delete from catalogs_cities where id=?", array ( | |
3012 | + $id | |
3013 | + )); | |
3014 | + $this->delete_keysCitiesProduct ($id); | |
2698 | 3015 | } |
2699 | 3016 | |
2700 | - $sql .= "where m.size<>'' "; | |
3017 | + function delete_keysCitiesProduct ($id) | |
3018 | + { | |
3019 | + $sql = "delete from catalogs_keys_products_cities where city_id=?"; | |
3020 | + $this->db->query ($sql, array ( | |
3021 | + $id | |
3022 | + )); | |
3023 | + } | |
2701 | 3024 | |
2702 | - if (count ($search)) | |
2703 | - $sql .= "AND " . implode (" AND ", $search) . " "; | |
3025 | + function SaveYears ($data) | |
3026 | + { | |
3027 | + $table_name = "catalogs_years"; | |
3028 | + foreach ($data['filter'] as $key => $name) | |
3029 | + { | |
3030 | + if (strlen ($name) > 0) | |
3031 | + { | |
3032 | + if (isset ($data['update_id'][$key]) && $data['update_id'][$key] > 0) | |
3033 | + { | |
3034 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
3035 | + $where = "id='{$data['update_id'][$key]}'"; | |
3036 | + } | |
3037 | + else | |
3038 | + { | |
3039 | + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; | |
3040 | + $where = ""; | |
3041 | + } | |
3042 | + $this->db->autoExecute ($table_name, array ( | |
3043 | + 'name' => $name, | |
3044 | + 'rubric_id' => $data['rubric_id'] | |
3045 | + ), $DB_AUTOQUERY, $where); | |
3046 | + } | |
3047 | + } | |
3048 | + } | |
2704 | 3049 | |
2705 | - $sql .= " | |
2706 | - and m.product_id=p.id | |
2707 | - and m.active=1 | |
2708 | - and p.rubric_id=? | |
2709 | - and p.count_modifications>0 | |
2710 | - and m.size > 0 | |
2711 | - GROUP BY m.size"; | |
2712 | - $row = $this->db->getAll ($sql, array ( | |
2713 | - $rubric_id | |
2714 | - ), DB_FETCHMODE_ASSOC); | |
3050 | + function viewYearsProduct ($id) | |
3051 | + { | |
3052 | + $sql = "select y.* from catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id where k.product_id=?"; | |
3053 | + $row = $this->db->getAll ($sql, array ( | |
3054 | + $id | |
3055 | + ), DB_FETCHMODE_ASSOC); | |
3056 | + $this->tpl->assign ('product_years', $row); | |
3057 | + } | |
2715 | 3058 | |
2716 | - if ($_GET['t'] == 1) | |
3059 | + function viewYearsProductID ($id) | |
2717 | 3060 | { |
2718 | - print "<pre>"; | |
2719 | - print_r ($row); | |
2720 | - print "</pre>"; | |
3061 | + $sql = "select year_id from catalogs_keys_products_years where product_id=?"; | |
3062 | + $row = $this->db->getCol ($sql, "year_id", array ( | |
3063 | + $id | |
3064 | + )); | |
3065 | + $this->tpl->assign ('product_years', $row); | |
2721 | 3066 | } |
2722 | - | |
2723 | - $this->tpl->assign ('size', $row); | |
2724 | -} | |
2725 | - | |
2726 | -function viewFiltersRost ($rubric_id) | |
2727 | -{ | |
2728 | - $search = array (); | |
2729 | 3067 | |
2730 | - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
2731 | - $filter = $this->seralizeFilter ($_GET['filter']); | |
3068 | + function viewYears ($rubric_id, $filters = null) | |
3069 | + { | |
3070 | + $search = array (); | |
3071 | + | |
3072 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
3073 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
3074 | + | |
3075 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
3076 | + { | |
3077 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
3078 | + } | |
3079 | + | |
3080 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
3081 | + { | |
3082 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
3083 | + } | |
3084 | + | |
3085 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
3086 | + { | |
3087 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
3088 | + } | |
3089 | + | |
3090 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
3091 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
3092 | + | |
3093 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
3094 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
3095 | + | |
3096 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
3097 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
3098 | + | |
3099 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
3100 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
3101 | + | |
3102 | + /** | |
3103 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
3104 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
3105 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
3106 | + * } | |
3107 | + */ | |
3108 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
3109 | + { | |
3110 | + $sex = $this->seralizeSex ($_GET['sex']); | |
3111 | + $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
3112 | + } | |
3113 | + | |
3114 | + if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
3115 | + { | |
3116 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; | |
3117 | + } | |
3118 | + | |
3119 | + $sql = " | |
3120 | + SELECT y.* | |
3121 | + FROM catalogs_products p, catalogs_keys_products_years k | |
3122 | + LEFT JOIN catalogs_years y ON y.id=k.year_id | |
3123 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id | |
3124 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 | |
3125 | + LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 | |
3126 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id | |
3127 | + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id | |
3128 | + WHERE p.id=k.product_id | |
3129 | + AND p.count_modifications>0 | |
3130 | + "; | |
3131 | + | |
3132 | + if ($filters == null) | |
3133 | + $sql .= " and p.rubric_id='" . $rubric_id . "' "; | |
3134 | + | |
3135 | + if (count ($search)) | |
3136 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
3137 | + | |
3138 | + $sql .= " GROUP BY k.year_id order by y.name desc"; | |
3139 | + | |
3140 | + // print $sql; | |
3141 | + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
3142 | + $this->tpl->assign ('years', $row); | |
3143 | + } | |
2732 | 3144 | |
2733 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
3145 | + function viewYearsAll ($rubric_id) | |
2734 | 3146 | { |
2735 | - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
3147 | + $sql = "SELECT * FROM catalogs_years WHERE rubric_id=? ORDER BY id asc "; | |
3148 | + $row = $this->db->getAll ($sql, array ( | |
3149 | + $rubric_id | |
3150 | + ), DB_FETCHMODE_ASSOC); | |
3151 | + $this->tpl->assign ('years', $row); | |
2736 | 3152 | } |
2737 | 3153 | |
2738 | - if (isset ($filter['y']) && $filter['y'] > 0) | |
3154 | + function viewSexProduct ($id) | |
2739 | 3155 | { |
2740 | - $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
3156 | + $sql = "select * from catalogs_keys_products_sex where product_id=?"; | |
3157 | + $row = $this->db->getAll ($sql, array ( | |
3158 | + $id | |
3159 | + ), DB_FETCHMODE_ASSOC); | |
3160 | + $this->tpl->assign ('product_sex', $row); | |
2741 | 3161 | } |
2742 | 3162 | |
2743 | - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
2744 | - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
2745 | - /* | |
2746 | - * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
2747 | - * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
2748 | - * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
2749 | - * } | |
2750 | - */ | |
2751 | - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
3163 | + function viewSexProductID ($id) | |
2752 | 3164 | { |
2753 | - $sex = $this->seralizeSex ($_GET['sex']); | |
2754 | - $search[] = "p.sex IN (" . implode (",", $sex) . ")"; | |
3165 | + $sql = "select sex from catalogs_keys_products_sex where product_id=?"; | |
3166 | + $row = $this->db->getCol ($sql, "sex", array ( | |
3167 | + $id | |
3168 | + )); | |
3169 | + $this->tpl->assign ('product_sex', $row); | |
2755 | 3170 | } |
2756 | 3171 | |
2757 | - $sql = "select m.* from catalogs_modifications m, catalogs_products p "; | |
3172 | + function viewSex ($rubric_id, $filters = null, $lang = 'rus') | |
3173 | + { | |
3174 | + $search = array (); | |
3175 | + | |
3176 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
3177 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
3178 | + | |
3179 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
3180 | + { | |
3181 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
3182 | + } | |
3183 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
3184 | + { | |
3185 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
3186 | + } | |
3187 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
3188 | + { | |
3189 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
3190 | + } | |
3191 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
3192 | + { | |
3193 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
3194 | + } | |
3195 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
3196 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
3197 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
3198 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
3199 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
3200 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
3201 | + | |
3202 | + if (strlen ($filters) > 0 && ! isset ($filter['f'])) | |
3203 | + { | |
3204 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; | |
3205 | + } | |
3206 | + | |
3207 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
3208 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
3209 | + | |
3210 | + $sql = " | |
3211 | + SELECT s.sex | |
3212 | + FROM catalogs_products p | |
3213 | + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=p.id | |
3214 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id | |
3215 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id | |
3216 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=p.id and catalogs_modifications.active=1 | |
3217 | + LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 | |
3218 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id | |
3219 | + WHERE p.count_modifications>0 | |
3220 | + AND s.sex < 4 | |
3221 | + AND p.sex > 0 | |
3222 | + "; | |
3223 | + | |
3224 | + if ($filters == null) | |
3225 | + $sql .= " and p.rubric_id='" . $rubric_id . "' "; | |
3226 | + if (count ($search)) | |
3227 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
3228 | + | |
3229 | + $sql .= " GROUP BY s.sex"; | |
3230 | + // print $sql; | |
3231 | + $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
3232 | + // print_r($res); | |
3233 | + $sex = array (); | |
3234 | + if ($lang == 'ukr') | |
3235 | + $arr = array ( | |
3236 | + 1 => array ( | |
3237 | + 'name' => "×îëîâ³÷èé", | |
3238 | + 'link' => 'male' | |
3239 | + ), | |
3240 | + 2 => array ( | |
3241 | + 'name' => "Ƴíî÷èé", | |
3242 | + 'link' => 'female' | |
3243 | + ), | |
3244 | + 3 => array ( | |
3245 | + 'name' => "Äèòÿ÷èé", | |
3246 | + 'link' => 'child' | |
3247 | + ) | |
3248 | + ); | |
3249 | + // 4=>array('name'=>"Óí³ñåêñ",'link'=>'unisex') | |
3250 | + | |
3251 | + else | |
3252 | + $arr = array ( | |
3253 | + 1 => array ( | |
3254 | + 'name' => "Ìóæñêîé", | |
3255 | + 'link' => 'male' | |
3256 | + ), | |
3257 | + 2 => array ( | |
3258 | + 'name' => "Æåíñêèé", | |
3259 | + 'link' => 'female' | |
3260 | + ), | |
3261 | + 3 => array ( | |
3262 | + 'name' => "Äåòñêèé", | |
3263 | + 'link' => 'child' | |
3264 | + ) | |
3265 | + ); | |
3266 | + // 4=>array('name'=>"Óíèñåêñ",'link'=>'unisex') | |
3267 | + | |
3268 | + | |
3269 | + foreach ($res as $row) | |
3270 | + { | |
3271 | + $sex[] = $arr[$row['sex']]; | |
3272 | + } | |
3273 | + | |
3274 | + if (isset ($_GET['s'])) | |
3275 | + print_r ($sex); | |
3276 | + | |
3277 | + $this->tpl->assign ('sex', $sex); | |
3278 | + } | |
2758 | 3279 | |
2759 | - if (isset ($filter['f']) && count ($filter['f']) > 0) | |
2760 | - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; | |
3280 | + function getYearsName_IDs ($ids) | |
3281 | + { | |
3282 | + // $sql = "select name from catalogs_years where id in (".implode(",",$ids).") order by name"; | |
3283 | + // $row = $this->db->getCol($sql,"name",array()); | |
3284 | + // return implode(", ",$row); | |
3285 | + $name = array (); | |
3286 | + foreach ($ids as $id) | |
3287 | + { | |
3288 | + $name[] = $this->db->getOne ("select name from catalogs_years where id=$id", array ()); | |
3289 | + } | |
3290 | + return implode (", ", $name); | |
3291 | + } | |
2761 | 3292 | |
2762 | - if (isset ($filter['y']) && $filter['y'] > 0) | |
2763 | - $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; | |
3293 | + function deleteYearsRubric_id ($id) | |
3294 | + { | |
3295 | + $this->db->query ("delete from catalogs_years where rubric_id=?", array ( | |
3296 | + $id | |
3297 | + )); | |
3298 | + $this->delete_keysYearsRubric ($id); | |
3299 | + } | |
2764 | 3300 | |
2765 | - $sql .= "where m.rost<>'' "; | |
3301 | + function delete_keysYearsRubric ($id) | |
3302 | + { | |
3303 | + $sql = "delete from catalogs_keys_products_years where rubric_id=?"; | |
3304 | + $this->db->query ($sql, array ( | |
3305 | + $id | |
3306 | + )); | |
3307 | + } | |
2766 | 3308 | |
2767 | - if (count ($search)) | |
3309 | + function deleteYear ($id) | |
2768 | 3310 | { |
2769 | - $sql .= "AND " . implode (" AND ", $search) . " "; | |
3311 | + $this->db->query ("delete from catalogs_years where id=?", array ( | |
3312 | + $id | |
3313 | + )); | |
3314 | + $this->delete_keysYearsProduct ($id); | |
2770 | 3315 | } |
2771 | 3316 | |
2772 | - $sql .= " | |
2773 | - and m.product_id=p.id | |
2774 | - and m.active=1 | |
2775 | - and p.rubric_id=? | |
2776 | - and p.count_modifications>0 | |
2777 | - GROUP BY m.rost"; | |
2778 | - $row = $this->db->getAll ($sql, array ( | |
2779 | - $rubric_id | |
2780 | - ), DB_FETCHMODE_ASSOC); | |
3317 | + function delete_keysYearsProduct ($id) | |
3318 | + { | |
3319 | + $sql = "delete from catalogs_keys_products_years where year_id=?"; | |
3320 | + $this->db->query ($sql, array ( | |
3321 | + $id | |
3322 | + )); | |
3323 | + } | |
2781 | 3324 | |
2782 | - if ($_GET['t'] == 1) | |
3325 | + function SaveFilters ($data) | |
2783 | 3326 | { |
2784 | - print "<pre>"; | |
2785 | - print_r ($row); | |
2786 | - print "</pre>"; | |
3327 | + $table_name = "catalogs_filters"; | |
3328 | + foreach ($data['filter'] as $key => $name) | |
3329 | + { | |
3330 | + if (strlen ($name) > 0) | |
3331 | + { | |
3332 | + if (isset ($data['update_id'][$key]) && $data['update_id'][$key] > 0) | |
3333 | + { | |
3334 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
3335 | + $where = "id='{$data['update_id'][$key]}'"; | |
3336 | + } | |
3337 | + else | |
3338 | + { | |
3339 | + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; | |
3340 | + $where = ""; | |
3341 | + } | |
3342 | + $active = (isset ($data['active'][$key])) ? 1 : 0; | |
3343 | + $fields = array ( | |
3344 | + 'name' => $name, | |
3345 | + "name_ukr" => $data['filter_ukr'][$key], | |
3346 | + 'prefix' => encodestring ($name), | |
3347 | + 'rubric_id' => $data['rubric_id'], | |
3348 | + "ph1" => $data['ph1'][$key], | |
3349 | + "ph1_ukr" => $data['ph1_ukr'][$key], | |
3350 | + "sort" => $data['sort'][$key], | |
3351 | + "active" => $active | |
3352 | + ); | |
3353 | + if (isset ($data['cat'][$key])) | |
3354 | + { | |
3355 | + $fields['cat'] = $data['cat'][$key]; | |
3356 | + } | |
3357 | + $this->db->autoExecute ($table_name, $fields, $DB_AUTOQUERY, $where); | |
3358 | + } | |
3359 | + } | |
2787 | 3360 | } |
2788 | 3361 | |
2789 | - $this->tpl->assign ('rost', $row); | |
2790 | -} | |
2791 | - | |
2792 | - function viewRostProduct($id){ | |
2793 | - $sql = "select m.* from catalogs_modifications m where m.product_id=? GROUP BY m.rost"; | |
2794 | - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); | |
2795 | - $this->tpl->assign('product_rost',$row); | |
2796 | - } | |
2797 | - | |
2798 | - function viewFiltersInProducts($filter_products,$lang='ru'){ | |
2799 | - $search = array(); | |
2800 | - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); | |
2801 | - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); | |
2802 | - if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); | |
2803 | - | |
2804 | - $sql ="select f.*,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_products p, catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where p.id=k.product_id AND f.id IN (".$filter_products.") and f.active='0' "; | |
2805 | - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; | |
2806 | - $sql .= 'GROUP BY k.filter_id order by f.sort'; | |
2807 | - //print $sql; | |
2808 | - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
2809 | - $this->tpl->assign('filters', $row); | |
2810 | - } | |
2811 | - | |
2812 | - function viewBrend($id){ | |
2813 | - $row = $this->db->getRow("select * from catalogs_brends where id=?",array($id),DB_FETCHMODE_ASSOC); | |
2814 | - $this->tpl->assign('brend', $row); | |
2815 | - } | |
2816 | - | |
2817 | - function viewBrendName($name){ | |
2818 | - $name = iconv("utf-8", "windows-1251", $name); | |
2819 | - $sql = "select * from catalogs_brends where name=? limit 1"; | |
2820 | - $row = $this->db->getRow($sql,array($name),DB_FETCHMODE_ASSOC); | |
2821 | - $this->tpl->assign('brend_seo', $row); | |
2822 | - return $row; | |
2823 | - } | |
2824 | - | |
2825 | - function getBrendIDs_name($name){ | |
2826 | - $n = array(); | |
2827 | - $name_arr = explode(";",$name); | |
2828 | - foreach($name_arr as $row){ | |
2829 | - $n[] = "'".$row."'"; | |
2830 | - } | |
2831 | - //$name = iconv("utf-8", "windows-1251", $name); | |
2832 | - $sql = "select id from catalogs_brends where name in (" . implode(",",$n) . ")"; | |
2833 | - //print $sql; | |
2834 | - return $this->db->getCol($sql,"id",array()); | |
2835 | - } | |
2836 | - | |
2837 | - function viewBrendRubrics($name,$lang = 'ru'){ | |
2838 | - $name = iconv("utf-8", "windows-1251", $name); | |
2839 | - $sql = "select r.name".(($lang=='ukr')?'_ukr':'')." as name,r.parent_id,r.translit,count(p.id) as c from catalogs_brends b | |
2840 | - Left Join catalogs_rubrics r On r.id=b.rubric_id | |
2841 | - Left Join catalogs_products p On p.brend_id=b.id AND p.count_modifications>0 | |
2842 | - where b.name=? and r.name<>'' Group by p.brend_id"; | |
2843 | - $res = $this->db->getAll($sql,array($name),DB_FETCHMODE_ASSOC); | |
2844 | - $rubrics = array(); | |
2845 | - foreach($res as $row){ | |
2846 | - if($row['c']>0){ | |
2847 | - $rubrics[$this->getRubricName($row['parent_id'],$lang)][] = $row; | |
2848 | - } | |
2849 | - } | |
2850 | - // print"<pre>"; | |
2851 | - // print_r($rubrics); | |
2852 | - // print"</pre>"; | |
2853 | - $this->tpl->assign('brend_rubrics',$rubrics); | |
2854 | - } | |
2855 | - | |
2856 | - function deleteBrend($id){ | |
2857 | - $this->db->query("delete from catalogs_brends where id=?",array($id)); | |
2858 | - } | |
2859 | - | |
2860 | - function viewAkciiProductID($id){ | |
2861 | - $sql = "select rubric_id from catalogs_keys_products_akcii where product_id=?"; | |
2862 | - $row = $this->db->getCol($sql,"rubric_id",array($id)); | |
2863 | - $this->tpl->assign('product_akcii',$row); | |
2864 | - } | |
2865 | - | |
2866 | - function import_saveRubric($name,$parent_id){ | |
2867 | - $id = $this->db->getOne("select id from catalogs_rubrics where name=? and parent_id=?",array($name,$parent_id)); | |
2868 | - if( !$id ){ | |
2869 | - $this->db->autoExecute("catalogs_rubrics",array('name'=>$name,'translit'=>translit($name),'parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1)),DB_AUTOQUERY_INSERT); | |
2870 | - return mysql_insert_id(); | |
2871 | - } | |
2872 | - return $id; | |
2873 | - } | |
2874 | - | |
2875 | - function import_saveBrend($name,$rubric_id){ | |
2876 | - //getRubricParent(); | |
2877 | - $id = $this->db->getOne("select id from catalogs_brends where name=? and rubric_id=?",array($name,$rubric_id)); | |
2878 | - if( !$id ){ | |
2879 | - $this->db->autoExecute("catalogs_brends",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT); | |
2880 | - return mysql_insert_id(); | |
2881 | - } | |
2882 | - return $id; | |
2883 | - } | |
2884 | - | |
2885 | - function import_saveFilters2($rubric_id,$str){ | |
2886 | - if(!$str)return array(); | |
2887 | - $row_str = explode(",",trim($str)); | |
2888 | - $arr_id = array(); | |
2889 | - foreach($row_str as $str){ | |
2890 | - $name = trim($str); | |
2891 | - $name_r = explode('=',$name);$name = $name_r[0]; $active = (isset($name_r[1])) ? 1 : 0; | |
2892 | - $id = $this->db->getOne("select id from catalogs_filters2 where rubric_id=? and name=?",array($rubric_id,$name)); | |
2893 | - if( !$id ){ | |
2894 | - $this->db->autoExecute("catalogs_filters2",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_INSERT); | |
2895 | - $id = mysql_insert_id(); | |
2896 | - }else{ $this->db->autoExecute("catalogs_filters2",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_UPDATE,"id=$id");} | |
2897 | - $arr_id[] = $id; | |
2898 | - } | |
2899 | - return $arr_id; | |
2900 | - } | |
2901 | - | |
2902 | - function import_saveFilters($rubric_id,$str){ | |
2903 | - if(!$str)return array(); | |
2904 | - $row_str = explode(",",trim($str)); | |
2905 | - $arr_id = array(); | |
2906 | - foreach($row_str as $str){ | |
2907 | - $name = trim($str); | |
2908 | - $name_r = explode('=',$name);$name = $name_r[0]; $active = (isset($name_r[1])) ? 1 : 0; | |
2909 | - $id = $this->db->getOne("select id from catalogs_filters where rubric_id=? and name=?",array($rubric_id,$name)); | |
2910 | - if( !$id ){ | |
2911 | - $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_INSERT); | |
2912 | - $id = mysql_insert_id(); | |
2913 | - }else{ $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_UPDATE,"id=$id");} | |
2914 | - $arr_id[] = $id; | |
2915 | - } | |
2916 | - return $arr_id; | |
2917 | - } | |
2918 | - | |
2919 | - function import_saveYear($rubric_id,$name){ | |
2920 | - if(!$name)return false; | |
2921 | - $id = $this->db->getOne("select id from catalogs_years where rubric_id=? and name=?",array($rubric_id,$name)); | |
2922 | - if( !$id ){ | |
2923 | - $this->db->autoExecute("catalogs_years",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT); | |
2924 | - $id = mysql_insert_id(); | |
2925 | - } | |
2926 | - return ($id)?array($id):array(); | |
2927 | - } | |
2928 | - | |
2929 | - function import_updateProductCine($product_id,$row,$line='',$mktime = 0){ // print"<pre>";print_r($row);print"</pre>"; | |
2930 | - | |
2931 | - IF($product_id>0){ | |
2932 | - IF($row[3]>0){ | |
2933 | - if($row[2]<1){$cine=$row[1];$cine_last=0;} | |
2934 | - else {$cine=$row[2];$cine_last=(($row[1]>0)?$row[1]:$row[2]);} | |
2935 | - $this->db->autoExecute("catalogs_products",array('cine'=>$cine,'cine_last'=>$cine_last),DB_AUTOQUERY_UPDATE,"id='$product_id'"); | |
2936 | - } | |
2937 | - | |
2938 | - | |
2939 | - $city = trim($row[4]); | |
2940 | - if(!$city)$city = "Èíòåðíåò ìàãàçèí"; | |
2941 | - //echo "OK(1) - <br/>"; | |
2942 | - if(strlen($city)>0){ //print $city; | |
2943 | - $city_id = $this->is_city($city); | |
2944 | - //echo "OK(2) - <br/>"; | |
2945 | - if(!$city_id){$city_id = $this->SaveCity(array('name'=>$city));} | |
2946 | - $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime)); | |
2947 | - | |
2948 | - if($row[3]==0){ | |
2949 | - | |
2950 | - } | |
2951 | - else{ | |
2952 | - // $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime)); | |
2953 | - //echo "OK(3) - <br/>"; | |
2954 | - if($this->getKeysModificationCity($row[0], $city_id)){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "mod_code='".$row[0]."' and city_id='".$city_id."'";} | |
2955 | - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = null;} | |
2956 | - | |
2957 | - // if($this->getKeysModificationCityMktime_count($row[0], $city_id, $mktime)>0){$row[3]=1;} | |
2958 | - //print $city_id .'--'.$where."<br>"; | |
2959 | - $fields = array('count'=>$row[3],'product_id'=>$product_id,'mod_code'=>$row[0],'city_id'=>$city_id,'mktime'=>$mktime); | |
2960 | - $s = $this->db->autoExecute("catalogs_keys_products_cities",$fields,$DB_AUTOQUERY,$where); | |
2961 | - if (PEAR::isError($s)) die($s->getMessage()); | |
2962 | - }} | |
2963 | - //echo "OK(4) - <br/>"; | |
2964 | - $active = $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and count>0",array($row[0])); | |
2965 | - //$active = true; | |
2966 | - if($this->db->getOne("select count(*) from catalogs_modifications where code=?",array($row[0]))>0){ | |
2967 | - $this->db->autoExecute("catalogs_modifications",array('active'=>$active,'is_update'=>1,'prefix'=>$row[4]),DB_AUTOQUERY_UPDATE,"code='".$row[0]."'"); | |
2968 | - //echo "OK(5) - <br/>"; | |
2969 | - }else{ | |
2970 | - //echo "OK(6) - <br/>"; | |
2971 | - $this->saveCsvMod($line); | |
2972 | - } | |
2973 | - } | |
2974 | - } | |
2975 | - | |
2976 | - function saveCsvMod($line){ | |
2977 | - echo "OK1 - <br/>"; | |
2978 | - $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv"; | |
2979 | - $handle = @fopen($tmpfname, "a"); | |
2980 | -// $row = explode(";",$line); | |
2981 | -// File_FGetCSV::fputcsv($handle,$row,';'); | |
2982 | - echo "OK2 - <br/>"; | |
2983 | - echo $line; | |
2984 | - echo "OK3 - <br/>"; | |
2985 | - fwrite($handle,$line); | |
2986 | - fclose($handle); | |
2987 | - } | |
2988 | - | |
2989 | - function getKeysModificationCity($code, $city_id){ | |
2990 | - return $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id)); | |
2991 | - } | |
2992 | - | |
2993 | - function getKeysModificationCity_count($code, $city_id){ | |
2994 | - return $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id)); | |
2995 | - } | |
2996 | - | |
2997 | - function getKeysModificationCityMktime_count($code, $city_id, $mktime){ | |
2998 | - $r = $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=? and mktime=?", array($code, $city_id, $mktime)); | |
2999 | - return $r; | |
3000 | - } | |
3001 | - | |
3002 | - function getProductID($name){ | |
3003 | - $id = $this->db->getOne("select id from catalogs_products where name=?",array($name)); | |
3004 | - return $id; | |
3005 | - } | |
3006 | - | |
3007 | -function getProductID_R ($name, $rubric_parent_id) | |
3008 | -{ | |
3009 | - $id = $this->db->getOne ("select id from catalogs_products where name=? and rubric_id=?", array ( | |
3010 | - $name, | |
3011 | - $rubric_parent_id | |
3012 | - )); | |
3013 | - | |
3014 | - return $id; | |
3015 | -} | |
3016 | - | |
3017 | - function getModificationActive($code){ | |
3018 | - return $this->db->getOne("select active from catalogs_modifications where code=?",array($code)); | |
3019 | - } | |
3020 | - | |
3021 | -function updateProduct_countModification ($product_id, $count) | |
3022 | -{ | |
3023 | - $this->db->autoExecute ("catalogs_products", array ( | |
3362 | + function viewFilterProduct ($id) | |
3363 | + { | |
3364 | + $sql = "select f.* from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where f.active='0' and k.product_id=?"; | |
3365 | + $row = $this->db->getAll ($sql, array ( | |
3366 | + $id | |
3367 | + ), DB_FETCHMODE_ASSOC); | |
3368 | + $this->tpl->assign ('product_filters', $row); | |
3369 | + return $row; | |
3370 | + } | |
3371 | + | |
3372 | + function viewFilterProductID ($id) | |
3373 | + { | |
3374 | + $sql = "select filter_id from catalogs_keys_products_filters where product_id=?"; | |
3375 | + $row = $this->db->getCol ($sql, "filter_id", array ( | |
3376 | + $id | |
3377 | + )); | |
3378 | + $this->tpl->assign ('product_filters', $row); | |
3379 | + } | |
3380 | + | |
3381 | + function deleteFilter ($id) | |
3382 | + { | |
3383 | + $this->db->query ("delete from catalogs_filters where id=?", array ( | |
3384 | + $id | |
3385 | + )); | |
3386 | + $this->delete_keysFilterProduct ($id); | |
3387 | + } | |
3388 | + | |
3389 | + function deleteFiltersRubric_id ($rubric_id) | |
3390 | + { | |
3391 | + $this->db->query ("delete from catalogs_filters where rubric_id=?", array ( | |
3392 | + $rubric_id | |
3393 | + )); | |
3394 | + $this->delete_keysFilterRubric ($rubric_id); | |
3395 | + } | |
3396 | + | |
3397 | + function delete_keysFilterProduct ($id) | |
3398 | + { | |
3399 | + $sql = "delete from catalogs_keys_products_filters where filter_id=?"; | |
3400 | + $this->db->query ($sql, array ( | |
3401 | + $id | |
3402 | + )); | |
3403 | + } | |
3404 | + | |
3405 | + function delete_keysFilterRubric ($id) | |
3406 | + { | |
3407 | + $sql = "delete from catalogs_keys_products_filters where rubric_id=?"; | |
3408 | + $this->db->query ($sql, array ( | |
3409 | + $id | |
3410 | + )); | |
3411 | + } | |
3412 | + | |
3413 | + function viewFilters ($rubric_id, $all = false, $lang = 'ru') | |
3414 | + { | |
3415 | + $search = array (); | |
3416 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
3417 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
3418 | + if (isset ($filter['g']) && count ($filter['g']) > 0) | |
3419 | + { | |
3420 | + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")"; | |
3421 | + } | |
3422 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
3423 | + { | |
3424 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
3425 | + } | |
3426 | + | |
3427 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
3428 | + { | |
3429 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
3430 | + } | |
3431 | + | |
3432 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
3433 | + { | |
3434 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
3435 | + } | |
3436 | + | |
3437 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
3438 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
3439 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
3440 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
3441 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
3442 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
3443 | + | |
3444 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
3445 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
3446 | + /* | |
3447 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
3448 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
3449 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
3450 | + * } | |
3451 | + */ | |
3452 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
3453 | + { | |
3454 | + $sex = $this->seralizeSex ($_GET['sex']); | |
3455 | + $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
3456 | + } | |
3457 | + $sql = " | |
3458 | + SELECT f.*,f.name" . ($lang == 'ukr' ? '_ukr' : '') . " as name,f.h1" . ($lang == 'ukr' ? '_ukr' : '') . " as h1 | |
3459 | + FROM catalogs_products p, catalogs_keys_products_filters k | |
3460 | + LEFT JOIN catalogs_filters f ON f.id=k.filter_id | |
3461 | + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=k.product_id | |
3462 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id | |
3463 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 | |
3464 | + LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 | |
3465 | + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id | |
3466 | + WHERE p.id=k.product_id | |
3467 | + AND p.count_modifications>0 | |
3468 | + "; | |
3469 | + // $sql = "select * from catalogs_filters where 1=1 "; | |
3470 | + if ($all == false) | |
3471 | + $sql .= "and f.active='0' "; | |
3472 | + if (count ($search)) | |
3473 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
3474 | + $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc"; | |
3475 | + // print $sql; | |
3476 | + $row = $this->db->getAll ($sql, array ( | |
3477 | + $rubric_id | |
3478 | + ), DB_FETCHMODE_ASSOC); | |
3479 | + $this->tpl->assign ('filters', $row); | |
3480 | + } | |
3481 | + | |
3482 | + function viewFiltersAll ($rubric_id) | |
3483 | + { | |
3484 | + $row = $this->db->getAll ("select * from catalogs_filters where rubric_id=? order by sort", array ( | |
3485 | + $rubric_id | |
3486 | + ), DB_FETCHMODE_ASSOC); | |
3487 | + $this->tpl->assign ('filters', $row); | |
3488 | + } | |
3489 | + | |
3490 | + function getFiltersName_IDs ($ids, $lang) | |
3491 | + { | |
3492 | + // $sql = "select name from catalogs_filters where id in (".implode(",",$ids).")"; | |
3493 | + // $row = $this->db->getCol($sql,"name",array()); | |
3494 | + $name = array (); | |
3495 | + foreach ($ids as $id) | |
3496 | + { | |
3497 | + $row = $this->db->getRow ("select h1" . ($lang == 'ukr' ? '_ukr' : '') . " as h1 from catalogs_filters where id=$id", array (), DB_FETCHMODE_ASSOC); | |
3498 | + $name[] = ((strlen ($row['h1']) > 0) ? $row['h1'] : $row['name']); | |
3499 | + } | |
3500 | + | |
3501 | + return implode (", ", $name); | |
3502 | + } | |
3503 | + | |
3504 | + function getFilters2Name_IDs ($ids) | |
3505 | + { | |
3506 | + // $sql = "select name from catalogs_filters where id in (".implode(",",$ids).")"; | |
3507 | + // $row = $this->db->getCol($sql,"name",array()); | |
3508 | + $name = array (); | |
3509 | + foreach ($ids as $id) | |
3510 | + { | |
3511 | + $row = $this->db->getRow ("select h1,name from catalogs_filters2 where id=$id", array (), DB_FETCHMODE_ASSOC); | |
3512 | + $name[] = ((strlen ($row['h1']) > 0) ? $row['h1'] : $row['name']); | |
3513 | + } | |
3514 | + // print_r($name); | |
3515 | + return implode (", ", $name); | |
3516 | + } | |
3517 | + | |
3518 | + function SaveFilters2 ($data) | |
3519 | + { | |
3520 | + $table_name = "catalogs_filters2"; | |
3521 | + foreach ($data['filter2'] as $key => $name) | |
3522 | + { | |
3523 | + if (strlen ($name) > 0) | |
3524 | + { | |
3525 | + if (isset ($data['update_id'][$key]) && $data['update_id'][$key] > 0) | |
3526 | + { | |
3527 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
3528 | + $where = "id='{$data['update_id'][$key]}'"; | |
3529 | + } | |
3530 | + else | |
3531 | + { | |
3532 | + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; | |
3533 | + $where = ""; | |
3534 | + } | |
3535 | + $active = (isset ($data['active'][$key])) ? 1 : 0; | |
3536 | + $this->db->autoExecute ($table_name, array ( | |
3537 | + 'name' => $name, | |
3538 | + "name_ukr" => $data['filter_ukr'][$key], | |
3539 | + 'prefix' => encodestring ($name), | |
3540 | + 'rubric_id' => $data['rubric_id'], | |
3541 | + "sort" => $data['sort'][$key], | |
3542 | + "active" => $active | |
3543 | + ), $DB_AUTOQUERY, $where); | |
3544 | + } | |
3545 | + } | |
3546 | + } | |
3547 | + | |
3548 | + function viewFilterProductID2 ($id) | |
3549 | + { | |
3550 | + $sql = "select filter_id from catalogs_keys_products_filters2 where product_id=?"; | |
3551 | + $row = $this->db->getCol ($sql, "filter_id", array ( | |
3552 | + $id | |
3553 | + )); | |
3554 | + $this->tpl->assign ('product_filters2', $row); | |
3555 | + } | |
3556 | + | |
3557 | + function deleteFilter2 ($id) | |
3558 | + { | |
3559 | + $this->db->query ("delete from catalogs_filters2 where id=?", array ( | |
3560 | + $id | |
3561 | + )); | |
3562 | + $this->delete_keysFilterProduct2 ($id); | |
3563 | + } | |
3564 | + | |
3565 | + function delete_keysFilterProduct2 ($id) | |
3566 | + { | |
3567 | + $sql = "delete from catalogs_keys_products_filters2 where filter_id=?"; | |
3568 | + $this->db->query ($sql, array ( | |
3569 | + $id | |
3570 | + )); | |
3571 | + } | |
3572 | + | |
3573 | + function deleteFiltersRubric_id2 ($rubric_id) | |
3574 | + { | |
3575 | + $this->db->query ("delete from catalogs_filters2 where rubric_id=?", array ( | |
3576 | + $rubric_id | |
3577 | + )); | |
3578 | + $this->delete_keysFilterRubric2 ($rubric_id); | |
3579 | + } | |
3580 | + | |
3581 | + function delete_keysFilterRubric2 ($id) | |
3582 | + { | |
3583 | + $sql = "delete from catalogs_keys_products_filters2 where rubric_id=?"; | |
3584 | + $this->db->query ($sql, array ( | |
3585 | + $id | |
3586 | + )); | |
3587 | + } | |
3588 | + | |
3589 | + function viewFilters2 ($rubric_id, $lang = 'ru') | |
3590 | + { | |
3591 | + $search = array (); | |
3592 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
3593 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
3594 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
3595 | + { | |
3596 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
3597 | + } | |
3598 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
3599 | + { | |
3600 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
3601 | + } | |
3602 | + | |
3603 | + if (isset ($filter['s']) && count ($filter['s']) > 0) | |
3604 | + { | |
3605 | + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; | |
3606 | + } | |
3607 | + | |
3608 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
3609 | + { | |
3610 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
3611 | + } | |
3612 | + | |
3613 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
3614 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
3615 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
3616 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
3617 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
3618 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
3619 | + | |
3620 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
3621 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
3622 | + /* | |
3623 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
3624 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
3625 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
3626 | + * } | |
3627 | + */ | |
3628 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
3629 | + { | |
3630 | + $sex = $this->seralizeSex ($_GET['sex']); | |
3631 | + $search[] = "s.sex IN (" . implode (",", $sex) . ")"; | |
3632 | + } | |
3633 | + $sql = " | |
3634 | + SELECT f.*,f.name" . ($lang == 'ukr' ? '_ukr' : '') . " as name | |
3635 | + FROM catalogs_products p, catalogs_keys_products_filters2 k | |
3636 | + LEFT JOIN catalogs_filters2 f ON f.id=k.filter_id | |
3637 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id | |
3638 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id | |
3639 | + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 | |
3640 | + LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 | |
3641 | + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id | |
3642 | + WHERE p.id=k.product_id | |
3643 | + AND p.count_modifications>0 | |
3644 | + "; | |
3645 | + // $sql = "select * from catalogs_filters where 1=1 "; | |
3646 | + if ($all == false) | |
3647 | + $sql .= "and f.active='0' "; | |
3648 | + if (count ($search)) | |
3649 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
3650 | + $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc"; | |
3651 | + // print $sql; | |
3652 | + $row = $this->db->getAll ($sql, array ( | |
3653 | + $rubric_id | |
3654 | + ), DB_FETCHMODE_ASSOC); | |
3655 | + | |
3656 | + // $row = $this->db->getAll("select *,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_filters2 f where f.active='0' and f.rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC); | |
3657 | + $this->tpl->assign ('filters2', $row); | |
3658 | + } | |
3659 | + | |
3660 | + function getFiltersMod_IDs ($ids) | |
3661 | + { | |
3662 | + $name = array (); | |
3663 | + foreach ($ids as $id) | |
3664 | + { | |
3665 | + $name[] = $this->db->getOne ("select size from catalogs_modifications where size=$id", array ()); | |
3666 | + } | |
3667 | + return implode (", ", $name); | |
3668 | + } | |
3669 | + | |
3670 | + function viewFiltersMod ($rubric_id) | |
3671 | + { | |
3672 | + $search = array (); | |
3673 | + | |
3674 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
3675 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
3676 | + | |
3677 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
3678 | + { | |
3679 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
3680 | + } | |
3681 | + | |
3682 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
3683 | + { | |
3684 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
3685 | + } | |
3686 | + | |
3687 | + if (isset ($filter['r']) && count ($filter['r']) > 0) | |
3688 | + { | |
3689 | + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; | |
3690 | + } | |
3691 | + | |
3692 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
3693 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
3694 | + /* | |
3695 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
3696 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
3697 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
3698 | + * } | |
3699 | + */ | |
3700 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
3701 | + { | |
3702 | + $sex = $this->seralizeSex ($_GET['sex']); | |
3703 | + $search[] = "p.sex IN (" . implode (",", $sex) . ")"; | |
3704 | + } | |
3705 | + | |
3706 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
3707 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
3708 | + | |
3709 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
3710 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
3711 | + | |
3712 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
3713 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
3714 | + | |
3715 | + $sql = " | |
3716 | + SELECT m.* | |
3717 | + FROM catalogs_modifications m,catalogs_products p | |
3718 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id | |
3719 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id | |
3720 | + LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 | |
3721 | + WHERE m.size<>'' | |
3722 | + "; | |
3723 | + | |
3724 | + if (count ($search)) | |
3725 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
3726 | + | |
3727 | + $sql .= " | |
3728 | + and m.product_id=p.id | |
3729 | + and m.active=1 | |
3730 | + and p.rubric_id=? | |
3731 | + and p.count_modifications>0 | |
3732 | + and m.size > 0 | |
3733 | + GROUP BY m.size"; | |
3734 | + $row = $this->db->getAll ($sql, array ( | |
3735 | + $rubric_id | |
3736 | + ), DB_FETCHMODE_ASSOC); | |
3737 | + | |
3738 | + if ($_GET['t'] == 1) | |
3739 | + { | |
3740 | + print "<pre>"; | |
3741 | + print_r ($row); | |
3742 | + print "</pre>"; | |
3743 | + } | |
3744 | + | |
3745 | + $this->tpl->assign ('size', $row); | |
3746 | + } | |
3747 | + | |
3748 | + function viewFiltersRost ($rubric_id) | |
3749 | + { | |
3750 | + $search = array (); | |
3751 | + | |
3752 | + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) | |
3753 | + $filter = $this->seralizeFilter ($_GET['filter']); | |
3754 | + | |
3755 | + if (isset ($filter['f']) && count ($filter['f']) > 0) | |
3756 | + { | |
3757 | + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; | |
3758 | + } | |
3759 | + | |
3760 | + if (isset ($filter['y']) && $filter['y'] > 0) | |
3761 | + { | |
3762 | + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; | |
3763 | + } | |
3764 | + | |
3765 | + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) | |
3766 | + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; | |
3767 | + /* | |
3768 | + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ | |
3769 | + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); | |
3770 | + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); | |
3771 | + * } | |
3772 | + */ | |
3773 | + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) | |
3774 | + { | |
3775 | + $sex = $this->seralizeSex ($_GET['sex']); | |
3776 | + $search[] = "p.sex IN (" . implode (",", $sex) . ")"; | |
3777 | + } | |
3778 | + | |
3779 | + $sql = " | |
3780 | + SELECT m.* | |
3781 | + FROM catalogs_modifications m, catalogs_products p | |
3782 | + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id | |
3783 | + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id | |
3784 | + WHERE m.rost > 0"; | |
3785 | + | |
3786 | + if (count ($search)) | |
3787 | + { | |
3788 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
3789 | + } | |
3790 | + | |
3791 | + $sql .= " | |
3792 | + AND m.product_id=p.id | |
3793 | + AND m.active=1 | |
3794 | + AND p.rubric_id=? | |
3795 | + AND p.count_modifications>0 | |
3796 | + GROUP BY m.rost | |
3797 | + "; | |
3798 | + | |
3799 | + $row = $this->db->getAll ($sql, array ( | |
3800 | + $rubric_id | |
3801 | + ), DB_FETCHMODE_ASSOC); | |
3802 | + | |
3803 | + if ($_GET['t'] == 1) | |
3804 | + { | |
3805 | + print "<pre>"; | |
3806 | + print_r ($row); | |
3807 | + print "</pre>"; | |
3808 | + } | |
3809 | + | |
3810 | + $this->tpl->assign ('rost', $row); | |
3811 | + } | |
3812 | + | |
3813 | + function viewRostProduct ($id) | |
3814 | + { | |
3815 | + $sql = "select m.* from catalogs_modifications m where m.product_id=? GROUP BY m.rost"; | |
3816 | + $row = $this->db->getAll ($sql, array ( | |
3817 | + $id | |
3818 | + ), DB_FETCHMODE_ASSOC); | |
3819 | + $this->tpl->assign ('product_rost', $row); | |
3820 | + } | |
3821 | + | |
3822 | + function viewFiltersInProducts ($filter_products, $lang = 'ru') | |
3823 | + { | |
3824 | + $search = array (); | |
3825 | + if (isset ($_GET['new']) && $_GET['new'] > 0) | |
3826 | + $search[] = sprintf ("p.active='%d'", $_GET['new']); | |
3827 | + if (isset ($_GET['top']) && $_GET['top'] > 0) | |
3828 | + $search[] = sprintf ("p.top='%d'", $_GET['top']); | |
3829 | + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) | |
3830 | + $search[] = sprintf ("p.akcii_id>'%d'", 0); | |
3831 | + | |
3832 | + $sql = "select f.*,f.name" . ($lang == 'ukr' ? '_ukr' : '') . " as name from catalogs_products p, catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where p.id=k.product_id AND f.id IN (" . $filter_products . ") and f.active='0' "; | |
3833 | + if (count ($search)) | |
3834 | + $sql .= "AND " . implode (" AND ", $search) . " "; | |
3835 | + $sql .= 'GROUP BY k.filter_id order by f.sort'; | |
3836 | + // print $sql; | |
3837 | + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
3838 | + $this->tpl->assign ('filters', $row); | |
3839 | + } | |
3840 | + | |
3841 | + function viewBrend ($id) | |
3842 | + { | |
3843 | + $row = $this->db->getRow ("select * from catalogs_brends where id=?", array ( | |
3844 | + $id | |
3845 | + ), DB_FETCHMODE_ASSOC); | |
3846 | + $this->tpl->assign ('brend', $row); | |
3847 | + } | |
3848 | + | |
3849 | + function viewBrendName ($name) | |
3850 | + { | |
3851 | + $name = iconv ("utf-8", "windows-1251", $name); | |
3852 | + $sql = "select * from catalogs_brends where name=? limit 1"; | |
3853 | + $row = $this->db->getRow ($sql, array ( | |
3854 | + $name | |
3855 | + ), DB_FETCHMODE_ASSOC); | |
3856 | + $this->tpl->assign ('brend_seo', $row); | |
3857 | + return $row; | |
3858 | + } | |
3859 | + | |
3860 | + function getBrendIDs_name ($name) | |
3861 | + { | |
3862 | + $n = array (); | |
3863 | + $name_arr = explode (";", $name); | |
3864 | + foreach ($name_arr as $row) | |
3865 | + { | |
3866 | + $n[] = "'" . $row . "'"; | |
3867 | + } | |
3868 | + // $name = iconv("utf-8", "windows-1251", $name); | |
3869 | + $sql = "select id from catalogs_brends where name in (" . implode (",", $n) . ")"; | |
3870 | + // print $sql; | |
3871 | + return $this->db->getCol ($sql, "id", array ()); | |
3872 | + } | |
3873 | + | |
3874 | + function viewBrendRubrics ($name, $lang = 'ru') | |
3875 | + { | |
3876 | + $name = iconv ("utf-8", "windows-1251", $name); | |
3877 | + $sql = " | |
3878 | + SELECT r.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name,r.parent_id,r.translit,count(p.id) as c | |
3879 | + FROM catalogs_brends b | |
3880 | + LEFT JOIN catalogs_rubrics r On r.id=b.rubric_id | |
3881 | + LEFT JOIN catalogs_products p On p.brend_id=b.id AND p.count_modifications>0 | |
3882 | + WHERE b.name=? | |
3883 | + AND r.name<>'' | |
3884 | + GROUP BY p.brend_id | |
3885 | + "; | |
3886 | + $res = $this->db->getAll ($sql, array ( | |
3887 | + $name | |
3888 | + ), DB_FETCHMODE_ASSOC); | |
3889 | + $rubrics = array (); | |
3890 | + foreach ($res as $row) | |
3891 | + { | |
3892 | + if ($row['c'] > 0) | |
3893 | + { | |
3894 | + $rubrics[$this->getRubricName ($row['parent_id'], $lang)][] = $row; | |
3895 | + } | |
3896 | + } | |
3897 | + // print"<pre>"; | |
3898 | + // print_r($rubrics); | |
3899 | + // print"</pre>"; | |
3900 | + $this->tpl->assign ('brend_rubrics', $rubrics); | |
3901 | + } | |
3902 | + | |
3903 | + function deleteBrend ($id) | |
3904 | + { | |
3905 | + $this->db->query ("delete from catalogs_brends where id=?", array ( | |
3906 | + $id | |
3907 | + )); | |
3908 | + } | |
3909 | + | |
3910 | + function viewAkciiProductID ($id) | |
3911 | + { | |
3912 | + $sql = "select rubric_id from catalogs_keys_products_akcii where product_id=?"; | |
3913 | + $row = $this->db->getCol ($sql, "rubric_id", array ( | |
3914 | + $id | |
3915 | + )); | |
3916 | + $this->tpl->assign ('product_akcii', $row); | |
3917 | + } | |
3918 | + | |
3919 | + function import_saveRubric ($name, $parent_id) | |
3920 | + { | |
3921 | + $id = $this->db->getOne ("select id from catalogs_rubrics where name=? and parent_id=?", array ( | |
3922 | + $name, | |
3923 | + $parent_id | |
3924 | + )); | |
3925 | + if (! $id) | |
3926 | + { | |
3927 | + $this->db->autoExecute ("catalogs_rubrics", array ( | |
3928 | + 'name' => $name, | |
3929 | + 'translit' => translit ($name), | |
3930 | + 'parent_id' => $parent_id, | |
3931 | + "level" => ($this->getLevelRubric ($parent_id) + 1) | |
3932 | + ), DB_AUTOQUERY_INSERT); | |
3933 | + return mysql_insert_id (); | |
3934 | + } | |
3935 | + return $id; | |
3936 | + } | |
3937 | + | |
3938 | + function import_saveBrend ($name, $rubric_id) | |
3939 | + { | |
3940 | + // getRubricParent(); | |
3941 | + $id = $this->db->getOne ("select id from catalogs_brends where name=? and rubric_id=?", array ( | |
3942 | + $name, | |
3943 | + $rubric_id | |
3944 | + )); | |
3945 | + if (! $id) | |
3946 | + { | |
3947 | + $this->db->autoExecute ("catalogs_brends", array ( | |
3948 | + 'rubric_id' => $rubric_id, | |
3949 | + 'name' => $name | |
3950 | + ), DB_AUTOQUERY_INSERT); | |
3951 | + return mysql_insert_id (); | |
3952 | + } | |
3953 | + return $id; | |
3954 | + } | |
3955 | + | |
3956 | + function import_saveFilters2 ($rubric_id, $str) | |
3957 | + { | |
3958 | + if (! $str) | |
3959 | + return array (); | |
3960 | + $row_str = explode (",", trim ($str)); | |
3961 | + $arr_id = array (); | |
3962 | + foreach ($row_str as $str) | |
3963 | + { | |
3964 | + $name = trim ($str); | |
3965 | + $name_r = explode ('=', $name); | |
3966 | + $name = $name_r[0]; | |
3967 | + $active = (isset ($name_r[1])) ? 1 : 0; | |
3968 | + $id = $this->db->getOne ("select id from catalogs_filters2 where rubric_id=? and name=?", array ( | |
3969 | + $rubric_id, | |
3970 | + $name | |
3971 | + )); | |
3972 | + if (! $id) | |
3973 | + { | |
3974 | + $this->db->autoExecute ("catalogs_filters2", array ( | |
3975 | + 'rubric_id' => $rubric_id, | |
3976 | + 'name' => $name, | |
3977 | + 'prefix' => encodestring ($name), | |
3978 | + 'active' => $active | |
3979 | + ), DB_AUTOQUERY_INSERT); | |
3980 | + $id = mysql_insert_id (); | |
3981 | + } | |
3982 | + else | |
3983 | + { | |
3984 | + $this->db->autoExecute ("catalogs_filters2", array ( | |
3985 | + 'rubric_id' => $rubric_id, | |
3986 | + 'name' => $name, | |
3987 | + 'prefix' => encodestring ($name), | |
3988 | + 'active' => $active | |
3989 | + ), DB_AUTOQUERY_UPDATE, "id=$id"); | |
3990 | + } | |
3991 | + $arr_id[] = $id; | |
3992 | + } | |
3993 | + return $arr_id; | |
3994 | + } | |
3995 | + | |
3996 | + function import_saveFilters ($rubric_id, $str) | |
3997 | + { | |
3998 | + if (! $str) | |
3999 | + return array (); | |
4000 | + $row_str = explode (",", trim ($str)); | |
4001 | + $arr_id = array (); | |
4002 | + foreach ($row_str as $str) | |
4003 | + { | |
4004 | + $name = trim ($str); | |
4005 | + $name_r = explode ('=', $name); | |
4006 | + $name = $name_r[0]; | |
4007 | + $active = (isset ($name_r[1])) ? 1 : 0; | |
4008 | + $id = $this->db->getOne ("select id from catalogs_filters where rubric_id=? and name=?", array ( | |
4009 | + $rubric_id, | |
4010 | + $name | |
4011 | + )); | |
4012 | + if (! $id) | |
4013 | + { | |
4014 | + $this->db->autoExecute ("catalogs_filters", array ( | |
4015 | + 'rubric_id' => $rubric_id, | |
4016 | + 'name' => $name, | |
4017 | + 'prefix' => encodestring ($name), | |
4018 | + 'active' => $active | |
4019 | + ), DB_AUTOQUERY_INSERT); | |
4020 | + $id = mysql_insert_id (); | |
4021 | + } | |
4022 | + else | |
4023 | + { | |
4024 | + $this->db->autoExecute ("catalogs_filters", array ( | |
4025 | + 'rubric_id' => $rubric_id, | |
4026 | + 'name' => $name, | |
4027 | + 'prefix' => encodestring ($name), | |
4028 | + 'active' => $active | |
4029 | + ), DB_AUTOQUERY_UPDATE, "id=$id"); | |
4030 | + } | |
4031 | + $arr_id[] = $id; | |
4032 | + } | |
4033 | + return $arr_id; | |
4034 | + } | |
4035 | + | |
4036 | + function import_saveYear ($rubric_id, $name) | |
4037 | + { | |
4038 | + if (! $name) | |
4039 | + return false; | |
4040 | + $id = $this->db->getOne ("select id from catalogs_years where rubric_id=? and name=?", array ( | |
4041 | + $rubric_id, | |
4042 | + $name | |
4043 | + )); | |
4044 | + if (! $id) | |
4045 | + { | |
4046 | + $this->db->autoExecute ("catalogs_years", array ( | |
4047 | + 'rubric_id' => $rubric_id, | |
4048 | + 'name' => $name | |
4049 | + ), DB_AUTOQUERY_INSERT); | |
4050 | + $id = mysql_insert_id (); | |
4051 | + } | |
4052 | + return ($id) ? array ( | |
4053 | + $id | |
4054 | + ) : array (); | |
4055 | + } | |
4056 | + | |
4057 | + function import_updateProductCine ($product_id, $row, $line = '', $mktime = 0) | |
4058 | + { // print"<pre>";print_r($row);print"</pre>"; | |
4059 | + IF ($product_id > 0) | |
4060 | + { | |
4061 | + IF ($row[3] > 0) | |
4062 | + { | |
4063 | + if ($row[2] < 1) | |
4064 | + { | |
4065 | + $cine = $row[1]; | |
4066 | + $cine_last = 0; | |
4067 | + } | |
4068 | + else | |
4069 | + { | |
4070 | + $cine = $row[2]; | |
4071 | + $cine_last = (($row[1] > 0) ? $row[1] : $row[2]); | |
4072 | + } | |
4073 | + $this->db->autoExecute ("catalogs_products", array ( | |
4074 | + 'cine' => $cine, | |
4075 | + 'cine_last' => $cine_last | |
4076 | + ), DB_AUTOQUERY_UPDATE, "id='$product_id'"); | |
4077 | + } | |
4078 | + | |
4079 | + $city = trim ($row[4]); | |
4080 | + if (! $city) | |
4081 | + $city = "Èíòåðíåò ìàãàçèí"; | |
4082 | + // echo "OK(1) - <br/>"; | |
4083 | + if (strlen ($city) > 0) | |
4084 | + { // print $city; | |
4085 | + $city_id = $this->is_city ($city); | |
4086 | + // echo "OK(2) - <br/>"; | |
4087 | + if (! $city_id) | |
4088 | + { | |
4089 | + $city_id = $this->SaveCity (array ( | |
4090 | + 'name' => $city | |
4091 | + )); | |
4092 | + } | |
4093 | + $this->db->query ("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array ( | |
4094 | + $product_id, | |
4095 | + $row[0], | |
4096 | + $mktime | |
4097 | + )); | |
4098 | + | |
4099 | + if ($row[3] == 0) | |
4100 | + { | |
4101 | + } | |
4102 | + else | |
4103 | + { | |
4104 | + // $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime)); | |
4105 | + // echo "OK(3) - <br/>"; | |
4106 | + if ($this->getKeysModificationCity ($row[0], $city_id)) | |
4107 | + { | |
4108 | + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; | |
4109 | + $where = "mod_code='" . $row[0] . "' and city_id='" . $city_id . "'"; | |
4110 | + } | |
4111 | + else | |
4112 | + { | |
4113 | + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; | |
4114 | + $where = null; | |
4115 | + } | |
4116 | + | |
4117 | + // if($this->getKeysModificationCityMktime_count($row[0], $city_id, $mktime)>0){$row[3]=1;} | |
4118 | + // print $city_id .'--'.$where."<br>"; | |
4119 | + $fields = array ( | |
4120 | + 'count' => $row[3], | |
4121 | + 'product_id' => $product_id, | |
4122 | + 'mod_code' => $row[0], | |
4123 | + 'city_id' => $city_id, | |
4124 | + 'mktime' => $mktime | |
4125 | + ); | |
4126 | + $s = $this->db->autoExecute ("catalogs_keys_products_cities", $fields, $DB_AUTOQUERY, $where); | |
4127 | + if (PEAR::isError ($s)) | |
4128 | + die ($s->getMessage ()); | |
4129 | + } | |
4130 | + } | |
4131 | + // echo "OK(4) - <br/>"; | |
4132 | + $active = $this->db->getOne ("select count(*) from catalogs_keys_products_cities where mod_code=? and count>0", array ( | |
4133 | + $row[0] | |
4134 | + )); | |
4135 | + // $active = true; | |
4136 | + if ($this->db->getOne ("select count(*) from catalogs_modifications where code=?", array ( | |
4137 | + $row[0] | |
4138 | + )) > 0) | |
4139 | + { | |
4140 | + $this->db->autoExecute ("catalogs_modifications", array ( | |
4141 | + 'active' => $active, | |
4142 | + 'is_update' => 1, | |
4143 | + 'prefix' => $row[4] | |
4144 | + ), DB_AUTOQUERY_UPDATE, "code='" . $row[0] . "'"); | |
4145 | + // echo "OK(5) - <br/>"; | |
4146 | + } | |
4147 | + else | |
4148 | + { | |
4149 | + // echo "OK(6) - <br/>"; | |
4150 | + $this->saveCsvMod ($line); | |
4151 | + } | |
4152 | + } | |
4153 | + } | |
4154 | + | |
4155 | + function saveCsvMod ($line) | |
4156 | + { | |
4157 | + echo "OK1 - <br/>"; | |
4158 | + $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv"; | |
4159 | + $handle = @fopen ($tmpfname, "a"); | |
4160 | + // $row = explode(";",$line); | |
4161 | + // File_FGetCSV::fputcsv($handle,$row,';'); | |
4162 | + echo "OK2 - <br/>"; | |
4163 | + echo $line; | |
4164 | + echo "OK3 - <br/>"; | |
4165 | + fwrite ($handle, $line); | |
4166 | + fclose ($handle); | |
4167 | + } | |
4168 | + | |
4169 | + function getKeysModificationCity ($code, $city_id) | |
4170 | + { | |
4171 | + return $this->db->getOne ("select count(*) from catalogs_keys_products_cities where mod_code=? and city_id=?", array ( | |
4172 | + $code, | |
4173 | + $city_id | |
4174 | + )); | |
4175 | + } | |
4176 | + | |
4177 | + function getKeysModificationCity_count ($code, $city_id) | |
4178 | + { | |
4179 | + return $this->db->getOne ("select count from catalogs_keys_products_cities where mod_code=? and city_id=?", array ( | |
4180 | + $code, | |
4181 | + $city_id | |
4182 | + )); | |
4183 | + } | |
4184 | + | |
4185 | + function getKeysModificationCityMktime_count ($code, $city_id, $mktime) | |
4186 | + { | |
4187 | + $r = $this->db->getOne ("select count from catalogs_keys_products_cities where mod_code=? and city_id=? and mktime=?", array ( | |
4188 | + $code, | |
4189 | + $city_id, | |
4190 | + $mktime | |
4191 | + )); | |
4192 | + return $r; | |
4193 | + } | |
4194 | + | |
4195 | + function getProductID ($name) | |
4196 | + { | |
4197 | + $id = $this->db->getOne ("select id from catalogs_products where name=?", array ( | |
4198 | + $name | |
4199 | + )); | |
4200 | + return $id; | |
4201 | + } | |
4202 | + | |
4203 | + function getProductID_R ($name, $rubric_parent_id) | |
4204 | + { | |
4205 | + $id = $this->db->getOne ("select id from catalogs_products where name=? and rubric_id=?", array ( | |
4206 | + $name, | |
4207 | + $rubric_parent_id | |
4208 | + )); | |
4209 | + | |
4210 | + return $id; | |
4211 | + } | |
4212 | + | |
4213 | + function getModificationActive ($code) | |
4214 | + { | |
4215 | + return $this->db->getOne ("select active from catalogs_modifications where code=?", array ( | |
4216 | + $code | |
4217 | + )); | |
4218 | + } | |
4219 | + | |
4220 | + function updateProduct_countModification ($product_id, $count) | |
4221 | + { | |
4222 | + $this->db->autoExecute ("catalogs_products", array ( | |
3024 | 4223 | 'count_modifications' => $count |
3025 | - ), DB_AUTOQUERY_UPDATE, "id='$product_id'"); | |
3026 | -} | |
3027 | - | |
3028 | - function updateProductModificationCountPrefix($product_id,$prefix = "+"){ | |
3029 | -// print $product_id; | |
3030 | - $sql = "UPDATE catalogs_products SET count_modifications = count_modifications $prefix 1 WHERE id =?"; | |
3031 | - $this->db->query($sql,array($product_id)); | |
3032 | - } | |
3033 | - | |
3034 | - function exportCSV(){ | |
3035 | - $tmpfname = "tmp/price.csv"; | |
3036 | - $handle = fopen($tmpfname, "w"); | |
3037 | - // fwrite($handle, $xml); | |
3038 | - $res = $this->db->getAll('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id',array()); | |
3039 | - foreach($res as $key=>$row){ | |
3040 | - $list = $row; | |
3041 | - $mod_res = $this->db->getAll('select code,size,color,pic_big,active from catalogs_modifications where product_id=? Order by id',array($row[0])); | |
3042 | - foreach($mod_res as $mod_row){$list[] = implode('=',$mod_row);} | |
3043 | - | |
3044 | - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0])); | |
3045 | - $list[8]=implode(',',$f_row); | |
3046 | - | |
3047 | - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0])); | |
3048 | - $list[9]=implode(',',$f_row); | |
3049 | - | |
3050 | - switch($list[10]){ | |
3051 | - case 1 : $list[10] = 'ìóæñêîé'; break; | |
3052 | - case 2 : $list[10] = 'æåíñêèé'; break; | |
3053 | - case 3 : $list[10] = 'äåòñêèé'; break; | |
3054 | - case 4 : $list[10] = 'óíèñåêñ'; break; | |
3055 | - default : $list[10] = 'ìóæñêîé'; break; | |
3056 | - } | |
3057 | - | |
3058 | - $y_row = $this->db->getCol("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?",'name',array($list[0])); | |
3059 | - $list[11]=implode(',',$y_row); | |
3060 | - | |
3061 | - $p_row = $this->db->getCol("select pic_big from catalogs_gallery where product_id=?",'pic_big',array($list[0])); | |
3062 | - $list[20]=implode(',',$p_row); | |
3063 | - | |
3064 | - //print_r($list);exit; | |
3065 | - $p_res = $this->db->getAll("select name,size,metka from catalogs_products_params where product_id=? order by id asc",array($list[0])); | |
3066 | - $param = array(); | |
3067 | - foreach($p_res as $row_p){ | |
3068 | - $param[] = implode('*',$row_p); | |
3069 | - } | |
3070 | - $list[17] = implode('=',$param); | |
3071 | - | |
3072 | - unset($list[0]);unset($list[1]); | |
3073 | - | |
3074 | - File_FGetCSV::fputcsv($handle,$list,';'); | |
3075 | - | |
3076 | - | |
3077 | - | |
3078 | - } | |
3079 | - | |
3080 | - fclose($handle); | |
3081 | - | |
3082 | - $params = array( | |
3083 | - 'file' => $tmpfname, | |
3084 | - 'contenttype' => 'application/xls', | |
3085 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'), | |
3086 | - 'cache' => false | |
3087 | - ); | |
3088 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3089 | - if ($error === true) { | |
3090 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3091 | - } | |
3092 | - | |
3093 | - unlink($tmpfname); | |
3094 | - } | |
3095 | - | |
3096 | - function exportCSVaktual(){ | |
3097 | - $tmpfname = "tmp/price.csv"; | |
3098 | - $handle = fopen($tmpfname, "w"); | |
3099 | - // fwrite($handle, $xml); | |
3100 | - $res = $this->db->getAll('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id WHERE p.count_modifications>0',array()); | |
3101 | - foreach($res as $key=>$row){ | |
3102 | - $list = $row; | |
3103 | - $mod_res = $this->db->getAll('select code,size,rost,color,pic_big,active from catalogs_modifications where product_id=? Order by id',array($row[0])); | |
3104 | - foreach($mod_res as $mod_row){if(strlen($mod_row[2])>0)$mod_row[1] = $mod_row[1].'*'.$mod_row[2]; unset($mod_row[2]);$list[] = implode('=',$mod_row);} | |
3105 | - | |
3106 | - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0])); | |
3107 | - $list[8]=implode(',',$f_row); | |
3108 | - | |
3109 | - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0])); | |
3110 | - $list[9]=implode(',',$f_row); | |
3111 | - | |
3112 | - switch($list[10]){ | |
3113 | - case 1 : $list[10] = 'ìóæñêîé'; break; | |
3114 | - case 2 : $list[10] = 'æåíñêèé'; break; | |
3115 | - case 3 : $list[10] = 'äåòñêèé'; break; | |
3116 | - case 4 : $list[10] = 'óíèñåêñ'; break; | |
3117 | - default : $list[10] = 'ìóæñêîé'; break; | |
3118 | - } | |
3119 | - | |
3120 | - $y_row = $this->db->getCol("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?",'name',array($list[0])); | |
3121 | - $list[11]=implode(',',$y_row); | |
3122 | - | |
3123 | - $p_row = $this->db->getCol("select pic_big from catalogs_gallery where product_id=?",'pic_big',array($list[0])); | |
3124 | - $list[20]=implode(',',$p_row); | |
3125 | - | |
3126 | - //print_r($list);exit; | |
3127 | - $p_res = $this->db->getAll("select name,size,metka from catalogs_products_params where product_id=? order by id asc",array($list[0])); | |
3128 | - $param = array(); | |
3129 | - foreach($p_res as $row_p){ | |
3130 | - $param[] = implode('*',$row_p); | |
3131 | - } | |
3132 | - $list[17] = implode('=',$param); | |
3133 | - | |
3134 | - unset($list[0]);unset($list[1]); | |
3135 | - | |
3136 | - File_FGetCSV::fputcsv($handle,$list,';'); | |
3137 | - | |
3138 | - | |
3139 | - | |
3140 | - } | |
3141 | - | |
3142 | - fclose($handle); | |
3143 | - | |
3144 | - $params = array( | |
3145 | - 'file' => $tmpfname, | |
3146 | - 'contenttype' => 'application/xls', | |
3147 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'), | |
3148 | - 'cache' => false | |
3149 | - ); | |
3150 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3151 | - if ($error === true) { | |
3152 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3153 | - } | |
3154 | - | |
3155 | - unlink($tmpfname); | |
3156 | - } | |
3157 | - | |
3158 | - function exportModCSV(){ | |
3159 | - $tmpfname = "tmp/price_mod.csv"; | |
3160 | - $handle = fopen($tmpfname, "w"); | |
3161 | - $res = $this->db->getAll('select m.code,p.cine,p.cine_last,m.active,null,m.prefix,m.is_update From catalogs_modifications m Left join catalogs_products p on p.id=m.product_id Order by m.id'); | |
3162 | - foreach($res as $key=>$row){ | |
3163 | - File_FGetCSV::fputcsv($handle,$row,';'); | |
3164 | - } | |
3165 | - fclose($handle); | |
3166 | - $params = array( | |
3167 | - 'file' => $tmpfname, | |
3168 | - 'contenttype' => 'application/xls', | |
3169 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'file_1.csv'), | |
3170 | - 'cache' => false | |
3171 | - ); | |
3172 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3173 | - if ($error === true) { | |
3174 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3175 | - } | |
3176 | - | |
3177 | - unlink($tmpfname); | |
3178 | - $this->db->autoExecute("catalogs_modifications",array('is_update'=>0),DB_AUTOQUERY_UPDATE); | |
3179 | - } | |
3180 | - | |
3181 | - function exportUsersCSV(){ | |
3182 | - $tmpfname = "tmp/users.csv"; | |
3183 | - $handle = fopen($tmpfname, "w"); | |
3184 | - | |
3185 | - $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,summary,u.birthday,c.card | |
4224 | + ), DB_AUTOQUERY_UPDATE, "id='$product_id'"); | |
4225 | + } | |
4226 | + | |
4227 | + function updateProductModificationCountPrefix ($product_id, $prefix = "+") | |
4228 | + { | |
4229 | + // print $product_id; | |
4230 | + $sql = "UPDATE catalogs_products SET count_modifications = count_modifications $prefix 1 WHERE id =?"; | |
4231 | + $this->db->query ($sql, array ( | |
4232 | + $product_id | |
4233 | + )); | |
4234 | + } | |
4235 | + | |
4236 | + function exportCSV () | |
4237 | + { | |
4238 | + $tmpfname = "tmp/price.csv"; | |
4239 | + $handle = fopen ($tmpfname, "w"); | |
4240 | + // fwrite($handle, $xml); | |
4241 | + $res = $this->db->getAll ('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id', array ()); | |
4242 | + foreach ($res as $key => $row) | |
4243 | + { | |
4244 | + $list = $row; | |
4245 | + $mod_res = $this->db->getAll ('select code,size,color,pic_big,active from catalogs_modifications where product_id=? Order by id', array ( | |
4246 | + $row[0] | |
4247 | + )); | |
4248 | + foreach ($mod_res as $mod_row) | |
4249 | + { | |
4250 | + $list[] = implode ('=', $mod_row); | |
4251 | + } | |
4252 | + | |
4253 | + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?", 'name', array ( | |
4254 | + $list[0] | |
4255 | + )); | |
4256 | + $list[8] = implode (',', $f_row); | |
4257 | + | |
4258 | + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?", 'name', array ( | |
4259 | + $list[0] | |
4260 | + )); | |
4261 | + $list[9] = implode (',', $f_row); | |
4262 | + | |
4263 | + switch ($list[10]) | |
4264 | + { | |
4265 | + case 1 : | |
4266 | + $list[10] = 'ìóæñêîé'; | |
4267 | + break; | |
4268 | + case 2 : | |
4269 | + $list[10] = 'æåíñêèé'; | |
4270 | + break; | |
4271 | + case 3 : | |
4272 | + $list[10] = 'äåòñêèé'; | |
4273 | + break; | |
4274 | + case 4 : | |
4275 | + $list[10] = 'óíèñåêñ'; | |
4276 | + break; | |
4277 | + default : | |
4278 | + $list[10] = 'ìóæñêîé'; | |
4279 | + break; | |
4280 | + } | |
4281 | + | |
4282 | + $y_row = $this->db->getCol ("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?", 'name', array ( | |
4283 | + $list[0] | |
4284 | + )); | |
4285 | + $list[11] = implode (',', $y_row); | |
4286 | + | |
4287 | + $p_row = $this->db->getCol ("select pic_big from catalogs_gallery where product_id=?", 'pic_big', array ( | |
4288 | + $list[0] | |
4289 | + )); | |
4290 | + $list[20] = implode (',', $p_row); | |
4291 | + | |
4292 | + // print_r($list);exit; | |
4293 | + $p_res = $this->db->getAll ("select name,size,metka from catalogs_products_params where product_id=? order by id asc", array ( | |
4294 | + $list[0] | |
4295 | + )); | |
4296 | + $param = array (); | |
4297 | + foreach ($p_res as $row_p) | |
4298 | + { | |
4299 | + $param[] = implode ('*', $row_p); | |
4300 | + } | |
4301 | + $list[17] = implode ('=', $param); | |
4302 | + | |
4303 | + unset ($list[0]); | |
4304 | + unset ($list[1]); | |
4305 | + | |
4306 | + File_FGetCSV::fputcsv ($handle, $list, ';'); | |
4307 | + } | |
4308 | + | |
4309 | + fclose ($handle); | |
4310 | + | |
4311 | + $params = array ( | |
4312 | + 'file' => $tmpfname, | |
4313 | + 'contenttype' => 'application/xls', | |
4314 | + 'contentdisposition' => array ( | |
4315 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4316 | + 'price.csv' | |
4317 | + ), | |
4318 | + 'cache' => false | |
4319 | + ); | |
4320 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4321 | + if ($error === true) | |
4322 | + { | |
4323 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4324 | + } | |
4325 | + | |
4326 | + unlink ($tmpfname); | |
4327 | + } | |
4328 | + | |
4329 | + function exportCSVaktual () | |
4330 | + { | |
4331 | + $tmpfname = "tmp/price.csv"; | |
4332 | + $handle = fopen ($tmpfname, "w"); | |
4333 | + // fwrite($handle, $xml); | |
4334 | + $res = $this->db->getAll ('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id WHERE p.count_modifications>0', array ()); | |
4335 | + foreach ($res as $key => $row) | |
4336 | + { | |
4337 | + $list = $row; | |
4338 | + $mod_res = $this->db->getAll ('select code,size,rost,color,pic_big,active from catalogs_modifications where product_id=? Order by id', array ( | |
4339 | + $row[0] | |
4340 | + )); | |
4341 | + foreach ($mod_res as $mod_row) | |
4342 | + { | |
4343 | + if (strlen ($mod_row[2]) > 0) | |
4344 | + $mod_row[1] = $mod_row[1] . '*' . $mod_row[2]; | |
4345 | + unset ($mod_row[2]); | |
4346 | + $list[] = implode ('=', $mod_row); | |
4347 | + } | |
4348 | + | |
4349 | + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?", 'name', array ( | |
4350 | + $list[0] | |
4351 | + )); | |
4352 | + $list[8] = implode (',', $f_row); | |
4353 | + | |
4354 | + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?", 'name', array ( | |
4355 | + $list[0] | |
4356 | + )); | |
4357 | + $list[9] = implode (',', $f_row); | |
4358 | + | |
4359 | + switch ($list[10]) | |
4360 | + { | |
4361 | + case 1 : | |
4362 | + $list[10] = 'ìóæñêîé'; | |
4363 | + break; | |
4364 | + case 2 : | |
4365 | + $list[10] = 'æåíñêèé'; | |
4366 | + break; | |
4367 | + case 3 : | |
4368 | + $list[10] = 'äåòñêèé'; | |
4369 | + break; | |
4370 | + case 4 : | |
4371 | + $list[10] = 'óíèñåêñ'; | |
4372 | + break; | |
4373 | + default : | |
4374 | + $list[10] = 'ìóæñêîé'; | |
4375 | + break; | |
4376 | + } | |
4377 | + | |
4378 | + $y_row = $this->db->getCol ("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?", 'name', array ( | |
4379 | + $list[0] | |
4380 | + )); | |
4381 | + $list[11] = implode (',', $y_row); | |
4382 | + | |
4383 | + $p_row = $this->db->getCol ("select pic_big from catalogs_gallery where product_id=?", 'pic_big', array ( | |
4384 | + $list[0] | |
4385 | + )); | |
4386 | + $list[20] = implode (',', $p_row); | |
4387 | + | |
4388 | + // print_r($list);exit; | |
4389 | + $p_res = $this->db->getAll ("select name,size,metka from catalogs_products_params where product_id=? order by id asc", array ( | |
4390 | + $list[0] | |
4391 | + )); | |
4392 | + $param = array (); | |
4393 | + foreach ($p_res as $row_p) | |
4394 | + { | |
4395 | + $param[] = implode ('*', $row_p); | |
4396 | + } | |
4397 | + $list[17] = implode ('=', $param); | |
4398 | + | |
4399 | + unset ($list[0]); | |
4400 | + unset ($list[1]); | |
4401 | + | |
4402 | + File_FGetCSV::fputcsv ($handle, $list, ';'); | |
4403 | + } | |
4404 | + | |
4405 | + fclose ($handle); | |
4406 | + | |
4407 | + $params = array ( | |
4408 | + 'file' => $tmpfname, | |
4409 | + 'contenttype' => 'application/xls', | |
4410 | + 'contentdisposition' => array ( | |
4411 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4412 | + 'price.csv' | |
4413 | + ), | |
4414 | + 'cache' => false | |
4415 | + ); | |
4416 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4417 | + if ($error === true) | |
4418 | + { | |
4419 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4420 | + } | |
4421 | + | |
4422 | + unlink ($tmpfname); | |
4423 | + } | |
4424 | + | |
4425 | + function exportModCSV () | |
4426 | + { | |
4427 | + $tmpfname = "tmp/price_mod.csv"; | |
4428 | + $handle = fopen ($tmpfname, "w"); | |
4429 | + $res = $this->db->getAll ('select m.code,p.cine,p.cine_last,m.active,null,m.prefix,m.is_update From catalogs_modifications m Left join catalogs_products p on p.id=m.product_id Order by m.id'); | |
4430 | + foreach ($res as $key => $row) | |
4431 | + { | |
4432 | + File_FGetCSV::fputcsv ($handle, $row, ';'); | |
4433 | + } | |
4434 | + fclose ($handle); | |
4435 | + $params = array ( | |
4436 | + 'file' => $tmpfname, | |
4437 | + 'contenttype' => 'application/xls', | |
4438 | + 'contentdisposition' => array ( | |
4439 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4440 | + 'file_1.csv' | |
4441 | + ), | |
4442 | + 'cache' => false | |
4443 | + ); | |
4444 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4445 | + if ($error === true) | |
4446 | + { | |
4447 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4448 | + } | |
4449 | + | |
4450 | + unlink ($tmpfname); | |
4451 | + $this->db->autoExecute ("catalogs_modifications", array ( | |
4452 | + 'is_update' => 0 | |
4453 | + ), DB_AUTOQUERY_UPDATE); | |
4454 | + } | |
4455 | + | |
4456 | + function exportUsersCSV () | |
4457 | + { | |
4458 | + $tmpfname = "tmp/users.csv"; | |
4459 | + $handle = fopen ($tmpfname, "w"); | |
4460 | + | |
4461 | + $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,summary,u.birthday,c.card | |
3186 | 4462 | FROM zlo_users AS u |
3187 | 4463 | LEFT JOIN card c ON c.user_id = u.id |
3188 | 4464 | LEFT JOIN zlo_users_group AS g ON u.group = g.id |
3189 | 4465 | LEFT JOIN (SELECT user_id AS order_user_id, sum( `total` ) AS `summary` FROM catalogs_orders group by user_id ) o |
3190 | 4466 | ON u.id = o.order_user_id |
3191 | 4467 | "; |
3192 | - $res = $this->db->getAll($sql); | |
3193 | - foreach($res as $key=>$row){ | |
3194 | - File_FGetCSV::fputcsv($handle,$row,';'); | |
3195 | - } | |
3196 | - fclose($handle); | |
3197 | - $params = array( | |
3198 | - 'file' => $tmpfname, | |
3199 | - 'contenttype' => 'application/xls', | |
3200 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'users.csv'), | |
3201 | - 'cache' => false | |
3202 | - ); | |
3203 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3204 | - if ($error === true) { | |
3205 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3206 | - } | |
3207 | - | |
3208 | - unlink($tmpfname); | |
3209 | - } | |
3210 | - | |
3211 | - function exportUsersBirdthCSV(){ | |
3212 | - $tmpfname = "tmp/usersBirdth.csv"; | |
3213 | - $handle = fopen($tmpfname, "w"); | |
3214 | - | |
3215 | - $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,u.birthday,c.card | |
4468 | + $res = $this->db->getAll ($sql); | |
4469 | + foreach ($res as $key => $row) | |
4470 | + { | |
4471 | + File_FGetCSV::fputcsv ($handle, $row, ';'); | |
4472 | + } | |
4473 | + fclose ($handle); | |
4474 | + $params = array ( | |
4475 | + 'file' => $tmpfname, | |
4476 | + 'contenttype' => 'application/xls', | |
4477 | + 'contentdisposition' => array ( | |
4478 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4479 | + 'users.csv' | |
4480 | + ), | |
4481 | + 'cache' => false | |
4482 | + ); | |
4483 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4484 | + if ($error === true) | |
4485 | + { | |
4486 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4487 | + } | |
4488 | + | |
4489 | + unlink ($tmpfname); | |
4490 | + } | |
4491 | + | |
4492 | + function exportUsersBirdthCSV () | |
4493 | + { | |
4494 | + $tmpfname = "tmp/usersBirdth.csv"; | |
4495 | + $handle = fopen ($tmpfname, "w"); | |
4496 | + | |
4497 | + $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,u.birthday,c.card | |
3216 | 4498 | FROM zlo_users AS u |
3217 | 4499 | LEFT JOIN card c ON c.user_id = u.id |
3218 | 4500 | LEFT JOIN zlo_users_group AS g ON u.group = g.id |
3219 | 4501 | WHERE DAYOFMONTH(u.birthday) >= '19' AND DAYOFMONTH(u.birthday) <= '28' and MONTH(u.birthday) = '10' |
3220 | 4502 | "; |
3221 | - $res = $this->db->getAll($sql); | |
3222 | - foreach($res as $key=>$row){ | |
3223 | - File_FGetCSV::fputcsv($handle,$row,';'); | |
3224 | - } | |
3225 | - fclose($handle); | |
3226 | - $params = array( | |
3227 | - 'file' => $tmpfname, | |
3228 | - 'contenttype' => 'application/xls', | |
3229 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'users.csv'), | |
3230 | - 'cache' => false | |
3231 | - ); | |
3232 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3233 | - if ($error === true) { | |
3234 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3235 | - } | |
3236 | - | |
3237 | - unlink($tmpfname); | |
3238 | - } | |
3239 | - | |
3240 | - function exportSeoF1CSV(){ | |
3241 | - $tmpfname = "tmp/seo_f1.csv"; | |
3242 | - $handle = fopen($tmpfname, "w"); | |
3243 | - $res = $this->db->getAll("select id,name,translit,name_h1 from catalogs_rubrics"); | |
3244 | - foreach($res as $key=>$row){ | |
3245 | - //$res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0])); | |
3246 | - //foreach($res_b as $row_b){ | |
3247 | - $list = array(); | |
3248 | - $f_res = $this->db->getAll("select id,prefix,name from catalogs_filters where rubric_id=?",array($row[0])); | |
3249 | - foreach($f_res as $f_row){ | |
3250 | - $list[0] = $row[0]; | |
3251 | - $list[1] = (strlen($row[3])>0) ? $row[3] : $row[1]; | |
3252 | - $list[2] = $f_row[2]; | |
3253 | - $list[3] = "http://extremstyle.ua/".$row[2]."-catalogs/filter;filter=f".$f_row[0]."_".$f_row[1]."/"; | |
3254 | - //$list[4] = $row_b[0]; | |
3255 | - File_FGetCSV::fputcsv($handle,$list,';'); | |
3256 | - } | |
3257 | - //} | |
3258 | - } | |
3259 | - | |
3260 | - | |
3261 | - $res = $this->db->getAll("select id,name,translit,name_h1 from catalogs_rubrics"); | |
3262 | - foreach($res as $key=>$row){ | |
3263 | - //$res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0])); | |
3264 | - //foreach($res_b as $row_b){ | |
3265 | - $list = array(); | |
3266 | - $f_res = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0])); | |
3267 | - foreach($f_res as $f_row){ | |
3268 | - if(!strlen($f_row[0]))continue; | |
3269 | - $list[0] = $row[0]; | |
3270 | - $list[1] = (strlen($row[3])>0) ? $row[3] : $row[1]; | |
3271 | - $list[2] = $f_row[0]; | |
3272 | - $list[3] = "http://extremstyle.ua/".$row[2]."-catalogs/filter;brend=".$f_row[0]."/"; | |
3273 | - //$list[4] = $row_b[0]; | |
3274 | - File_FGetCSV::fputcsv($handle,$list,';'); | |
3275 | - } | |
3276 | - //} | |
3277 | - } | |
3278 | - | |
3279 | - | |
3280 | - | |
3281 | - fclose($handle); | |
3282 | - $params = array( | |
3283 | - 'file' => $tmpfname, | |
3284 | - 'contenttype' => 'application/xls', | |
3285 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'seo_f1.csv'), | |
3286 | - 'cache' => false | |
3287 | - ); | |
3288 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3289 | - if ($error === true) { | |
3290 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3291 | - } | |
3292 | - | |
3293 | - unlink($tmpfname); | |
3294 | - } | |
3295 | - | |
3296 | - function exportSeoCSV(){ | |
3297 | - $tmpfname = "tmp/seo.csv"; | |
3298 | - $handle = fopen($tmpfname, "w"); | |
3299 | - $res = $this->db->getAll('select p.id,p.rubric_id,r.name_h1,null,r.list_name,b.name,p.name,null,p.cine, r.translit,p.translit,r.name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id'); | |
3300 | - foreach($res as $key=>$row){ | |
3301 | - $row[3] = $this->getFilterPh1($row[0]); | |
3302 | - if(!strlen($row[2]))$row[2] = $row[11]; | |
3303 | - $row[7] = "http://extremstyle.ua/".$row[9]."-catalogs/".$row[10]."-".$row[0]."/"; | |
3304 | - unset($row[9]);unset($row[10]);unset($row[11]); | |
3305 | - File_FGetCSV::fputcsv($handle,$row,';'); | |
3306 | - } | |
3307 | - fclose($handle); | |
3308 | - $params = array( | |
3309 | - 'file' => $tmpfname, | |
3310 | - 'contenttype' => 'application/xls', | |
3311 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'seo.csv'), | |
3312 | - 'cache' => false | |
3313 | - ); | |
3314 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3315 | - if ($error === true) { | |
3316 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3317 | - } | |
3318 | - | |
3319 | - unlink($tmpfname); | |
3320 | - } | |
3321 | - | |
3322 | - | |
3323 | - function exportProductsSeoCSV(){ | |
3324 | - $tmpfname = "tmp/products_seo.csv"; | |
3325 | - $handle = fopen($tmpfname, "w"); | |
3326 | - $res = $this->db->getAll('select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where b.name=?',array('Dakine')); | |
3327 | - foreach($res as $key=>$row){ | |
3328 | - $vowels = array("'05","'06","'07","'08","'09","'10", "'11", "'12", "'13", "'14", "'15", "'16","2005","2006","2007","2008","2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016",); | |
3329 | - $row[3] = $this->getFilterPh1($row[2]) .' '. str_replace($vowels, "", $row[3]); | |
3330 | - $row[8] = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/"; | |
3331 | - unset($row[6]);unset($row[7]); | |
3332 | - File_FGetCSV::fputcsv($handle,$row,';'); | |
3333 | - } | |
3334 | - fclose($handle); | |
3335 | - $params = array( | |
3336 | - 'file' => $tmpfname, | |
3337 | - 'contenttype' => 'application/xls', | |
3338 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'products_seo.csv'), | |
3339 | - 'cache' => false | |
3340 | - ); | |
3341 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3342 | - if ($error === true) { | |
3343 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3344 | - } | |
3345 | - | |
3346 | - unlink($tmpfname); | |
3347 | - } | |
3348 | - | |
3349 | - function exportProducts2SeoCSV(){ | |
3350 | - $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/cron/products_seo.csv"; | |
3351 | - $handle = fopen($tmpfname, "w"); | |
3352 | - $sql = 'select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id LEFT JOIN catalogs_keys_products_years ky ON ky.product_id=p.id LEFT JOIN catalogs_years y ON y.id=ky.year_id where p.count_modifications>0 and b.name=? and y.name in ("2013","2014","2015","2014-2015")'; | |
3353 | - $res = $this->db->getAll($sql,array('Dakine')); | |
3354 | - foreach($res as $key=>$row){ | |
3355 | - $vowels = array("'05","'06","'07","'08","'09","'10", "'11", "'12", "'13", "'14", "'15", "'16","2005","2006","2007","2008","2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016",); | |
3356 | - $row[3] = $this->getFilterPh1($row[2]) .' '. str_replace($vowels, "", $row[3]); | |
3357 | - $row[8] = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/"; | |
3358 | - unset($row[5]);unset($row[6]);unset($row[7]); | |
3359 | - File_FGetCSV::fputcsv($handle,$row,';'); | |
3360 | - } | |
3361 | - fclose($handle); | |
3362 | - | |
3363 | - } | |
3364 | - | |
3365 | - function exportProductsFeed(){ | |
3366 | - $tmpfname = "tmp/products_feed.csv"; | |
3367 | - $handle = fopen($tmpfname, "w"); | |
3368 | - $sql = 'select r.id,r.name,p.id,p.name,p.cine_last,r.translit,p.translit,r.list_name,p.pic,b.name,p.about,p.cine From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where p.count_modifications>0 and p.cine>0'; | |
3369 | - $res = $this->db->getAll($sql,array()); | |
3370 | - $list = array('ID','ID2','Item title','Destination URL','Image URL','Item subtitle','Item description','Item category','Price','Sale price','Contextual keywords','Item address'); | |
3371 | - File_FGetCSV::fputcsv($handle,$list,','); | |
3372 | - foreach($res as $key=>$row){ | |
3373 | - $url = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/"; | |
3374 | - $image = "http://extremstyle.ua/uploaded/pic/catalogs/products/".$row[8]; | |
3375 | - $subtitle = $row[1].' '.$row[9]; | |
3376 | - $list = array( | |
3377 | - $row[2],$row[2].'S',substr($row[3],0,12),$url,$image,substr($subtitle,0,12),"Ãàðàíòèÿ êà÷åñòâà",$row[1],round($row[11]).' UAH',round($row[4]).' UAH',$row[1].' '.$row[9], | |
3378 | - ); | |
3379 | - //print_r($list); | |
3380 | - unset($row[5]);unset($row[6]);unset($row[7]); | |
3381 | - File_FGetCSV::fputcsv($handle,$list,','); | |
3382 | - } | |
3383 | - fclose($handle); | |
3384 | - $params = array( | |
3385 | - 'file' => $tmpfname, | |
3386 | - 'contenttype' => 'application/xls', | |
3387 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'products_feed.csv'), | |
3388 | - 'cache' => false | |
3389 | - ); | |
3390 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3391 | - if ($error === true) { | |
3392 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3393 | - } | |
3394 | - | |
3395 | - unlink($tmpfname); | |
3396 | - } | |
3397 | - | |
3398 | - function exportOrdersCSV(){ | |
3399 | - $tmpfname = "tmp/orders.csv"; | |
3400 | - $handle = fopen($tmpfname, "w"); | |
3401 | - $res = $this->db->getAll('select o.id,o.name,o.email,o.adress,o.phone,o.total From catalogs_orders o LEFT JOIN zlo_users u ON u.id=o.user_id WHERE u.`group`=2 order by o.id desc'); | |
3402 | - foreach($res as $key=>$row){ | |
3403 | - $products = $this->db->getAll("select p.* from catalogs_orders_products op | |
4503 | + $res = $this->db->getAll ($sql); | |
4504 | + foreach ($res as $key => $row) | |
4505 | + { | |
4506 | + File_FGetCSV::fputcsv ($handle, $row, ';'); | |
4507 | + } | |
4508 | + fclose ($handle); | |
4509 | + $params = array ( | |
4510 | + 'file' => $tmpfname, | |
4511 | + 'contenttype' => 'application/xls', | |
4512 | + 'contentdisposition' => array ( | |
4513 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4514 | + 'users.csv' | |
4515 | + ), | |
4516 | + 'cache' => false | |
4517 | + ); | |
4518 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4519 | + if ($error === true) | |
4520 | + { | |
4521 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4522 | + } | |
4523 | + | |
4524 | + unlink ($tmpfname); | |
4525 | + } | |
4526 | + | |
4527 | + function exportSeoF1CSV () | |
4528 | + { | |
4529 | + $tmpfname = "tmp/seo_f1.csv"; | |
4530 | + $handle = fopen ($tmpfname, "w"); | |
4531 | + $res = $this->db->getAll ("select id,name,translit,name_h1 from catalogs_rubrics"); | |
4532 | + foreach ($res as $key => $row) | |
4533 | + { | |
4534 | + // $res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0])); | |
4535 | + // foreach($res_b as $row_b){ | |
4536 | + $list = array (); | |
4537 | + $f_res = $this->db->getAll ("select id,prefix,name from catalogs_filters where rubric_id=?", array ( | |
4538 | + $row[0] | |
4539 | + )); | |
4540 | + foreach ($f_res as $f_row) | |
4541 | + { | |
4542 | + $list[0] = $row[0]; | |
4543 | + $list[1] = (strlen ($row[3]) > 0) ? $row[3] : $row[1]; | |
4544 | + $list[2] = $f_row[2]; | |
4545 | + $list[3] = "http://extremstyle.ua/" . $row[2] . "-catalogs/filter;filter=f" . $f_row[0] . "_" . $f_row[1] . "/"; | |
4546 | + // $list[4] = $row_b[0]; | |
4547 | + File_FGetCSV::fputcsv ($handle, $list, ';'); | |
4548 | + } | |
4549 | + // } | |
4550 | + } | |
4551 | + | |
4552 | + $res = $this->db->getAll ("select id,name,translit,name_h1 from catalogs_rubrics"); | |
4553 | + foreach ($res as $key => $row) | |
4554 | + { | |
4555 | + // $res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0])); | |
4556 | + // foreach($res_b as $row_b){ | |
4557 | + $list = array (); | |
4558 | + $f_res = $this->db->getAll ("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id", array ( | |
4559 | + $row[0] | |
4560 | + )); | |
4561 | + foreach ($f_res as $f_row) | |
4562 | + { | |
4563 | + if (! strlen ($f_row[0])) | |
4564 | + continue; | |
4565 | + $list[0] = $row[0]; | |
4566 | + $list[1] = (strlen ($row[3]) > 0) ? $row[3] : $row[1]; | |
4567 | + $list[2] = $f_row[0]; | |
4568 | + $list[3] = "http://extremstyle.ua/" . $row[2] . "-catalogs/filter;brend=" . $f_row[0] . "/"; | |
4569 | + // $list[4] = $row_b[0]; | |
4570 | + File_FGetCSV::fputcsv ($handle, $list, ';'); | |
4571 | + } | |
4572 | + // } | |
4573 | + } | |
4574 | + | |
4575 | + fclose ($handle); | |
4576 | + $params = array ( | |
4577 | + 'file' => $tmpfname, | |
4578 | + 'contenttype' => 'application/xls', | |
4579 | + 'contentdisposition' => array ( | |
4580 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4581 | + 'seo_f1.csv' | |
4582 | + ), | |
4583 | + 'cache' => false | |
4584 | + ); | |
4585 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4586 | + if ($error === true) | |
4587 | + { | |
4588 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4589 | + } | |
4590 | + | |
4591 | + unlink ($tmpfname); | |
4592 | + } | |
4593 | + | |
4594 | + function exportSeoCSV () | |
4595 | + { | |
4596 | + $tmpfname = "tmp/seo.csv"; | |
4597 | + $handle = fopen ($tmpfname, "w"); | |
4598 | + $res = $this->db->getAll ('select p.id,p.rubric_id,r.name_h1,null,r.list_name,b.name,p.name,null,p.cine, r.translit,p.translit,r.name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id'); | |
4599 | + foreach ($res as $key => $row) | |
4600 | + { | |
4601 | + $row[3] = $this->getFilterPh1 ($row[0]); | |
4602 | + if (! strlen ($row[2])) | |
4603 | + $row[2] = $row[11]; | |
4604 | + $row[7] = "http://extremstyle.ua/" . $row[9] . "-catalogs/" . $row[10] . "-" . $row[0] . "/"; | |
4605 | + unset ($row[9]); | |
4606 | + unset ($row[10]); | |
4607 | + unset ($row[11]); | |
4608 | + File_FGetCSV::fputcsv ($handle, $row, ';'); | |
4609 | + } | |
4610 | + fclose ($handle); | |
4611 | + $params = array ( | |
4612 | + 'file' => $tmpfname, | |
4613 | + 'contenttype' => 'application/xls', | |
4614 | + 'contentdisposition' => array ( | |
4615 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4616 | + 'seo.csv' | |
4617 | + ), | |
4618 | + 'cache' => false | |
4619 | + ); | |
4620 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4621 | + if ($error === true) | |
4622 | + { | |
4623 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4624 | + } | |
4625 | + | |
4626 | + unlink ($tmpfname); | |
4627 | + } | |
4628 | + | |
4629 | + function exportProductsSeoCSV () | |
4630 | + { | |
4631 | + $tmpfname = "tmp/products_seo.csv"; | |
4632 | + $handle = fopen ($tmpfname, "w"); | |
4633 | + $res = $this->db->getAll ('select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where b.name=?', array ( | |
4634 | + 'Dakine' | |
4635 | + )); | |
4636 | + foreach ($res as $key => $row) | |
4637 | + { | |
4638 | + $vowels = array ( | |
4639 | + "'05", | |
4640 | + "'06", | |
4641 | + "'07", | |
4642 | + "'08", | |
4643 | + "'09", | |
4644 | + "'10", | |
4645 | + "'11", | |
4646 | + "'12", | |
4647 | + "'13", | |
4648 | + "'14", | |
4649 | + "'15", | |
4650 | + "'16", | |
4651 | + "2005", | |
4652 | + "2006", | |
4653 | + "2007", | |
4654 | + "2008", | |
4655 | + "2009", | |
4656 | + "2010", | |
4657 | + "2011", | |
4658 | + "2012", | |
4659 | + "2013", | |
4660 | + "2014", | |
4661 | + "2015", | |
4662 | + "2016" | |
4663 | + ); | |
4664 | + $row[3] = $this->getFilterPh1 ($row[2]) . ' ' . str_replace ($vowels, "", $row[3]); | |
4665 | + $row[8] = "http://extremstyle.ua/" . $row[5] . "-catalogs/" . $row[6] . "-" . $row[2] . "/"; | |
4666 | + unset ($row[6]); | |
4667 | + unset ($row[7]); | |
4668 | + File_FGetCSV::fputcsv ($handle, $row, ';'); | |
4669 | + } | |
4670 | + fclose ($handle); | |
4671 | + $params = array ( | |
4672 | + 'file' => $tmpfname, | |
4673 | + 'contenttype' => 'application/xls', | |
4674 | + 'contentdisposition' => array ( | |
4675 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4676 | + 'products_seo.csv' | |
4677 | + ), | |
4678 | + 'cache' => false | |
4679 | + ); | |
4680 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4681 | + if ($error === true) | |
4682 | + { | |
4683 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4684 | + } | |
4685 | + | |
4686 | + unlink ($tmpfname); | |
4687 | + } | |
4688 | + | |
4689 | + function exportProducts2SeoCSV () | |
4690 | + { | |
4691 | + $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/cron/products_seo.csv"; | |
4692 | + $handle = fopen ($tmpfname, "w"); | |
4693 | + $sql = 'select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id LEFT JOIN catalogs_keys_products_years ky ON ky.product_id=p.id LEFT JOIN catalogs_years y ON y.id=ky.year_id where p.count_modifications>0 and b.name=? and y.name in ("2013","2014","2015","2014-2015")'; | |
4694 | + $res = $this->db->getAll ($sql, array ( | |
4695 | + 'Dakine' | |
4696 | + )); | |
4697 | + foreach ($res as $key => $row) | |
4698 | + { | |
4699 | + $vowels = array ( | |
4700 | + "'05", | |
4701 | + "'06", | |
4702 | + "'07", | |
4703 | + "'08", | |
4704 | + "'09", | |
4705 | + "'10", | |
4706 | + "'11", | |
4707 | + "'12", | |
4708 | + "'13", | |
4709 | + "'14", | |
4710 | + "'15", | |
4711 | + "'16", | |
4712 | + "2005", | |
4713 | + "2006", | |
4714 | + "2007", | |
4715 | + "2008", | |
4716 | + "2009", | |
4717 | + "2010", | |
4718 | + "2011", | |
4719 | + "2012", | |
4720 | + "2013", | |
4721 | + "2014", | |
4722 | + "2015", | |
4723 | + "2016" | |
4724 | + ); | |
4725 | + $row[3] = $this->getFilterPh1 ($row[2]) . ' ' . str_replace ($vowels, "", $row[3]); | |
4726 | + $row[8] = "http://extremstyle.ua/" . $row[5] . "-catalogs/" . $row[6] . "-" . $row[2] . "/"; | |
4727 | + unset ($row[5]); | |
4728 | + unset ($row[6]); | |
4729 | + unset ($row[7]); | |
4730 | + File_FGetCSV::fputcsv ($handle, $row, ';'); | |
4731 | + } | |
4732 | + fclose ($handle); | |
4733 | + } | |
4734 | + | |
4735 | + function exportProductsFeed () | |
4736 | + { | |
4737 | + $tmpfname = "tmp/products_feed.csv"; | |
4738 | + $handle = fopen ($tmpfname, "w"); | |
4739 | + $sql = 'select r.id,r.name,p.id,p.name,p.cine_last,r.translit,p.translit,r.list_name,p.pic,b.name,p.about,p.cine From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where p.count_modifications>0 and p.cine>0'; | |
4740 | + $res = $this->db->getAll ($sql, array ()); | |
4741 | + $list = array ( | |
4742 | + 'ID', | |
4743 | + 'ID2', | |
4744 | + 'Item title', | |
4745 | + 'Destination URL', | |
4746 | + 'Image URL', | |
4747 | + 'Item subtitle', | |
4748 | + 'Item description', | |
4749 | + 'Item category', | |
4750 | + 'Price', | |
4751 | + 'Sale price', | |
4752 | + 'Contextual keywords', | |
4753 | + 'Item address' | |
4754 | + ); | |
4755 | + File_FGetCSV::fputcsv ($handle, $list, ','); | |
4756 | + foreach ($res as $key => $row) | |
4757 | + { | |
4758 | + $url = "http://extremstyle.ua/" . $row[5] . "-catalogs/" . $row[6] . "-" . $row[2] . "/"; | |
4759 | + $image = "http://extremstyle.ua/uploaded/pic/catalogs/products/" . $row[8]; | |
4760 | + $subtitle = $row[1] . ' ' . $row[9]; | |
4761 | + $list = array ( | |
4762 | + $row[2], | |
4763 | + $row[2] . 'S', | |
4764 | + substr ($row[3], 0, 12), | |
4765 | + $url, | |
4766 | + $image, | |
4767 | + substr ($subtitle, 0, 12), | |
4768 | + "Ãàðàíòèÿ êà÷åñòâà", | |
4769 | + $row[1], | |
4770 | + round ($row[11]) . ' UAH', | |
4771 | + round ($row[4]) . ' UAH', | |
4772 | + $row[1] . ' ' . $row[9] | |
4773 | + ); | |
4774 | + // print_r($list); | |
4775 | + unset ($row[5]); | |
4776 | + unset ($row[6]); | |
4777 | + unset ($row[7]); | |
4778 | + File_FGetCSV::fputcsv ($handle, $list, ','); | |
4779 | + } | |
4780 | + fclose ($handle); | |
4781 | + $params = array ( | |
4782 | + 'file' => $tmpfname, | |
4783 | + 'contenttype' => 'application/xls', | |
4784 | + 'contentdisposition' => array ( | |
4785 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4786 | + 'products_feed.csv' | |
4787 | + ), | |
4788 | + 'cache' => false | |
4789 | + ); | |
4790 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4791 | + if ($error === true) | |
4792 | + { | |
4793 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4794 | + } | |
4795 | + | |
4796 | + unlink ($tmpfname); | |
4797 | + } | |
4798 | + | |
4799 | + function exportOrdersCSV () | |
4800 | + { | |
4801 | + $tmpfname = "tmp/orders.csv"; | |
4802 | + $handle = fopen ($tmpfname, "w"); | |
4803 | + $res = $this->db->getAll ('select o.id,o.name,o.email,o.adress,o.phone,o.total From catalogs_orders o LEFT JOIN zlo_users u ON u.id=o.user_id WHERE u.`group`=2 order by o.id desc'); | |
4804 | + foreach ($res as $key => $row) | |
4805 | + { | |
4806 | + $products = $this->db->getAll ("select p.* from catalogs_orders_products op | |
3404 | 4807 | LEFT JOIN catalogs_modifications m ON m.code=op.code |
3405 | 4808 | LEFT JOIN catalogs_products p ON p.id=m.product_id |
3406 | - where op.order_id=? GROUP BY p.id",array($row[0]),DB_FETCHMODE_ASSOC); | |
3407 | - $arr_products = array(); | |
3408 | - foreach($products as $p){ | |
3409 | - $arr_products[] = $p['name']; | |
3410 | - } | |
3411 | - $row[6] = implode(', ',$arr_products); | |
3412 | - File_FGetCSV::fputcsv($handle,$row,';'); | |
3413 | - } | |
3414 | - fclose($handle); | |
3415 | - $params = array( | |
3416 | - 'file' => $tmpfname, | |
3417 | - 'contenttype' => 'application/xls', | |
3418 | - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'orders.csv'), | |
3419 | - 'cache' => false | |
3420 | - ); | |
3421 | - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë | |
3422 | - if ($error === true) { | |
3423 | - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
3424 | - } | |
3425 | - | |
3426 | - unlink($tmpfname); | |
3427 | - } | |
3428 | - | |
3429 | - function deleteProductParams($product_id){ | |
3430 | - $sql = "delete from catalogs_products_params where product_id=?"; | |
3431 | - $this->db->query($sql,array($product_id)); | |
3432 | - } | |
3433 | - | |
3434 | - function saveProductParams($product_id,$pruduct_params){ | |
3435 | - $this->deleteProductParams($product_id); | |
3436 | - $array_params = explode("=",$pruduct_params); | |
3437 | - foreach($array_params as $row){ | |
3438 | - $arr = explode('*',$row); | |
3439 | - $this->db->autoExecute("catalogs_products_params",array('product_id'=>$product_id,'name'=>$arr[0],'size'=>$arr[1],'metka'=>$arr[2]),DB_AUTOQUERY_INSERT); | |
3440 | - } | |
3441 | - } | |
3442 | - | |
3443 | - function getProductParams($product_id){ | |
3444 | - $sql = "select * from catalogs_products_params where product_id=? order by id"; | |
3445 | - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC); | |
3446 | - return $row; | |
3447 | - } | |
3448 | - | |
3449 | - function viewProductParams($product_id){ | |
3450 | - $this->tpl->assign('params',$this->getProductParams($product_id)); | |
3451 | - } | |
3452 | - | |
3453 | -/** | |
3454 | - * íóæíî äëÿ ïðîñìîòðà ïîâòîðåíèå ñòðîê â ôàéëå èìïîðòà | |
3455 | - */ | |
3456 | -function saveTmpProduct ($row, $product_id) | |
3457 | -{ | |
3458 | - if ($product_id > 0) | |
4809 | + where op.order_id=? GROUP BY p.id", array ( | |
4810 | + $row[0] | |
4811 | + ), DB_FETCHMODE_ASSOC); | |
4812 | + $arr_products = array (); | |
4813 | + foreach ($products as $p) | |
4814 | + { | |
4815 | + $arr_products[] = $p['name']; | |
4816 | + } | |
4817 | + $row[6] = implode (', ', $arr_products); | |
4818 | + File_FGetCSV::fputcsv ($handle, $row, ';'); | |
4819 | + } | |
4820 | + fclose ($handle); | |
4821 | + $params = array ( | |
4822 | + 'file' => $tmpfname, | |
4823 | + 'contenttype' => 'application/xls', | |
4824 | + 'contentdisposition' => array ( | |
4825 | + HTTP_DOWNLOAD_ATTACHMENT, | |
4826 | + 'orders.csv' | |
4827 | + ), | |
4828 | + 'cache' => false | |
4829 | + ); | |
4830 | + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë | |
4831 | + if ($error === true) | |
4832 | + { | |
4833 | + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè | |
4834 | + } | |
4835 | + | |
4836 | + unlink ($tmpfname); | |
4837 | + } | |
4838 | + | |
4839 | + function deleteProductParams ($product_id) | |
4840 | + { | |
4841 | + $sql = "delete from catalogs_products_params where product_id=?"; | |
4842 | + $this->db->query ($sql, array ( | |
4843 | + $product_id | |
4844 | + )); | |
4845 | + } | |
4846 | + | |
4847 | + function saveProductParams ($product_id, $pruduct_params) | |
4848 | + { | |
4849 | + $this->deleteProductParams ($product_id); | |
4850 | + $array_params = explode ("=", $pruduct_params); | |
4851 | + foreach ($array_params as $row) | |
4852 | + { | |
4853 | + $arr = explode ('*', $row); | |
4854 | + $this->db->autoExecute ("catalogs_products_params", array ( | |
4855 | + 'product_id' => $product_id, | |
4856 | + 'name' => $arr[0], | |
4857 | + 'size' => $arr[1], | |
4858 | + 'metka' => $arr[2] | |
4859 | + ), DB_AUTOQUERY_INSERT); | |
4860 | + } | |
4861 | + } | |
4862 | + | |
4863 | + function getProductParams ($product_id) | |
4864 | + { | |
4865 | + $sql = "select * from catalogs_products_params where product_id=? order by id"; | |
4866 | + $row = $this->db->getAll ($sql, array ( | |
4867 | + $product_id | |
4868 | + ), DB_FETCHMODE_ASSOC); | |
4869 | + return $row; | |
4870 | + } | |
4871 | + | |
4872 | + function viewProductParams ($product_id) | |
4873 | + { | |
4874 | + $this->tpl->assign ('params', $this->getProductParams ($product_id)); | |
4875 | + } | |
4876 | + | |
4877 | + /** | |
4878 | + * íóæíî äëÿ ïðîñìîòðà ïîâòîðåíèå ñòðîê â ôàéëå èìïîðòà | |
4879 | + */ | |
4880 | + | |
4881 | + function saveTmpProduct ($row, $product_id) | |
4882 | + { | |
4883 | + if ($product_id > 0) | |
4884 | + { | |
4885 | + $this->db->autoExecute ("catalogs_tmp_products", array ( | |
4886 | + 'name' => $row[3], | |
4887 | + 'product_id' => $product_id | |
4888 | + ), DB_AUTOQUERY_INSERT); | |
4889 | + } | |
4890 | + } | |
4891 | + | |
4892 | + function clearTmpProduct () | |
4893 | + { | |
4894 | + $sql = "TRUNCATE TABLE catalogs_tmp_products"; | |
4895 | + $this->db->query ($sql, array ()); | |
4896 | + } | |
4897 | + | |
4898 | + function viewTmpProducts () | |
4899 | + { | |
4900 | + $sql = " | |
4901 | + SELECT count( name ) AS cn, name | |
4902 | + FROM catalogs_tmp_products | |
4903 | + GROUP BY name | |
4904 | + ORDER BY name"; | |
4905 | + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
4906 | + $this->tpl->assign ('list', $row); | |
4907 | + $this->tpl->assign ('list_total', $this->db->getOne (" | |
4908 | + select count(*) | |
4909 | + from catalogs_tmp_products | |
4910 | + ")); | |
4911 | + } | |
4912 | + | |
4913 | + function deleteGalleryProduct ($id) | |
4914 | + { | |
4915 | + $sql = "select * from catalogs_gallery where product_id=?"; | |
4916 | + $res = $this->db->getAll ($sql, array ( | |
4917 | + $id | |
4918 | + ), DB_FETCHMODE_ASSOC); | |
4919 | + foreach ($res as $row) | |
4920 | + { | |
4921 | + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/gallery/{$row['pic']}"); | |
4922 | + $this->db->query ("delete from catalogs_gallery where id=?", array ( | |
4923 | + $row['id'] | |
4924 | + )); | |
4925 | + } | |
4926 | + } | |
4927 | + | |
4928 | + function saveGalleryPics ($product_id, $pruduct_gallery_pics) | |
4929 | + { | |
4930 | + $this->deleteGalleryProduct ($product_id); | |
4931 | + if (strlen ($pruduct_gallery_pics) > 0) | |
4932 | + { | |
4933 | + $arr = explode (",", $pruduct_gallery_pics); | |
4934 | + foreach ($arr as $pic) | |
4935 | + { | |
4936 | + $pic = trim ($pic); | |
4937 | + $id = $this->db->nextId ('mySequence_catalogs_gallery'); | |
4938 | + $fields_values = array ( | |
4939 | + 'id' => $id, | |
4940 | + 'name' => $pic, | |
4941 | + 'product_id' => $product_id | |
4942 | + ); | |
4943 | + $upload['pic'] = array ( | |
4944 | + 'tmp_name' => "./uploaded/pic/catalogs/products/big/$pic", | |
4945 | + 'name' => $pic | |
4946 | + ); | |
4947 | + $fields_values['pic'] = upload_ImageResize ($upload['pic'], array ( | |
4948 | + 'width' => "100", | |
4949 | + 'height' => "100", | |
4950 | + 'upload_path' => "./uploaded/pic/catalogs/products/gallery/" | |
4951 | + )); | |
4952 | + $fields_values['pic_big'] = $pic; | |
4953 | + | |
4954 | + $this->db->autoExecute ("catalogs_gallery", $fields_values, DB_AUTOQUERY_INSERT); | |
4955 | + } | |
4956 | + } | |
4957 | + } | |
4958 | + | |
4959 | + function importCSV ($upload) | |
3459 | 4960 | { |
3460 | - $this->db->autoExecute ("catalogs_tmp_products", array ( | |
3461 | - 'name' => $row [3], | |
3462 | - 'product_id' => $product_id | |
3463 | - ), DB_AUTOQUERY_INSERT); | |
4961 | + error_reporting (0); | |
4962 | + | |
4963 | + if ($upload['file']['name'] == "file_1.csv") | |
4964 | + { | |
4965 | + print "Îøèáêà! Ôàéë öåí!"; | |
4966 | + exit (); | |
4967 | + } | |
4968 | + | |
4969 | + // $arr_line = file($upload['file']['tmp_name']); | |
4970 | + $f = fopen ($upload['file']['tmp_name'], "r") or die ("Îøèáêà!"); | |
4971 | + | |
4972 | + // print"<pre>"; | |
4973 | + | |
4974 | + $this->clearTmpProduct (); | |
4975 | + | |
4976 | + for ($i = 0; $row_line = File_FGetCSV::fgetcsv ($f, 15000, ";"); $i ++) | |
4977 | + { | |
4978 | + // foreach($arr_line as $line){ | |
4979 | + // $row_line = fgetcsv(";",$line); | |
4980 | + $rubric_id = $this->import_saveRubric ($row_line[0], 0); | |
4981 | + $rubric_parent_id = $this->import_saveRubric ($row_line[1], $rubric_id); | |
4982 | + $brend_id = $this->import_saveBrend ($row_line[2], $rubric_parent_id); | |
4983 | + $pruduct_name = trim ($row_line[3]); | |
4984 | + $pruduct_about = trim ($row_line[4]); | |
4985 | + $pruduct_text = trim ($row_line[5]); | |
4986 | + $sex = explode (',', $row_line[8]); | |
4987 | + $pruduct_sex = array (); | |
4988 | + | |
4989 | + foreach ($sex as $s) | |
4990 | + { | |
4991 | + switch (trim ($s)) | |
4992 | + { | |
4993 | + case 'ìóæñêîé' : | |
4994 | + $pruduct_sex[] = 1; | |
4995 | + break; | |
4996 | + case 'æåíñêèé' : | |
4997 | + $pruduct_sex[] = 2; | |
4998 | + break; | |
4999 | + case 'äåòñêèé' : | |
5000 | + $pruduct_sex[] = 3; | |
5001 | + break; | |
5002 | + case 'óíèñåêñ' : | |
5003 | + $pruduct_sex[] = 4; | |
5004 | + break; | |
5005 | + default : | |
5006 | + $pruduct_sex[] = array (); | |
5007 | + break; | |
5008 | + } | |
5009 | + } | |
5010 | + | |
5011 | + $pruduct_date = trim ($row_line[9]); | |
5012 | + $pruduct_cine = trim ($row_line[10]); | |
5013 | + $pruduct_cine_last = trim ($row_line[11]); | |
5014 | + | |
5015 | + if ($pruduct_cine < 1) | |
5016 | + { | |
5017 | + $pruduct_cine = $pruduct_cine_last; | |
5018 | + $pruduct_cine_last = 0; | |
5019 | + } | |
5020 | + | |
5021 | + $pruduct_akcii_id = trim ($row_line[12]); | |
5022 | + $pruduct_strnumber = trim ($row_line[13]); | |
5023 | + $pruduct_active = trim ($row_line[14]); | |
5024 | + $pruduct_params = trim ($row_line[15]); | |
5025 | + $pruduct_pic_tmp = trim ($row_line[17]); | |
5026 | + $pruduct_gallery_pics = trim ($row_line[18]); | |
5027 | + $pruduct_video = trim ($row_line[16]); | |
5028 | + $pruduct_update_id = $this->getProductID_R ($pruduct_name, $rubric_parent_id); | |
5029 | + | |
5030 | + if ($pruduct_update_id > 0) | |
5031 | + { | |
5032 | + $row_product = $this->db->getRow (' | |
5033 | + select update_text, about, text | |
5034 | + from catalogs_products | |
5035 | + where id=?', array ( | |
5036 | + $pruduct_update_id | |
5037 | + ), DB_FETCHMODE_ASSOC); | |
5038 | + | |
5039 | + // íå îáíîâëÿòü ïðè èìïîðòå? | |
5040 | + // 0 - îáíîâëÿòü | |
5041 | + // 1 - íå îáíîâëÿòü | |
5042 | + if ($row_product['update_text'] == 1) | |
5043 | + { | |
5044 | + // about - ukr | |
5045 | + $pruduct_about = $row_product['about']; | |
5046 | + | |
5047 | + // text - ru | |
5048 | + $pruduct_text = $row_product['text']; | |
5049 | + } | |
5050 | + } | |
5051 | + | |
5052 | + $upload_pruduct = (strlen ($pruduct_pic_tmp) > 0 && is_file ("./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp")) ? array ( | |
5053 | + 'pic' => array ( | |
5054 | + 'tmp_name' => "./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp", | |
5055 | + 'name' => $pruduct_pic_tmp, | |
5056 | + 'big' => true | |
5057 | + ) | |
5058 | + ) : null; | |
5059 | + | |
5060 | + $product_id = $this->saveProduct (array ( | |
5061 | + 'rubric_id' => $rubric_parent_id, | |
5062 | + 'rubric_parent_id' => $rubric_parent_id, | |
5063 | + 'brend_id' => $brend_id, | |
5064 | + 'name' => $pruduct_name, | |
5065 | + 'about' => $pruduct_about, | |
5066 | + 'update_text' => isset ($row_product['update_text']) ? $row_product['update_text'] : 0, | |
5067 | + 'text' => $pruduct_text, | |
5068 | + 'video_code' => $pruduct_video, | |
5069 | + 'sex' => $pruduct_sex, | |
5070 | + 'date' => $pruduct_date, | |
5071 | + 'cine' => $pruduct_cine, | |
5072 | + 'cine_last' => $pruduct_cine_last, | |
5073 | + 'akcii_id' => $pruduct_akcii_id, | |
5074 | + 'strnumber' => $pruduct_strnumber, | |
5075 | + 'active' => $pruduct_active, | |
5076 | + 'meta_title' => $pruduct_name, | |
5077 | + 'meta_description' => $pruduct_name, | |
5078 | + 'meta_keywords' => $pruduct_name, | |
5079 | + 'meta_about' => $pruduct_name, | |
5080 | + 'filter' => $this->import_saveFilters ($rubric_parent_id, $row_line[6]), | |
5081 | + 'filter2' => $this->import_saveFilters2 ($rubric_parent_id, $row_line[7]), | |
5082 | + 'years' => $this->import_saveYear ($rubric_parent_id, $pruduct_date), | |
5083 | + 'akcii' => array (), | |
5084 | + 'update_id' => $pruduct_update_id | |
5085 | + ), $upload_pruduct); | |
5086 | + | |
5087 | + // print $pruduct_update_id;exit; | |
5088 | + $this->saveProductParams ($product_id, $pruduct_params); | |
5089 | + $this->saveGalleryPics ($product_id, $pruduct_gallery_pics); | |
5090 | + // íå óäàëÿåì ! | |
5091 | + // $this->deleteProductModifications ($product_id, true); | |
5092 | + $m_i = 0; | |
5093 | + | |
5094 | + for ($i = 19; $i < count ($row_line); $i ++) | |
5095 | + { | |
5096 | + $arr_mod = trim ($row_line[$i]); | |
5097 | + | |
5098 | + if (strlen ($arr_mod) > 0) | |
5099 | + { | |
5100 | + $row_mod = explode ("=", $arr_mod); | |
5101 | + | |
5102 | + $upload_mod = (strlen ($row_mod[3]) > 0 && is_file ("./uploaded/pic/catalogs/modifications/big/" . $row_mod[3])) ? array ( | |
5103 | + 'pic' => array ( | |
5104 | + 'tmp_name' => "./uploaded/pic/catalogs/modifications/big/" . $row_mod[3], | |
5105 | + 'name' => $row_mod[3], | |
5106 | + 'big' => true | |
5107 | + ) | |
5108 | + ) : null; | |
5109 | + | |
5110 | + $size_mod = explode ("*", $row_mod[1]); | |
5111 | + $rost = (isset ($size_mod[1])) ? $size_mod[1] : ''; | |
5112 | + | |
5113 | + // íàõîäèì modifications_id | |
5114 | + $modifications_id = $this->getModification ($product_id, $row_mod[0]); | |
5115 | + | |
5116 | + // ñîõðàíÿåì | |
5117 | + $this->SaveModification (array ( | |
5118 | + 'product_id' => $product_id, | |
5119 | + 'code' => $row_mod[0], | |
5120 | + 'size' => $size_mod[0], | |
5121 | + 'rost' => $rost, | |
5122 | + 'color' => $row_mod[2], | |
5123 | + 'active' => $row_mod[4], | |
5124 | + 'update_id' => (int) $modifications_id | |
5125 | + ), $upload_mod); | |
5126 | + | |
5127 | + if ($row_mod[4] > 0) | |
5128 | + { | |
5129 | + $m_i ++; | |
5130 | + } | |
5131 | + } | |
5132 | + } | |
5133 | + | |
5134 | + $this->updateProduct_countModification ($product_id, $m_i); | |
5135 | + | |
5136 | + // $this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]); | |
5137 | + // $strnumber = $this->getProductID($row_line[3]); $this->save_keysProductsFilters($id,$data); | |
5138 | + // print_r($row_line); | |
5139 | + | |
5140 | + $this->saveTmpProduct ($row_line, $product_id); | |
5141 | + if (($i % 30) == 0) | |
5142 | + { | |
5143 | + sleep (1); | |
5144 | + } | |
5145 | + } | |
5146 | + // print"</pre>"; | |
3464 | 5147 | } |
3465 | -} | |
3466 | - | |
3467 | -function clearTmpProduct () | |
3468 | -{ | |
3469 | - $sql = "TRUNCATE TABLE catalogs_tmp_products"; | |
3470 | - $this->db->query ($sql, array ()); | |
3471 | -} | |
3472 | - | |
3473 | -function viewTmpProducts () | |
3474 | -{ | |
3475 | - $sql = " | |
3476 | - SELECT count( name ) AS cn, name | |
3477 | - FROM catalogs_tmp_products | |
3478 | - GROUP BY name | |
3479 | - ORDER BY name"; | |
3480 | - $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
3481 | - $this->tpl->assign ('list', $row); | |
3482 | - $this->tpl->assign ('list_total', $this->db->getOne (" | |
3483 | - select count(*) | |
3484 | - from catalogs_tmp_products | |
3485 | - ")); | |
3486 | -} | |
3487 | - | |
3488 | - function deleteGalleryProduct($id){ | |
3489 | - $sql = "select * from catalogs_gallery where product_id=?"; | |
3490 | - $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); | |
3491 | - foreach($res as $row){ | |
3492 | - @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/gallery/{$row['pic']}"); | |
3493 | - $this->db->query("delete from catalogs_gallery where id=?",array($row['id'])); | |
5148 | + | |
5149 | + function importCSV_cine ($upload) | |
5150 | + { | |
5151 | + if ($upload['file']['name'] != "file_1.csv") | |
5152 | + { | |
5153 | + print "Îøèáêà! Òîëüêî file_1.csv"; | |
5154 | + exit (); | |
3494 | 5155 | } |
3495 | - } | |
3496 | - | |
3497 | - function saveGalleryPics($product_id,$pruduct_gallery_pics){ | |
3498 | - $this->deleteGalleryProduct($product_id); | |
3499 | - if(strlen($pruduct_gallery_pics)>0){ | |
3500 | - $arr = explode(",",$pruduct_gallery_pics); | |
3501 | - foreach($arr as $pic){ | |
3502 | - $pic = trim($pic); | |
3503 | - $id = $this->db->nextId('mySequence_catalogs_gallery'); | |
3504 | - $fields_values = array('id'=>$id,'name' => $pic,'product_id' => $product_id); | |
3505 | - $upload['pic'] = array('tmp_name'=>"./uploaded/pic/catalogs/products/big/$pic",'name'=>$pic); | |
3506 | - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"100",'height'=>"100",'upload_path'=>"./uploaded/pic/catalogs/products/gallery/")); | |
3507 | - $fields_values['pic_big'] = $pic; | |
3508 | - | |
3509 | - $this->db->autoExecute("catalogs_gallery",$fields_values,DB_AUTOQUERY_INSERT); | |
5156 | + | |
5157 | + $arr_line = file ($upload['file']['tmp_name']); | |
5158 | + | |
5159 | + // print"<pre>"; | |
5160 | + $i = 0; | |
5161 | + $mktime = mktime (); | |
5162 | + foreach ($arr_line as $line) | |
5163 | + { | |
5164 | + $row_line = explode (";", $line); | |
5165 | + $this->import_updateProductCine ($this->getModificationProduct_id ($row_line[0]), $row_line, $line, $mktime); | |
5166 | + | |
5167 | + if (($i % 30) == 0) | |
5168 | + { | |
5169 | + sleep (1); | |
5170 | + } | |
5171 | + | |
5172 | + $i ++; | |
3510 | 5173 | } |
5174 | + } | |
5175 | + | |
5176 | + function loadCSV_cine ($upload) | |
5177 | + { | |
5178 | + if ($upload['file']['name'] != "file_1.csv") | |
5179 | + { | |
5180 | + print "Îøèáêà! Òîëüêî file_1.csv"; | |
5181 | + exit (); | |
3511 | 5182 | } |
3512 | - } | |
3513 | - | |
3514 | - function importCSV ($upload) | |
3515 | - { | |
3516 | - error_reporting (0); | |
3517 | - | |
3518 | - if ($upload['file']['name'] == "file_1.csv") | |
3519 | - { | |
3520 | - print "Îøèáêà! Ôàéë öåí!"; | |
3521 | - exit (); | |
3522 | - } | |
3523 | - | |
3524 | - // $arr_line = file($upload['file']['tmp_name']); | |
3525 | - $f = fopen ($upload['file']['tmp_name'], "r") or die ("Îøèáêà!"); | |
3526 | - | |
3527 | - // print"<pre>"; | |
3528 | - | |
3529 | - $this->clearTmpProduct(); | |
3530 | - | |
3531 | - for ($i = 0; $row_line = File_FGetCSV::fgetcsv ($f, 15000, ";"); $i ++) | |
3532 | - { | |
3533 | - // foreach($arr_line as $line){ | |
3534 | - // $row_line = fgetcsv(";",$line); | |
3535 | - $rubric_id = $this->import_saveRubric ($row_line [0], 0); | |
3536 | - $rubric_parent_id = $this->import_saveRubric ($row_line [1], $rubric_id); | |
3537 | - $brend_id = $this->import_saveBrend ($row_line [2], $rubric_parent_id); | |
3538 | - $pruduct_name = trim ($row_line [3]); | |
3539 | - $pruduct_about = trim ($row_line [4]); | |
3540 | - $pruduct_text = trim ($row_line [5]); | |
3541 | - $sex = explode (',', $row_line [8]); | |
3542 | - $pruduct_sex = array (); | |
3543 | - | |
3544 | - foreach ($sex as $s) | |
3545 | - { | |
3546 | - switch (trim ($s)) | |
3547 | - { | |
3548 | - case 'ìóæñêîé' : | |
3549 | - $pruduct_sex [] = 1; | |
3550 | - break; | |
3551 | - case 'æåíñêèé' : | |
3552 | - $pruduct_sex [] = 2; | |
3553 | - break; | |
3554 | - case 'äåòñêèé' : | |
3555 | - $pruduct_sex [] = 3; | |
3556 | - break; | |
3557 | - case 'óíèñåêñ' : | |
3558 | - $pruduct_sex [] = 4; | |
3559 | - break; | |
3560 | - default : | |
3561 | - $pruduct_sex [] = array (); | |
3562 | - break; | |
3563 | - } | |
3564 | - } | |
3565 | - | |
3566 | - $pruduct_date = trim ($row_line [9]); | |
3567 | - $pruduct_cine = trim ($row_line [10]); | |
3568 | - $pruduct_cine_last = trim ($row_line [11]); | |
3569 | - | |
3570 | - if ($pruduct_cine < 1) | |
3571 | - { | |
3572 | - $pruduct_cine = $pruduct_cine_last; | |
3573 | - $pruduct_cine_last = 0; | |
3574 | - } | |
3575 | - | |
3576 | - $pruduct_akcii_id = trim ($row_line [12]); | |
3577 | - $pruduct_strnumber = trim ($row_line [13]); | |
3578 | - $pruduct_active = trim ($row_line [14]); | |
3579 | - $pruduct_params = trim ($row_line [15]); | |
3580 | - $pruduct_pic_tmp = trim ($row_line [17]); | |
3581 | - $pruduct_gallery_pics = trim ($row_line [18]); | |
3582 | - $pruduct_video = trim ($row_line [16]); | |
3583 | - $pruduct_update_id = $this->getProductID_R ($pruduct_name, $rubric_parent_id); | |
3584 | - | |
3585 | - if ($pruduct_update_id > 0) | |
3586 | - { | |
3587 | - $row_product = $this->db->getRow (' | |
3588 | - select update_text, about, text | |
3589 | - from catalogs_products | |
3590 | - where id=?', array ( | |
3591 | - $pruduct_update_id | |
3592 | - ), | |
3593 | - DB_FETCHMODE_ASSOC | |
3594 | - ); | |
3595 | - | |
3596 | - // íå îáíîâëÿòü ïðè èìïîðòå? | |
3597 | - // 0 - îáíîâëÿòü | |
3598 | - // 1 - íå îáíîâëÿòü | |
3599 | - if ($row_product['update_text'] == 1) | |
3600 | - { | |
3601 | - // about - ukr | |
3602 | - $pruduct_about = $row_product['about']; | |
3603 | - | |
3604 | - // text - ru | |
3605 | - $pruduct_text = $row_product['text']; | |
3606 | - } | |
3607 | - } | |
3608 | - | |
3609 | - $upload_pruduct = (strlen ($pruduct_pic_tmp) > 0 && is_file ("./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp")) ? array ( | |
3610 | - 'pic' => array ( | |
3611 | - 'tmp_name' => "./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp", | |
3612 | - 'name' => $pruduct_pic_tmp, | |
3613 | - 'big' => true | |
3614 | - ) | |
3615 | - ) : null; | |
3616 | - | |
3617 | - $product_id = $this->saveProduct (array ( | |
3618 | - 'rubric_id' => $rubric_parent_id, | |
3619 | - 'rubric_parent_id' => $rubric_parent_id, | |
3620 | - 'brend_id' => $brend_id, | |
3621 | - 'name' => $pruduct_name, | |
3622 | - 'about' => $pruduct_about, | |
3623 | - 'update_text' => isset ($row_product['update_text']) ? $row_product['update_text'] : 0, | |
3624 | - 'text' => $pruduct_text, | |
3625 | - 'video_code' => $pruduct_video, | |
3626 | - 'sex' => $pruduct_sex, | |
3627 | - 'date' => $pruduct_date, | |
3628 | - 'cine' => $pruduct_cine, | |
3629 | - 'cine_last' => $pruduct_cine_last, | |
3630 | - 'akcii_id' => $pruduct_akcii_id, | |
3631 | - 'strnumber' => $pruduct_strnumber, | |
3632 | - 'active' => $pruduct_active, | |
3633 | - 'meta_title' => $pruduct_name, | |
3634 | - 'meta_description' => $pruduct_name, | |
3635 | - 'meta_keywords' => $pruduct_name, | |
3636 | - 'meta_about' => $pruduct_name, | |
3637 | - 'filter' => $this->import_saveFilters ($rubric_parent_id, $row_line [6]), | |
3638 | - 'filter2' => $this->import_saveFilters2 ($rubric_parent_id, $row_line [7]), | |
3639 | - 'years' => $this->import_saveYear ($rubric_parent_id, $pruduct_date), | |
3640 | - 'akcii' => array (), | |
3641 | - 'update_id' => $pruduct_update_id | |
3642 | - ), $upload_pruduct); | |
3643 | - | |
3644 | - // print $pruduct_update_id;exit; | |
3645 | - $this->saveProductParams ($product_id, $pruduct_params); | |
3646 | - $this->saveGalleryPics ($product_id, $pruduct_gallery_pics); | |
3647 | - // íå óäàëÿåì ! | |
3648 | - //$this->deleteProductModifications ($product_id, true); | |
3649 | - $m_i = 0; | |
3650 | - | |
3651 | - for ($i = 19; $i < count ($row_line); $i ++) | |
3652 | - { | |
3653 | - $arr_mod = trim ($row_line [$i]); | |
3654 | - | |
3655 | - if (strlen ($arr_mod) > 0) | |
3656 | - { | |
3657 | - $row_mod = explode ("=", $arr_mod); | |
3658 | - | |
3659 | - $upload_mod = (strlen ($row_mod [3]) > 0 && is_file ("./uploaded/pic/catalogs/modifications/big/" . $row_mod [3])) ? array ( | |
3660 | - 'pic' => array ( | |
3661 | - 'tmp_name' => "./uploaded/pic/catalogs/modifications/big/" . $row_mod [3], | |
3662 | - 'name' => $row_mod [3], | |
3663 | - 'big' => true | |
3664 | - ) | |
3665 | - ) : null; | |
3666 | - | |
3667 | - $size_mod = explode ("*", $row_mod [1]); | |
3668 | - $rost = (isset ($size_mod [1])) ? $size_mod [1] : ''; | |
3669 | - | |
3670 | - // íàõîäèì modifications_id | |
3671 | - $modifications_id = $this->getModification($product_id, $row_mod[0]); | |
3672 | - | |
3673 | - // ñîõðàíÿåì | |
3674 | - $this->SaveModification (array ( | |
3675 | - 'product_id' => $product_id, | |
3676 | - 'code' => $row_mod [0], | |
3677 | - 'size' => $size_mod [0], | |
3678 | - 'rost' => $rost, | |
3679 | - 'color' => $row_mod [2], | |
3680 | - 'active' => $row_mod [4], | |
3681 | - 'update_id' => (int)$modifications_id | |
3682 | - ), $upload_mod); | |
3683 | - | |
3684 | - if ($row_mod[4] > 0) | |
3685 | - { | |
3686 | - $m_i ++; | |
3687 | - } | |
3688 | - } | |
3689 | - } | |
3690 | - | |
3691 | - $this->updateProduct_countModification ($product_id, $m_i); | |
3692 | - | |
3693 | - // $this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]); | |
3694 | - // $strnumber = $this->getProductID($row_line[3]); $this->save_keysProductsFilters($id,$data); | |
3695 | - // print_r($row_line); | |
3696 | - | |
3697 | - $this->saveTmpProduct ($row_line, $product_id); | |
3698 | - if (($i % 30) == 0) | |
3699 | - { | |
3700 | - sleep (1); | |
3701 | - } | |
3702 | - } | |
3703 | - // print"</pre>"; | |
3704 | - } | |
3705 | - | |
3706 | - function importCSV_cine ($upload) | |
3707 | - { | |
3708 | - if ($upload['file']['name'] != "file_1.csv") | |
3709 | - { | |
3710 | - print "Îøèáêà! Òîëüêî file_1.csv"; | |
3711 | - exit; | |
3712 | - } | |
3713 | - | |
3714 | - $arr_line = file ($upload['file']['tmp_name']); | |
3715 | - | |
3716 | - //print"<pre>"; | |
3717 | - $i = 0; | |
3718 | - $mktime = mktime(); | |
3719 | - foreach ($arr_line as $line) | |
3720 | - { | |
3721 | - $row_line = explode (";", $line); | |
3722 | - $this->import_updateProductCine($this->getModificationProduct_id ($row_line[0]), $row_line, $line, $mktime); | |
3723 | - | |
3724 | - if (($i % 30) == 0) | |
3725 | - { | |
3726 | - sleep (1); | |
3727 | - } | |
3728 | - | |
3729 | - $i++; | |
3730 | - } | |
3731 | -} | |
3732 | - | |
3733 | -function loadCSV_cine($upload) | |
3734 | -{ | |
3735 | - if ($upload['file']['name'] != "file_1.csv") | |
5183 | + | |
5184 | + $file = $_SERVER['DOCUMENT_ROOT'] . "/cron/file_1.csv"; | |
5185 | + | |
5186 | + // echo $file; | |
5187 | + // exit; | |
5188 | + | |
5189 | + move_uploaded_file ($upload['file']['tmp_name'], $file); | |
5190 | + } | |
5191 | + | |
5192 | + function is_loadCSV_cine () | |
3736 | 5193 | { |
3737 | - print "Îøèáêà! Òîëüêî file_1.csv"; | |
3738 | - exit; | |
5194 | + $is = is_file ($_SERVER['DOCUMENT_ROOT'] . '/cron/file_1.csv'); | |
5195 | + $this->tpl->assign ('is', $is); | |
3739 | 5196 | } |
3740 | 5197 | |
3741 | - $file = $_SERVER['DOCUMENT_ROOT'] . "/cron/file_1.csv"; | |
3742 | - | |
3743 | - //echo $file; | |
3744 | - //exit; | |
3745 | - | |
3746 | - move_uploaded_file ($upload['file']['tmp_name'], $file); | |
3747 | -} | |
3748 | - | |
3749 | -function is_loadCSV_cine() | |
3750 | -{ | |
3751 | - $is = is_file($_SERVER['DOCUMENT_ROOT'] . '/cron/file_1.csv'); | |
3752 | - $this->tpl->assign('is', $is); | |
3753 | -} | |
3754 | - | |
3755 | -function CronImportCSV_cine($upload) | |
3756 | -{ | |
3757 | - $this->importCSV_cine ($upload); | |
3758 | -} | |
3759 | - | |
3760 | -function updateCountModificationProducts () | |
3761 | -{ | |
3762 | - $res = $this->db->getAll(" | |
5198 | + function CronImportCSV_cine ($upload) | |
5199 | + { | |
5200 | + $this->importCSV_cine ($upload); | |
5201 | + } | |
5202 | + | |
5203 | + function updateCountModificationProducts () | |
5204 | + { | |
5205 | + $res = $this->db->getAll (" | |
3763 | 5206 | select id |
3764 | 5207 | from catalogs_products |
3765 | 5208 | ", array (), DB_FETCHMODE_ASSOC); |
3766 | - | |
3767 | - $i = 0; | |
3768 | - | |
3769 | - foreach ($res as $row) | |
3770 | - { | |
3771 | - $count = $this->db->getOne (" | |
5209 | + | |
5210 | + $i = 0; | |
5211 | + | |
5212 | + foreach ($res as $row) | |
5213 | + { | |
5214 | + $count = $this->db->getOne (" | |
3772 | 5215 | select count(*) |
3773 | 5216 | from catalogs_modifications |
3774 | 5217 | where product_id=? and active>0", array ( |
3775 | - $row['id'] | |
3776 | - ) | |
3777 | - ); | |
3778 | - | |
3779 | - $this->db->autoExecute ("catalogs_products", array ( | |
3780 | - 'count_modifications' => $count | |
3781 | - ), DB_AUTOQUERY_UPDATE, "id='" . $row['id'] . "'"); | |
3782 | - | |
3783 | - $i ++; | |
5218 | + $row['id'] | |
5219 | + )); | |
5220 | + | |
5221 | + $this->db->autoExecute ("catalogs_products", array ( | |
5222 | + 'count_modifications' => $count | |
5223 | + ), DB_AUTOQUERY_UPDATE, "id='" . $row['id'] . "'"); | |
5224 | + | |
5225 | + $i ++; | |
5226 | + } | |
3784 | 5227 | } |
3785 | -} | |
3786 | - | |
3787 | - function config_update($id,$value){ | |
3788 | - $this->db->autoExecute("catalogs_config",array('value'=>$value),DB_AUTOQUERY_UPDATE,"id='".$id."'"); | |
3789 | - } | |
3790 | - | |
3791 | - function view_config_value($id){ | |
3792 | - $r = $this->db->getOne("select value from catalogs_config where id=?",$id); | |
3793 | - $this->tpl->assign("config",$r); | |
3794 | - return $r; | |
3795 | - } | |
3796 | - | |
3797 | - function addViewProduct($product_id){ | |
5228 | + | |
5229 | + function config_update ($id, $value) | |
5230 | + { | |
5231 | + $this->db->autoExecute ("catalogs_config", array ( | |
5232 | + 'value' => $value | |
5233 | + ), DB_AUTOQUERY_UPDATE, "id='" . $id . "'"); | |
5234 | + } | |
5235 | + | |
5236 | + function view_config_value ($id) | |
5237 | + { | |
5238 | + $r = $this->db->getOne ("select value from catalogs_config where id=?", $id); | |
5239 | + $this->tpl->assign ("config", $r); | |
5240 | + return $r; | |
5241 | + } | |
5242 | + | |
5243 | + function addViewProduct ($product_id) | |
5244 | + { | |
3798 | 5245 | $i = 0; |
3799 | - foreach($_SESSION['view_product'] as $id){ | |
3800 | - if($product_id==$id)$i++; | |
5246 | + foreach ($_SESSION['view_product'] as $id) | |
5247 | + { | |
5248 | + if ($product_id == $id) | |
5249 | + $i ++; | |
3801 | 5250 | } |
3802 | - if($i==0)$_SESSION['view_product'][] = $product_id; | |
3803 | - } | |
3804 | - | |
3805 | - function viewUserProducts($limit = "all"){ //unset($_SESSION['view_product']); | |
3806 | - if(isset($_SESSION['view_product']) && count($_SESSION['view_product'])>0){ | |
3807 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
5251 | + if ($i == 0) | |
5252 | + $_SESSION['view_product'][] = $product_id; | |
5253 | + } | |
5254 | + | |
5255 | + function viewUserProducts ($limit = "all") | |
5256 | + { // unset($_SESSION['view_product']); | |
5257 | + if (isset ($_SESSION['view_product']) && count ($_SESSION['view_product']) > 0) | |
5258 | + { | |
5259 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
3808 | 5260 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
3809 | 5261 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
3810 | - WHERE catalogs_products.id IN (".implode(",",$_SESSION['view_product']).") "; | |
3811 | - if($limit != "all")$sql .= "LIMIT ".$limit; | |
3812 | - $res = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); | |
3813 | - $this->tpl->assign("products_view",$res); | |
3814 | - } | |
3815 | - } | |
3816 | - | |
3817 | - function viewSimilarProducts($product_id,$brend,$rubric_id,$mods){ | |
3818 | - IF($brend == 'Dakine'){ | |
3819 | - $rub_arr = array(14071,14069,14070,14072); | |
3820 | - unset($rub_arr[array_search('rubric_id', $rub_arr)]); | |
3821 | - | |
3822 | - if(count($mods)>1){ | |
3823 | - $r = array(); | |
3824 | - foreach($mods as $key=>$mod){ | |
3825 | - $r[$key]['color'] = $mod['color']; | |
3826 | - $row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC); | |
3827 | - $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
5262 | + WHERE catalogs_products.id IN (" . implode (",", $_SESSION['view_product']) . ") "; | |
5263 | + if ($limit != "all") | |
5264 | + $sql .= "LIMIT " . $limit; | |
5265 | + $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); | |
5266 | + $this->tpl->assign ("products_view", $res); | |
5267 | + } | |
5268 | + } | |
5269 | + | |
5270 | + function viewSimilarProducts ($product_id, $brend, $rubric_id, $mods) | |
5271 | + { | |
5272 | + IF ($brend == 'Dakine') | |
5273 | + { | |
5274 | + $rub_arr = array ( | |
5275 | + 14071, | |
5276 | + 14069, | |
5277 | + 14070, | |
5278 | + 14072 | |
5279 | + ); | |
5280 | + unset ($rub_arr[array_search ('rubric_id', $rub_arr)]); | |
5281 | + | |
5282 | + if (count ($mods) > 1) | |
5283 | + { | |
5284 | + $r = array (); | |
5285 | + foreach ($mods as $key => $mod) | |
5286 | + { | |
5287 | + $r[$key]['color'] = $mod['color']; | |
5288 | + $row = $this->db->getRow ("select * from catalogs_products where id=?", array ( | |
5289 | + $product_id | |
5290 | + ), DB_FETCHMODE_ASSOC); | |
5291 | + $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
3828 | 5292 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
3829 | 5293 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
3830 | 5294 | LEFT JOIN catalogs_modifications m ON m.product_id=catalogs_products.id |
3831 | - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5"; | |
3832 | - $r[$key]["products_similar_prev"] = $this->db->getAll($sql,array($row['cine'],$brend,$mod['color']),DB_FETCHMODE_ASSOC); | |
3833 | - | |
3834 | - | |
3835 | - $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
5295 | + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5"; | |
5296 | + $r[$key]["products_similar_prev"] = $this->db->getAll ($sql, array ( | |
5297 | + $row['cine'], | |
5298 | + $brend, | |
5299 | + $mod['color'] | |
5300 | + ), DB_FETCHMODE_ASSOC); | |
5301 | + | |
5302 | + $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
3836 | 5303 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
3837 | 5304 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
3838 | 5305 | LEFT JOIN catalogs_modifications m ON m.product_id=catalogs_products.id |
3839 | - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5"; | |
3840 | - $r[$key]["products_similar_next"] = $this->db->getAll($sql,array($row['cine'],$brend,$mod['color']),DB_FETCHMODE_ASSOC); | |
3841 | - | |
3842 | - | |
3843 | - } | |
3844 | -//print_r($r); | |
3845 | -$this->tpl->assign("products_similar",$r); | |
3846 | - } | |
3847 | - else{ | |
3848 | - | |
3849 | - $row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC); | |
3850 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
5306 | + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5"; | |
5307 | + $r[$key]["products_similar_next"] = $this->db->getAll ($sql, array ( | |
5308 | + $row['cine'], | |
5309 | + $brend, | |
5310 | + $mod['color'] | |
5311 | + ), DB_FETCHMODE_ASSOC); | |
5312 | + } | |
5313 | + // print_r($r); | |
5314 | + $this->tpl->assign ("products_similar", $r); | |
5315 | + } | |
5316 | + else | |
5317 | + { | |
5318 | + | |
5319 | + $row = $this->db->getRow ("select * from catalogs_products where id=?", array ( | |
5320 | + $product_id | |
5321 | + ), DB_FETCHMODE_ASSOC); | |
5322 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
3851 | 5323 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
3852 | 5324 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
3853 | - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5"; | |
3854 | - $res = $this->db->getAll($sql,array($row['cine'],$brend),DB_FETCHMODE_ASSOC); | |
3855 | - $this->tpl->assign("products_similar_prev",$res); | |
3856 | - | |
3857 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
5325 | + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5"; | |
5326 | + $res = $this->db->getAll ($sql, array ( | |
5327 | + $row['cine'], | |
5328 | + $brend | |
5329 | + ), DB_FETCHMODE_ASSOC); | |
5330 | + $this->tpl->assign ("products_similar_prev", $res); | |
5331 | + | |
5332 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
3858 | 5333 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
3859 | 5334 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
3860 | - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5"; | |
3861 | - $res = $this->db->getAll($sql,array($row['cine'],$brend),DB_FETCHMODE_ASSOC); | |
3862 | - $this->tpl->assign("products_similar_next",$res); | |
3863 | - } | |
3864 | - } else{ | |
3865 | - $row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC); | |
3866 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
5335 | + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5"; | |
5336 | + $res = $this->db->getAll ($sql, array ( | |
5337 | + $row['cine'], | |
5338 | + $brend | |
5339 | + ), DB_FETCHMODE_ASSOC); | |
5340 | + $this->tpl->assign ("products_similar_next", $res); | |
5341 | + } | |
5342 | + } | |
5343 | + else | |
5344 | + { | |
5345 | + $row = $this->db->getRow ("select * from catalogs_products where id=?", array ( | |
5346 | + $product_id | |
5347 | + ), DB_FETCHMODE_ASSOC); | |
5348 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
3867 | 5349 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
3868 | 5350 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
3869 | 5351 | WHERE catalogs_products.rubric_id=? and catalogs_products.count_modifications>0 and catalogs_products.cine<? Order by catalogs_products.cine DESC LIMIT 5"; |
3870 | - $res = $this->db->getAll($sql,array($row['rubric_id'],$row['cine']),DB_FETCHMODE_ASSOC); | |
3871 | - $this->tpl->assign("products_similar_prev",$res); | |
3872 | - | |
3873 | - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
5352 | + $res = $this->db->getAll ($sql, array ( | |
5353 | + $row['rubric_id'], | |
5354 | + $row['cine'] | |
5355 | + ), DB_FETCHMODE_ASSOC); | |
5356 | + $this->tpl->assign ("products_similar_prev", $res); | |
5357 | + | |
5358 | + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products | |
3874 | 5359 | LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id |
3875 | 5360 | LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id |
3876 | 5361 | WHERE catalogs_products.rubric_id=? and catalogs_products.count_modifications>0 and catalogs_products.cine>? Order by catalogs_products.cine DESC LIMIT 5"; |
3877 | - $res = $this->db->getAll($sql,array($row['rubric_id'],$row['cine']),DB_FETCHMODE_ASSOC); | |
3878 | - $this->tpl->assign("products_similar_next",$res); | |
3879 | - } | |
3880 | - } | |
3881 | - | |
3882 | - function displayCatalogsCurs(){ | |
3883 | - $this->tpl->assign("tpl",'catalogs_curs.tpl'); | |
3884 | - } | |
3885 | - | |
3886 | - function displayCatalogs(){ | |
3887 | - $this->tpl->assign("tpl",'catalogs.tpl'); | |
3888 | - } | |
3889 | - | |
3890 | - function displayProducts(){ | |
3891 | - $this->tpl->assign("tpl",'catalogs_product-list.tpl'); | |
3892 | - } | |
3893 | - | |
3894 | - function displayProductsTops(){ | |
3895 | - $this->tpl->assign("tpl",'catalogs_products_tops.tpl'); | |
3896 | - } | |
3897 | - | |
3898 | - function displayProductsHits(){ | |
3899 | - $this->tpl->assign("tpl",'catalogs_products_hits.tpl'); | |
3900 | - } | |
3901 | - | |
3902 | - function displayProductsHitsAll(){ | |
3903 | - $this->tpl->assign("tpl",'catalogs_products_hits_all.tpl'); | |
3904 | - } | |
3905 | - | |
3906 | - function displayBasket($count_products,$cine_products,$cine_products_discount,$discount){ | |
3907 | - $this->tpl->assign("count_products",$count_products); | |
3908 | - $this->tpl->assign("cine_products",$cine_products); | |
3909 | - $this->tpl->assign("cine_products_discount",$cine_products_discount); | |
3910 | - $this->tpl->assign("discount",$discount); | |
3911 | - $this->tpl->display('basket.tpl'); | |
3912 | - } | |
3913 | - | |
3914 | - function displayProduct(){ | |
3915 | - $this->tpl->assign("tpl",'catalogs_product.tpl'); | |
3916 | - } | |
3917 | - | |
3918 | - function displayProductBasket(){ | |
3919 | - $this->tpl->assign("tpl",'catalogs_basket.tpl'); | |
3920 | - } | |
3921 | - | |
3922 | - function displayBrends(){ | |
3923 | - $this->tpl->assign("tpl",'catalogs_brends.tpl'); | |
3924 | - } | |
3925 | - | |
3926 | - function displayBrend(){ | |
3927 | - $this->tpl->assign("tpl",'catalogs_brend.tpl'); | |
3928 | - } | |
3929 | - | |
3930 | - function displayCities(){ | |
3931 | - $this->tpl->assign("tpl",'catalogs_cities.tpl'); | |
3932 | - } | |
3933 | - | |
3934 | - function displayProductBasketSend(){ | |
3935 | - $this->tpl->assign("tpl",'catalogs_basket_send.tpl'); | |
3936 | - } | |
3937 | - | |
3938 | - function displayReg(){ | |
3939 | - $this->tpl->assign("tpl",'catalogs_reg.tpl'); | |
3940 | - } | |
3941 | - | |
3942 | - function displayEditUser(){ | |
3943 | - $this->tpl->assign("tpl",'catalogs_user_edit.tpl'); | |
3944 | - } | |
3945 | - | |
3946 | - function displayNoPsw(){ | |
3947 | - $this->tpl->assign("tpl",'catalogs_nopsw.tpl'); | |
3948 | - } | |
3949 | - | |
3950 | - function displayOrders(){ | |
3951 | - $this->tpl->assign("tpl",'catalogs_orders.tpl'); | |
3952 | - } | |
3953 | - | |
3954 | - function displayOrder(){ | |
3955 | - $this->tpl->assign("tpl",'catalogs_order.tpl'); | |
3956 | - } | |
3957 | - | |
3958 | - function displayUsers(){ | |
3959 | - $this->tpl->assign("tpl",'catalogs_users.tpl'); | |
3960 | - } | |
3961 | - | |
3962 | - function displayUser(){ | |
3963 | - $this->tpl->assign("tpl",'catalogs_user.tpl'); | |
3964 | - } | |
3965 | - | |
3966 | - function displayFilters(){ | |
3967 | - $this->tpl->assign("tpl",'catalogs_filters.tpl'); | |
3968 | - } | |
3969 | - | |
3970 | - function displayFilters2(){ | |
3971 | - $this->tpl->assign("tpl",'catalogs_filters2.tpl'); | |
3972 | - } | |
3973 | - | |
3974 | - function displayYears(){ | |
3975 | - $this->tpl->assign("tpl",'catalogs_years.tpl'); | |
3976 | - } | |
3977 | - | |
3978 | - function displayWinProducts(){ | |
3979 | - $this->tpl->display('catalogs_win_products.tpl'); | |
3980 | - } | |
3981 | - | |
3982 | - function displayModifications(){ | |
3983 | - $this->tpl->assign("tpl",'catalogs_modifications.tpl'); | |
3984 | - } | |
3985 | - | |
3986 | - function displayImport(){ | |
3987 | - $this->tpl->assign("tpl",'catalogs_import.tpl'); | |
3988 | - } | |
3989 | - | |
3990 | - function displayImportCine(){ | |
3991 | - $this->tpl->assign("tpl",'catalogs_import_cine.tpl'); | |
3992 | - } | |
3993 | - | |
3994 | - function displayAkcii(){ | |
3995 | - $this->tpl->assign("tpl",'catalogs_akcii.tpl'); | |
3996 | - } | |
3997 | - | |
3998 | - function displayCompare(){ | |
3999 | - $this->tpl->assign("tpl",'catalogs_compare.tpl'); | |
4000 | - } | |
4001 | - | |
4002 | - function displayTmpProducts(){ | |
4003 | - $this->tpl->assign("tpl",'catalogs_tmp_products.tpl'); | |
4004 | - } | |
4005 | - | |
4006 | -} | |
4007 | -?> | |
4008 | 5362 | \ No newline at end of file |
5363 | + $res = $this->db->getAll ($sql, array ( | |
5364 | + $row['rubric_id'], | |
5365 | + $row['cine'] | |
5366 | + ), DB_FETCHMODE_ASSOC); | |
5367 | + $this->tpl->assign ("products_similar_next", $res); | |
5368 | + } | |
5369 | + } | |
5370 | + | |
5371 | + function displayCatalogsCurs () | |
5372 | + { | |
5373 | + $this->tpl->assign ("tpl", 'catalogs_curs.tpl'); | |
5374 | + } | |
5375 | + | |
5376 | + function displayCatalogs () | |
5377 | + { | |
5378 | + $this->tpl->assign ("tpl", 'catalogs.tpl'); | |
5379 | + } | |
5380 | + | |
5381 | + function displayProducts () | |
5382 | + { | |
5383 | + $this->tpl->assign ("tpl", 'catalogs_product-list.tpl'); | |
5384 | + } | |
5385 | + | |
5386 | + function displayProductsTops () | |
5387 | + { | |
5388 | + $this->tpl->assign ("tpl", 'catalogs_products_tops.tpl'); | |
5389 | + } | |
5390 | + | |
5391 | + function displayProductsHits () | |
5392 | + { | |
5393 | + $this->tpl->assign ("tpl", 'catalogs_products_hits.tpl'); | |
5394 | + } | |
5395 | + | |
5396 | + function displayProductsHitsAll () | |
5397 | + { | |
5398 | + $this->tpl->assign ("tpl", 'catalogs_products_hits_all.tpl'); | |
5399 | + } | |
5400 | + | |
5401 | + function displayBasket ($count_products, $cine_products, $cine_products_discount, $discount) | |
5402 | + { | |
5403 | + $this->tpl->assign ("count_products", $count_products); | |
5404 | + $this->tpl->assign ("cine_products", $cine_products); | |
5405 | + $this->tpl->assign ("cine_products_discount", $cine_products_discount); | |
5406 | + $this->tpl->assign ("discount", $discount); | |
5407 | + $this->tpl->display ('basket.tpl'); | |
5408 | + } | |
5409 | + | |
5410 | + function displayProduct () | |
5411 | + { | |
5412 | + $this->tpl->assign ("tpl", 'catalogs_product.tpl'); | |
5413 | + } | |
5414 | + | |
5415 | + function displayProductBasket () | |
5416 | + { | |
5417 | + $this->tpl->assign ("tpl", 'catalogs_basket.tpl'); | |
5418 | + } | |
5419 | + | |
5420 | + function displayBrends () | |
5421 | + { | |
5422 | + $this->tpl->assign ("tpl", 'catalogs_brends.tpl'); | |
5423 | + } | |
5424 | + | |
5425 | + function displayBrend () | |
5426 | + { | |
5427 | + $this->tpl->assign ("tpl", 'catalogs_brend.tpl'); | |
5428 | + } | |
5429 | + | |
5430 | + function displayCities () | |
5431 | + { | |
5432 | + $this->tpl->assign ("tpl", 'catalogs_cities.tpl'); | |
5433 | + } | |
5434 | + | |
5435 | + function displayProductBasketSend () | |
5436 | + { | |
5437 | + $this->tpl->assign ("tpl", 'catalogs_basket_send.tpl'); | |
5438 | + } | |
5439 | + | |
5440 | + function displayReg () | |
5441 | + { | |
5442 | + $this->tpl->assign ("tpl", 'catalogs_reg.tpl'); | |
5443 | + } | |
5444 | + | |
5445 | + function displayEditUser () | |
5446 | + { | |
5447 | + $this->tpl->assign ("tpl", 'catalogs_user_edit.tpl'); | |
5448 | + } | |
5449 | + | |
5450 | + function displayNoPsw () | |
5451 | + { | |
5452 | + $this->tpl->assign ("tpl", 'catalogs_nopsw.tpl'); | |
5453 | + } | |
5454 | + | |
5455 | + function displayOrders () | |
5456 | + { | |
5457 | + $this->tpl->assign ("tpl", 'catalogs_orders.tpl'); | |
5458 | + } | |
5459 | + | |
5460 | + function displayOrder () | |
5461 | + { | |
5462 | + $this->tpl->assign ("tpl", 'catalogs_order.tpl'); | |
5463 | + } | |
5464 | + | |
5465 | + function displayUsers () | |
5466 | + { | |
5467 | + $this->tpl->assign ("tpl", 'catalogs_users.tpl'); | |
5468 | + } | |
5469 | + | |
5470 | + function displayUser () | |
5471 | + { | |
5472 | + $this->tpl->assign ("tpl", 'catalogs_user.tpl'); | |
5473 | + } | |
5474 | + | |
5475 | + function displayFilters () | |
5476 | + { | |
5477 | + $this->tpl->assign ("tpl", 'catalogs_filters.tpl'); | |
5478 | + } | |
5479 | + | |
5480 | + function displayFilters2 () | |
5481 | + { | |
5482 | + $this->tpl->assign ("tpl", 'catalogs_filters2.tpl'); | |
5483 | + } | |
5484 | + | |
5485 | + function displayYears () | |
5486 | + { | |
5487 | + $this->tpl->assign ("tpl", 'catalogs_years.tpl'); | |
5488 | + } | |
5489 | + | |
5490 | + function displayWinProducts () | |
5491 | + { | |
5492 | + $this->tpl->display ('catalogs_win_products.tpl'); | |
5493 | + } | |
5494 | + | |
5495 | + function displayModifications () | |
5496 | + { | |
5497 | + $this->tpl->assign ("tpl", 'catalogs_modifications.tpl'); | |
5498 | + } | |
5499 | + | |
5500 | + function displayImport () | |
5501 | + { | |
5502 | + $this->tpl->assign ("tpl", 'catalogs_import.tpl'); | |
5503 | + } | |
5504 | + | |
5505 | + function displayImportCine () | |
5506 | + { | |
5507 | + $this->tpl->assign ("tpl", 'catalogs_import_cine.tpl'); | |
5508 | + } | |
5509 | + | |
5510 | + function displayAkcii () | |
5511 | + { | |
5512 | + $this->tpl->assign ("tpl", 'catalogs_akcii.tpl'); | |
5513 | + } | |
5514 | + | |
5515 | + function displayCompare () | |
5516 | + { | |
5517 | + $this->tpl->assign ("tpl", 'catalogs_compare.tpl'); | |
5518 | + } | |
5519 | + | |
5520 | + function displayTmpProducts () | |
5521 | + { | |
5522 | + $this->tpl->assign ("tpl", 'catalogs_tmp_products.tpl'); | |
5523 | + } | |
5524 | +} | |
4009 | 5525 | \ No newline at end of file | ... | ... |