Commit 639b0c95c8d46d371ac4743dd62fa5f3426c6f4b

Authored by andryeyev
1 parent abf79446

удалил мусор

Showing 2 changed files with 0 additions and 3558 deletions   Show diff stats
libs/catalogs.class_.php deleted
1   -<?php
2   -class Catalogs{
3   - var $db = null;
4   - var $tpl = null;
5   - var $error = null;
6   - var $photo_id = null;
7   -
8   -
9   - function Catalogs(&$db,&$tpl,&$error){
10   - $this->db = &$db;
11   - $this->tpl = &$tpl;
12   - $this->error = &$error;
13   - }
14   -
15   -
16   - function trim(&$data){
17   - foreach($data as $key=>$value){
18   - if(is_array($value))$this->trim($value);
19   - else $data[$key] = stripslashes(trim($value));
20   - }
21   - }
22   -
23   -
24   - function valid($data,$upload = null){
25   -
26   - if(isset($data['name'])){
27   - if( !preg_match("/.{1,100}/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ.";
28   - }
29   -
30   - if(isset($data['about_min'])){
31   - if( !preg_match("/.+/is",$data['about_min']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Êðàòêîå îïèñàíèå.";
32   - }
33   - /*
34   - if(isset($data['text'])){
35   - if( !preg_match("/.+/is",$data['text']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ïîëíîå îïèñàíèå.";
36   - } */
37   -/*
38   - if(isset($data['cine'])){
39   - if( !preg_match("/[0-9]+/",$data['cine']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Öåíà, òîëüêî öèôðû.";
40   - } */
41   -
42   - if(isset($upload['pic']['name']) && $upload['pic']['tmp_name']){
43   - $type = substr(strrchr($upload['pic']['name'],"."),1);
44   - if( !preg_match("/^(jpeg|jpg|gif|png|bmp)$/i",$type) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif.";
45   - }
46   -
47   - if(isset($upload['file']['name'])){
48   - if( !preg_match("/\.csv$/i",$upload['file']['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ CSV ôàéë, òîëüêî csv.";
49   - }
50   -
51   -
52   - if(isset($data['order_name'])){
53   - if( !preg_match("/.{1,100}/i",$data['order_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
54   - }
55   -
56   - if(isset($data['order_adress'])){
57   - if( !preg_match("/.{1,200}/i",$data['order_adress']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Àäðåñ (Ìàêñèìóì 200 ñèìâîëîâ).";
58   - }
59   -
60   - if(isset($data['order_phone2'])&& strlen($data['order_phone2'])>0){
61   - if( !preg_match("/.{1,20}/i",$data['order_phone2']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ).";
62   - }
63   -
64   - if(isset($data['order_phone'])){
65   -if( trim($data['order_phone']) == "" ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX).";
66   - }
67   -
68   - if(isset($data['delivery']) && $data['delivery']==0){
69   - $this->error[] = "Îøèáêà ââîäà ïîëÿ Äîñòàâêà.";
70   - }
71   -
72   - if(isset($data['user_name'])){
73   - if( !preg_match("/.{1,100}/i",$data['user_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
74   - }
75   -
76   - if(isset($data['user_email'])){
77   - if( !preg_match("/.{1,80}/i",$data['user_email']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø e-mail (Ìàêñèìóì 80 ñèìâîëîâ).";
78   - }
79   -
80   - if(isset($data['user_login'])){
81   - if( !preg_match("/.{1,100}/i",$data['user_login']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ëîãèí (Ìàêñèìóì 100 ñèìâîëîâ).";
82   - elseif( $this->isLoginUser($data['user_login']) ) $this->error[] = "Îøèáêà òàêîé Ëîãèí óæå åñòü!";
83   - }
84   -
85   - if(isset($data['you_login'])){
86   - if( !$this->isLoginUser($data['you_login']) ) $this->error[] = "Òàêîãî ËÎÃÈÍÀ íåò â áàçå äàííûõ ñàéòà!";
87   - }
88   -
89   - if(isset($data['user_psw'])){
90   - if( !preg_match("/.{1,100}/i",$data['user_psw']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ïàðîëü (Ìàêñèìóì 100 ñèìâîëîâ).";
91   - }
92   -
93   - return ( count($this->error) ) ? true : false;
94   - }
95   -
96   - function deleteRubric($id,$field="id"){
97   - $sql = "select pic,id,parent_id from catalogs_rubrics where $field=?";
98   - $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
99   - foreach($res as $row){
100   - @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/rubrics/{$row['pic']}");
101   - $sql = "delete from catalogs_rubrics where id=?";
102   - $this->db->query($sql,array($row['id']));
103   - $this->deleteFiltersRubric_id($row['id']);
104   - $this->deleteYearsRubric_id($row['id']);
105   - $this->deleteProductsRubric($row['id']);
106   - $this->deleteRubric($row['id'],"parent_id");
107   - }
108   - }
109   -
110   - function deleteProductPics($id,$pics = array('pic_big','pic')){
111   - $sql = "select pic_big,pic from catalogs_products where id=?";
112   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
113   - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}");
114   - if(in_array('pic',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/{$row['pic']}");
115   - }
116   -
117   - function deleteProduct($id){
118   - $this->deleteProductPics($id);
119   - $sql = "delete from catalogs_products where id=?";
120   - $this->db->query($sql,array($id));
121   - $this->delete_keysProductsFilters($id);
122   - $this->delete_keysProductsAkcii($id);
123   - $this->delete_keysProductsYears($id);
124   - $this->delete_keysProductsCities($id);
125   - $this->deleteProductModifications($id);
126   - }
127   -
128   - function deleteProductsRubric($id){
129   - $res = $this->db->getAll("select id from catalogs_products where rubric_id=?",array($id),DB_FETCHMODE_ASSOC);
130   - foreach($res as $row){
131   - $this->deleteProduct($row['id']);
132   - }
133   - }
134   -
135   -
136   - function PhotosCheck($id_s,$check_s = array()){
137   - $sql = "UPDATE gallery SET active = ? WHERE id =?";
138   -
139   - foreach($id_s as $id){
140   - $this->db->query($sql,array(0,$id));
141   - }
142   - if(count($check_s)){
143   - foreach($check_s as $id){
144   - $this->db->query($sql,array(1,$id));
145   - }
146   - }
147   - }
148   -
149   - function viewRubrics($id = 0,$parent_id = 0){ // print $parent_id."<br />";
150   - global $rubrics;
151   - //$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";
152   -$sql = "select a.*,(select b.translit from catalogs_rubrics b where b.parent_id=a.id order by b.sort limit 1) as r_pid2,(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";
153   -
154   -$res = $this->db->query($sql,array($id));
155   - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
156   - $rubrics[] = $row; //print $row['id']."<br />";
157   -
158   - if(in_array($row['id'],$this->getParentIdRubric($parent_id))){$this->viewRubrics($row['id']);}
159   - // if($row['level']==0){$this->viewRubrics($row['id']);}
160   - }
161   - $this->tpl->assign("rubrics",$rubrics);
162   - }
163   -
164   - function getParentIdRubric($id){
165   - //$ids = array();
166   - global $ids;
167   - if(!count($ids))$ids = array();
168   - while($id>0){
169   - $row = $this->db->getRow('select id,parent_id from catalogs_rubrics where id=?',array($id),DB_FETCHMODE_ASSOC);
170   - //if(isset($row['id']))
171   - $ids[] = $row['id'];
172   - $id = $row['parent_id'];
173   - } //print_r($ids);
174   - // sort($ids);
175   - return $ids;
176   - }
177   -
178   - function viewRubricsAll($id = 0){
179   - global $rubrics;
180   - $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc";
181   - $res = $this->db->query($sql,array($id));
182   - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
183   - $rubrics[] = $row;
184   - $this->viewRubricsAll($row['id']);
185   - }
186   - $this->tpl->assign("rubrics",$rubrics);
187   - }
188   -
189   -
190   - function viewRubrics_begin($item = 'parents'){
191   - $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=? order by a.sort asc";
192   - $row = $this->db->getAll($sql,array(0),DB_FETCHMODE_ASSOC);
193   - foreach($row as $key=>$value){
194   - if($item=='parents'){
195   - $row[$key]['parents'] = $this->db->getAll("select * from catalogs_rubrics where parent_id=? order by sort asc",array($value['id']),DB_FETCHMODE_ASSOC);
196   - }elseif($item=='brends'){
197   - $row[$key]['brends'] = $this->db->getAll("select * from catalogs_brends where rubric_id in (select id from catalogs_rubrics where parent_id=? or id=?) group by name",array($value['id'],$value['id']),DB_FETCHMODE_ASSOC);
198   - }
199   - }
200   - $this->tpl->assign("catalogs_rubrics_begin",$row);
201   - }
202   -
203   - function viewRubrics_parent($parent_id = 0){
204   - $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc";
205   - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC);
206   - $this->tpl->assign("catalogs_rubrics_parent",$row);
207   - }
208   -
209   - function viewRubrics_parent2($rub_id){
210   - $parent_id = $this->getRubricParent($rub_id);
211   - if($parent_id==0)$parent_id = $rub_id;
212   - $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc";
213   - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC);
214   - $this->tpl->assign("catalogs_rubrics_parent2",$row);
215   - }
216   -
217   - function viewRubricOne($id,&$row){
218   - $sql = "select * from catalogs_rubrics where id=?";
219   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
220   - $this->tpl->assign('rubric',$row);
221   - }
222   -
223   - function getRubricName($id){
224   - $sql = "select name from catalogs_rubrics where id=?";
225   - return $this->db->getOne($sql,array($id));
226   - }
227   -
228   - function getRubricParent($id){
229   - $sql = "select parent_id from catalogs_rubrics where id=?";
230   - return $this->db->getOne($sql,array($id));
231   - }
232   -
233   - function SaveRubric($data,$upload){
234   - $table_name = "catalogs_rubrics";
235   -
236   -if(trim($data['translit']) == '') $data['translit'] = translit($data['name']);
237   -
238   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
239   - $parent_id = (isset($data['parent_id']) ? $data['parent_id'] : 0);
240   - $fields_values = array('parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1),'sort' => $data['sort'],'name' => $data['name'],'list_name' => $data['list_name'],'sort_cost' => $data['sort_cost'],'meta_title' => $data['meta_title'],'meta_description' => $data['meta_description'],'meta_keywords' => $data['meta_keywords'],'meta_about' => $data['meta_about'],'translit' => $data['translit']);
241   - /*
242   - if($upload['pic']['tmp_name']){
243   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/catalogs/rubrics/"));
244   - } */
245   -
246   - if($upload['pic']['tmp_name']){
247   - if($data['update_id']>0)$this->deletePicRubric($data['update_id']);
248   - $uploadfile = "./uploaded/pic/catalogs/rubrics/";
249   - $type = substr(strrchr($upload['pic']['name'],"."),1);
250   - $uploadname = mktime() . "." . $type;
251   - if (!move_uploaded_file($_FILES['pic']['tmp_name'], $uploadfile . $uploadname))print"Îøèáêà ïðè çàêà÷êå ôàéëà!";
252   - $fields_values['pic'] = $uploadname;
253   - }
254   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
255   - }
256   -
257   - function deletePicRubric($id){
258   - $sql = "select pic from catalogs_rubrics where id=?";
259   - $rub = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
260   - @unlink("./uploaded/pic/catalogs/rubrics/{$rub['pic']}");
261   - }
262   -
263   - function getLevelRubric($id){
264   - $level = $this->db->getOne("select level from catalogs_rubrics where id=?",array($id));
265   - return ($level==null)? -1 : $level;
266   - }
267   -
268   - function saveUser($data){
269   - $table_name = "catalogs_users";
270   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
271   - $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());
272   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
273   - }
274   -
275   - function updateUser($data){
276   - $table_name = "catalogs_users";
277   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
278   - $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']);
279   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
280   - }
281   -
282   - function updateUserID($data,$id){
283   - $table_name = "catalogs_users";
284   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
285   - $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']);
286   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$id}");
287   - }
288   -
289   - function deleteUser($id){
290   - $this->db->query("delete from catalogs_users where id=?",array($id));
291   - $res_order_id = $this->db->getRow("select id from catalogs_orders where user_id=?",array($id),DB_FETCHMODE_ASSOC);
292   - if(count($res_order_id)){
293   - foreach($res_order_id as $_id){
294   - $this->db->query("delete from catalogs_orders where id=?",array($_id));
295   - $this->db->query("delete from catalogs_orders_products where order_id=?",array($_id));
296   - }}
297   - }
298   -
299   - function isLoginUser($login){
300   - return $this->db->getOne("select id from catalogs_users where login=?",array($login));
301   - }
302   -
303   - function sendLoginInfo($login){
304   - $user = $this->db->getRow("select * from catalogs_users where login=?",array($login),DB_FETCHMODE_ASSOC);
305   - $mail = new PHPMailer();
306   - $mail->CharSet = "windows-1251";
307   - $mail->From = "shop@eltrade.com.ua";
308   - $mail->FromName = "shop@eltrade.com.ua";
309   - $mail->AddAddress($user['email'], $user['name']);
310   - $mail->Subject = "Àêêàóíò ýêñòðèì";
311   - $msg = "";
312   - $msg .= "Çäðàâñòâóéòå: ".$user['name'];
313   - $msg .= "<br />";
314   - $msg .= "Âàø ëîãèí: ".$user['login'];
315   - $msg .= "<br>";
316   - $msg .= "Âàø ïàðîëü: ".$user['psw'];
317   - $msg .= "<br>";
318   - $msg .= "Ñ óâàæåíèåì, shop@eltrade.com.ua";
319   -
320   - $mail->MsgHTML($msg);
321   -
322   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
323   - $mail->ClearAddresses();
324   - $mail->ClearAttachments();
325   - }
326   -
327   - function isUser($login,$psw){
328   - $row = $this->db->getRow("select * from catalogs_users where login=? AND psw=?",array($login,$psw),DB_FETCHMODE_ASSOC);
329   - $this->tpl->assign('user_service',$row);
330   - return $row['id'];
331   - }
332   -
333   - function viewUser($id){
334   - $sql = "select * from catalogs_users where id=?";
335   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
336   - $this->tpl->assign('user',$row);
337   - }
338   -
339   - function getUserDiscount($id){
340   - return $this->db->getOne("select discount from catalogs_users where id=?",array($id));
341   - }
342   -
343   - function viewUsers(){
344   - $sql = "SELECT catalogs_users. *, COUNT(catalogs_orders.user_id) as count_orders
345   -FROM catalogs_users LEFT JOIN catalogs_orders ON catalogs_orders.user_id=catalogs_users.id
346   -GROUP BY catalogs_users.id
347   -ORDER BY catalogs_users.mktime DESC";
348   -
349   - $pagerOptions = Array(
350   - 'mode' => 'Sliding',
351   - 'delta' => 6,
352   - 'perPage' => 10,
353   - 'linkClass'=>"link_class",
354   - 'curPageLinkClassName'=>"link_class_active",
355   - 'spacesBeforeSeparator' => 1,
356   - 'spacesAfterSeparator' => 1
357   - );
358   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
359   -
360   - $this->tpl->assign('usersData', $res);
361   - }
362   -
363   - function viewModifications($product_id){
364   - $sql = "select * from catalogs_modifications where product_id=? order by id desc";
365   - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
366   - $this->tpl->assign('modifications', $row);
367   - }
368   -
369   - function viewModificationsProduct($product_id){
370   - $sql = "select * from catalogs_modifications where product_id=? and active>0 order by id desc";
371   - // $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";
372   - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
373   - $this->tpl->assign('modifications', $row);
374   - }
375   -
376   - function viewModificationOne($id){
377   - $sql = "select * from catalogs_modifications where id=?";
378   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
379   - $this->tpl->assign('modification', $row);
380   - }
381   -
382   - function getModificationProduct_id($code){
383   - return $this->db->getOne("select product_id from catalogs_modifications where code=?",array($code));
384   - }
385   -
386   - function SaveModification($data,$upload){
387   - $table_name = "catalogs_modifications";
388   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
389   - $fields_values = array('product_id'=>$data['product_id'],'code'=>$data['code'],'size' => $data['size'],'color' => $data['color'],'active' => $data['active']);
390   - if(isset($data['delete_pic'])){if($data['update_id']>0){$this->deleteModificationPics($data['update_id']);}$fields_values['pic']=null;$fields_values['pic_big']=null;}
391   - if($upload['pic']['tmp_name']){
392   - if($data['update_id']>0){
393   - $delete_pics = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?array('pic'):array('pic','pic_big');
394   - $this->deleteModificationPics($data['update_id'],$delete_pics);
395   - }
396   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"144",'height'=>"144",'upload_path'=>"./uploaded/pic/catalogs/modifications/"));
397   - $fields_values['pic_big'] = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?$upload['pic']['name']:upload_ImageResize($upload['pic'],array('width'=>"500",'height'=>"500",'upload_path'=>"./uploaded/pic/catalogs/modifications/big/"));
398   - }
399   -
400   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id='{$data['update_id']}'");
401   - return $id;
402   - }
403   -
404   - function deleteModification($id){
405   - $this->deleteModificationPics($id);
406   - $this->db->query("delete from catalogs_modifications where id=?",array($id));
407   - }
408   -
409   - function deleteProductModifications($product_id,$nopic = false){
410   - IF($nopic==false){
411   - $sql = "select * from catalogs_modifications where product_id=?";
412   - $res = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
413   - foreach($res as $row){
414   - $this->deleteModificationPics($row['id']);
415   - }
416   - }
417   - $this->db->query("delete from catalogs_modifications where product_id=?",array($product_id));
418   - }
419   -
420   - function deleteModificationPics($id,$pics = array('pic_big','pic')){
421   - $sql = "select pic,pic_big from catalogs_modifications where id=?";
422   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
423   - if(in_array('pic',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/{$row['pic']}");
424   - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}");
425   - }
426   -
427   - function ProductClick($id){
428   - $this->db->query("update catalogs_products set click=click+1 where id='$id'");
429   - }
430   -
431   - function SaveProduct($data,$upload){
432   - $table_name = "catalogs_products";
433   -
434   -if(trim(@$data['translit'])=="") $data['translit'] = @totranslit($data['name']);
435   -
436   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
437   - $id = ($data['update_id']>0) ? $data['update_id'] : $this->db->nextId('mySequence_'.$table_name);
438   - $fields_values = array('id'=>$id,'rubric_id'=>$data['rubric_id'],'rubric_parent_id'=>$this->getRubricParent($data['rubric_id']),'brend_id'=>$data['brend_id'],'name' => $data['name'],'about' => $data['about'],'text' => $data['text'],'strnumber' => $data['strnumber'],'cine'=>$data['cine'],'cine_last'=>$data['cine_last'],'sex'=>$data['sex'], 'mktime' => mktime(),'meta_title' => $data['meta_title'],'meta_description' => $data['meta_description'],'meta_keywords' => $data['meta_keywords'],'meta_about' => $data['meta_about'],'active' => $data['active'],'translit' => $data['translit']);
439   - if(isset($data['is_cost2']))$fields_values['is_cost2'] = 1;else $fields_values['is_cost2'] = 0;
440   - if(isset($data['cine2']))$fields_values['cine2'] = $data['cine2'];
441   - if(isset($data['params']))$fields_values['params'] = $data['params'];
442   - if(isset($data['doc']))$fields_values['doc'] = $data['doc'];
443   - if(isset($data['video_code']))$fields_values['video_code'] = $data['video_code'];
444   - if(isset($data['akcii_id']))$fields_values['akcii_id'] = $data['akcii_id'];
445   -
446   - if(isset($data['translit']))$fields_values['translit'] = $data['translit'];
447   -
448   - if($upload['pic']['tmp_name']){
449   - $delete_pics = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?array('pic'):array('pic','pic_big');
450   - $this->deleteProductPics($id,$delete_pics);
451   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"144",'height'=>"144",'upload_path'=>"./uploaded/pic/catalogs/products/"));
452   - $fields_values['pic_big'] = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?$upload['pic']['name']:upload_ImageResize($upload['pic'],array('width'=>"500",'height'=>"500",'upload_path'=>"./uploaded/pic/catalogs/products/big/"));
453   - }
454   -
455   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id='$id'");
456   - $this->save_keysProductsFilters($id,$data);
457   - $this->save_keysProductsYears($id,$data);
458   - //$this->save_keysProductsCities($id,$data);
459   - $this->save_keysProductsAkcii($id,$data);
460   - return $id;
461   - }
462   -
463   - function save_keysProductsFilters($id,$data){
464   - $this->delete_keysProductsFilters($id);
465   - if(!isset($data['filter']))return false;
466   - $table_name = "catalogs_keys_products_filters";
467   - foreach($data['filter'] as $filter_id){
468   - $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
469   - }
470   - }
471   -
472   - function delete_keysProductsFilters($id){
473   - $this->db->query("delete from catalogs_keys_products_filters where product_id=?",array($id));
474   - }
475   -
476   - function save_keysProductsYears($id,$data){
477   - $this->delete_keysProductsYears($id);
478   - if(!isset($data['years']))return false;
479   - $table_name = "catalogs_keys_products_years";
480   - foreach($data['years'] as $filter_id){
481   - $this->db->autoExecute($table_name,array('product_id'=>$id,'year_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
482   - }
483   - }
484   -
485   - function delete_keysProductsYears($id){
486   - $this->db->query("delete from catalogs_keys_products_years where product_id=?",array($id));
487   - }
488   -
489   - function save_keysProductsCities($id,$data){
490   - $this->delete_keysProductsCities($id);
491   - if(!isset($data['city']))return false;
492   - $table_name = "catalogs_keys_products_cities";
493   - foreach($data['city'] as $city_id){
494   - $this->db->autoExecute($table_name,array('product_id'=>$id,'city_id'=>$city_id),DB_AUTOQUERY_INSERT);
495   - }
496   - }
497   -
498   - function delete_keysProductsAkcii($id){
499   - $this->db->query("delete from catalogs_keys_products_akcii where product_id=?",array($id));
500   - }
501   -
502   - function save_keysProductsAkcii($id,$data){
503   - $this->delete_keysProductsAkcii($id);
504   - if(!isset($data['akcii']))return false;
505   - $table_name = "catalogs_keys_products_akcii";
506   - foreach($data['akcii'] as $rubric_id){
507   - $this->db->autoExecute($table_name,array('product_id'=>$id,'rubric_id'=>$rubric_id),DB_AUTOQUERY_INSERT);
508   - }
509   - }
510   -
511   - function delete_keysProductsCities($id){
512   - $this->db->query("delete from catalogs_keys_products_cities where product_id=?",array($id));
513   - }
514   -
515   -
516   - function saveProductSizeCine($id,$data){
517   - $this->db->query("delete from catalogs_products_cine where product_id=?",array($id));
518   - foreach($data['size'] as $key=>$size){
519   - $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);
520   - }
521   - }
522   -
523   -
524   - function productsIsHits($products,$hits,$tops,$headers){
525   - $sql = "update catalogs_products set hit=?,top=?,header=? where id=?";
526   - foreach($products as $id){
527   - if(@in_array($id,$hits))$hit = true;
528   - else $hit = false;
529   - if(@in_array($id,$tops))$top = true;
530   - else $top = false;
531   - if(@in_array($id,$headers))$header = true;
532   - else $header = false;
533   - $this->db->query($sql,array($hit,$top,$header, $id));
534   - }
535   - }
536   -
537   - function productsIsHits2($data,$hits){
538   - $sql = "update catalogs_products set hit=?,hit_sort=? where id=?";
539   - foreach($data['product_id'] as $key=>$id){
540   - if(@in_array($id,$hits))$hit = true;
541   - else $hit = false;
542   - $this->db->query($sql,array($hit,$data['hit_sort'][$key],$id));
543   - }
544   - }
545   -
546   - function viewProductsRubrics($rubrics,$limit=20){
547   - $data = array();
548   - foreach($rubrics as $key=>$rubric_id){
549   - $data[$key]['rubric']['name'] = $this->getRubricName($rubric_id);
550   - $data[$key]['rubric']['id'] = $rubric_id;
551   -
552   - $count = $this->db->getOne("select count(*) from catalogs_products WHERE count_modifications>0 and rubric_id=?",array($rubric_id));
553   - $limit = 4; $round = ($count>$limit) ? rand(0,($count-$limit)) : $limit;
554   - $sql = "select * from catalogs_products where count_modifications>0 and rubric_id=? order by id " . ((rand(1,1000)%2) ? "asc" : "desc") . " limit $round,$limit";
555   - $data[$key]['products'] = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC);
556   - }
557   - /* print"<pre>";
558   - print_r($data);
559   - print"</pre>"; */
560   - $this->tpl->assign('products',$data);
561   - }
562   -
563   - function seralizeFilter($str){
564   - $array = explode(';',$str);
565   - $filter = array();
566   - foreach($array as $key=>$value){
567   - $filter[substr($value,0,1)][] = substr($value,1, strpos($value,"_")-1 );
568   - }
569   - return $filter;
570   - }
571   -
572   - function viewProducts($params,$rubricsP = false,$count_modf = true){
573   -
574   -
575   - //exit;
576   -
577   -
578   - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']);
579   - $search = array();
580   - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20;
581   - if(isset($params['search_str']) && strlen($params['search_str'])>0){
582   - $array_string = explode(" ",trim($params['search_str']));
583   - $search_string = array();
584   - $search_string[] = "catalogs_products.name like '%".mysql_real_escape_string($params['search_str'])."%'";
585   - $search_string[] = "catalogs_products.text like '%".mysql_real_escape_string($params['search_str'])."%'";
586   - /* foreach($array_string as $str){
587   - $search_string[] = "catalogs_products.name like '$str'";
588   - $search_string[] = "catalogs_products.name like'% $str %'";
589   - $search_string[] = "catalogs_products.name like'%$str %'";
590   - $search_string[] = "catalogs_products.name like'% $str%'";
591   -
592   - $search_string[] = "catalogs_products.text like '$str'";
593   - $search_string[] = "catalogs_products.text like'% $str %'";
594   - $search_string[] = "catalogs_products.text like'%$str %'";
595   - $search_string[] = "catalogs_products.text like'% $str%'";
596   - } */
597   - $search[] = "((" . implode(" OR ",$search_string) . ") OR ". sprintf("catalogs_modifications.code='%s'", mysql_real_escape_string($params['search_str'])).")";
598   - }
599   - // print_r($params);
600   - if(isset($params['brendID']) && $params['brendID']>0)$search[] = sprintf("catalogs_products.brend_id='%d'",$params['brendID']);
601   - if(isset($params['akciiID']) && $params['akciiID']>0)$search[] = sprintf("catalogs_products.akcii_id='%d'",$params['akciiID']);
602   - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")";
603   - if(isset($params['sex']) && strlen($params['sex'])>0){
604   - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
605   - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]);
606   -
607   - }
608   - //if(isset($params['akcii']) && $params['akcii']>0)$search[] = sprintf("catalogs_products.hit='%d'",$params['akcii']);
609   - if($count_modf==true)$search[] = "catalogs_products.count_modifications>0";
610   - if(isset($params['rubID']) && $params['rubID']>0){
611   - $search[] = ($rubricsP==true)?sprintf("(catalogs_products.rubric_id='%d')",$params['rubID']):sprintf("
612   - (catalogs_products.rubric_parent_id='%d' ||
613   - catalogs_products.rubric_id='%d' ||
614   - catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') ||
615   - catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d'))",$params['rubID'],$params['rubID'],$params['rubID'],$params['rubID']);
616   - }
617   -
618   - /* if(isset($params['filterID'])){
619   - //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']);
620   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")";
621   - }*/
622   - if(isset($filter['f']) && count($filter['f'])>0){
623   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")";
624   - }
625   -/* if(isset($params['yearID']) && $params['yearID']>0){
626   - //$search[] = sprintf("catalogs_keys_products_years.year_id='%d'", $params['yearID']);
627   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$params['yearID']).")";
628   - }*/
629   - if(isset($filter['y']) && $filter['y']>0){
630   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
631   - }
632   - $sql = "select catalogs_rubrics.translit as translit2,catalogs_products.*,catalogs_brends.name as brend_name,catalogs_rubrics.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 ";
633   - if(isset($params['akcii']) && $params['akcii']>0)$sql .= "RIGHT JOIN catalogs_keys_products_akcii ON catalogs_keys_products_akcii.product_id=catalogs_products.id ";
634   - 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 ";
635   - //if(isset($params['filterID']) && $params['filterID']>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
636   -// if(isset($params['yearID']) && $params['yearID']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
637   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
638   - if(isset($params['search_str']) && strlen($params['search_str'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id ";}
639   - $sql .= "WHERE 1=1 ";
640   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
641   - if(isset($params['akcii']) && $params['akcii']>0){$sql .= " GROUP BY catalogs_keys_products_akcii.product_id ";}
642   - if(isset($params['search_str']) && strlen($params['search_str'])>0){$sql .= " GROUP BY catalogs_products.id ";}
643   - $sql .= "order by ";
644   - if(isset($params['sort'])){
645   - switch($params['sort']){
646   - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break;
647   - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break;
648   - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break;
649   - default : $sql .= " catalogs_products.mktime desc";
650   - }
651   - }else $sql .= " catalogs_products.cine desc";
652   -
653   - $pagerOptions = Array(
654   - 'mode' => 'Sliding',
655   - 'delta' => 5,
656   - 'perPage' => $perPage,
657   - 'linkClass'=>"link_class",
658   - 'curPageLinkClassName'=>"link_class_active",
659   - 'spacesBeforeSeparator' => 1,
660   - 'spacesAfterSeparator' => 1
661   - );
662   - //echo $sql;
663   - //$sql="";
664   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
665   -
666   -if($_GET['test']=='1')
667   -for($i=0;$i<count($res['data']);$i++){
668   - if( @$res['data'][$i]['rating'] ) $res['data'][$i]['rating'] = round( (@$res['data'][$i]['rating'] / @$res['data'][$i]['vote_num']), 0 );
669   - else $res['data'][$i]['rating'] = 0;
670   - $res['data'][$i]['rating'] = @$res['data'][$i]['rating'] * 17;
671   -}
672   -
673   -//if($_GET['test']=='1') print_r($res);
674   -
675   - $this->tpl->assign('productsData', $res);
676   - return $res;
677   - }
678   -
679   - function getCineCurs($type_curs,$cine){
680   - $curs = array();
681   -
682   - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah'));
683   - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank'));
684   - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd'));
685   -
686   - switch($type_curs){
687   - case 'uah' :
688   - $curs['uah'] = round($cine,2);
689   - $curs['uah_bank'] = round(($cine/$usd)*$uah_bank,2);
690   - $curs['usd'] = round($cine/$usd,2);
691   - break;
692   - case 'uah_bank' :
693   - $curs['uah'] = round(($cine/$uah_bank)*$uah,2);
694   - $curs['uah_bank'] = round($cine,2);
695   - $curs['usd'] = round($cine/$uah_bank,2);
696   - break;
697   - case 'usd' :
698   - $curs['uah'] = round($cine*$uah,2);
699   - $curs['uah_bank'] = round($cine*$uah_bank,2);
700   - $curs['usd'] = round($cine,2);
701   - break;
702   - }
703   - return $curs;
704   - }
705   -
706   - function viewProductsAkcii($rubric_id){
707   - $sql = "select catalogs_products.* from catalogs_keys_products_akcii left join catalogs_products on catalogs_products.id=catalogs_keys_products_akcii.product_id where catalogs_keys_products_akcii.rubric_id=?";
708   - $res = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC);
709   - //print_r($res);
710   - $this->tpl->assign('products_akcii',$res);
711   - }
712   -
713   - function viewProductsHitsAll2(){
714   - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20;
715   - $sql = "select * from catalogs_products where hit=?";
716   - $pagerOptions = Array(
717   - 'mode' => 'Sliding',
718   - 'delta' => 6,
719   - 'perPage' => $perPage,
720   - 'linkClass'=>"link_class",
721   - 'curPageLinkClassName'=>"link_class_active",
722   - 'spacesBeforeSeparator' => 1,
723   - 'spacesAfterSeparator' => 1
724   - );
725   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array(true));
726   -
727   - $this->tpl->assign('productsData', $res);
728   - }
729   -
730   - function viewProductsHits($params,$limit = 4,$curs = null){
731   - $search = array();
732   - if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("rubric_parent_id=%d",$params['rubID']);
733   - $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.hit=? and catalogs_products.count_modifications>0 ";
734   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
735   - $sql .= "order by catalogs_products.mktime desc";
736   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
737   - $this->tpl->assign('products_hits',$res);
738   - }
739   -
740   - function viewProductsTops($params,$limit = 4,$curs = null){
741   - $search = array();
742   - if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("rubric_parent_id=%d",$params['rubID']);
743   - $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.top=? and catalogs_products.count_modifications>0 ";
744   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
745   - $sql .= "order by catalogs_products.mktime desc";
746   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
747   - $this->tpl->assign('products_top',$res);
748   - }
749   -
750   - function viewProductsTopOne(){
751   - $count = $this->db->getOne("select count(*) from catalogs_products WHERE catalogs_products.header=?",array(true));
752   - $limit = 1; $round = rand(0,($count-$limit));
753   - $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);
754   - $this->tpl->assign('products_top_one',$res);
755   - }
756   -
757   - function viewProductsLast($limit = 1){
758   - $search = array();
759   - $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=? ";
760   - $sql .= "order by catalogs_products.mktime desc LIMIT $limit";
761   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
762   - $this->tpl->assign('products_last',$res);
763   - }
764   -
765   - function viewProductsHitsAll($limit = 4){
766   - $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=? ";
767   - $sql .= "order by mktime desc LIMIT $limit";
768   - $products_hits = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
769   - $this->tpl->assign('products_hits_all',$products_hits);
770   - }
771   -
772   - function viewProductOne($id,&$row){
773   - $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=?";
774   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
775   - $this->tpl->assign('product',$row);
776   - }
777   -
778   - function deleteCompareProduct(&$compare,$id){
779   - foreach($compare as $key=>$_id){
780   - if($_id == $id)unset($compare[$key]);
781   - }
782   - }
783   -
784   - function viewCompareProducts($compare){
785   - $products = array();
786   - $i = 0;
787   - foreach($compare as $id){
788   - $sql = "select p.* from catalogs_products p where p.id=?";
789   - $products[$i] = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
790   - $products[$i]['params'] = $this->getProductParams($id);
791   - $i++;
792   - } //print_r($products);
793   - $this->tpl->assign('products',$products);
794   - }
795   -
796   - function viewProductNembers($str_n){
797   - $arr_id = explode(",",$str_n);
798   - $products = array();
799   - foreach($arr_id as $id){
800   - $count = $this->db->getOne("select count(*) from catalogs_keys_products_filters where filter_id=?",array(trim($id)));
801   - $limit = 1; $round = rand(0,($count-$limit)); //" LIMIT 0,$limit"
802   - $sql = "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=? and catalogs_products.count_modifications>0 order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") . " LIMIT $round,$limit";
803   - $row = $this->db->getRow($sql ,array(trim($id)),DB_FETCHMODE_ASSOC);
804   - if(count($row)>0)$products[] = $row;
805   - }
806   -
807   -// $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);
808   - $this->tpl->assign('products_parent',$products);
809   - }
810   -
811   - function getProductSizeCine($id,&$products){
812   - $res = $this->db->getAll("select * from catalogs_products_cine where product_id=?",array($id),DB_FETCHMODE_ASSOC);
813   - $i = 0;
814   - foreach($res as $row){
815   - $products['size_' . $row['n']] = $row['size'];
816   - $products['cine_' . $row['n']] = $row['cine'];
817   - $products['metka_' . $row['n']] = $row['metka'];
818   - $products['id_cine_' . $row['n']] = $row['id'];
819   - $i++;
820   - } //print_r($products);
821   - }
822   - /*
823   - function getProductCine($id,$curs = null){
824   - $sql = "select cine from catalogs_products where id=?";
825   - $row = $this->db->getOne($sql,array($id));
826   - return $row;
827   - }*/
828   -
829   - function getProductCine($id){
830   - $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=?";
831   - return $this->db->getOne($sql,array($id));
832   - }
833   -
834   - function viewProductCine($id){
835   - $row = $this->db->getAll("select * from catalogs_products_cine where product_id=? and cine>0 Order By n ASC",array($id),DB_FETCHMODE_ASSOC);
836   - $this->tpl->assign('product_cines',$row);
837   - }
838   -
839   - function viewCatalogsCurs(){
840   - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah'));
841   - $this->tpl->assign('curs_uah',$uah);
842   - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank'));
843   - $this->tpl->assign('curs_uah_bank',$uah_bank);
844   - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd'));
845   - $this->tpl->assign('curs_usd',$usd);
846   - }
847   -
848   - function saveCurs($data){
849   - $table_name = "catalogs_curs";
850   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
851   - foreach($data as $key=>$value){
852   - $this->db->autoExecute($table_name,array('curs'=>$value),$DB_AUTOQUERY,"type='$key'");
853   - }
854   - }
855   -
856   - function viewVarCurs($curs){
857   - $this->tpl->assign('curs',$curs);
858   - }
859   -
860   - function viewBasketProducts($session_basket,$curs = null,$discount = 0){
861   - $products = array(); $i = 0; $cineAll = 0;
862   -// $sql = "select catalogs_products.* from catalogs_products where catalogs_products.id=?";
863   - $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=?";
864   -
865   - foreach($session_basket as $id){
866   - $products_count = 1;
867   - if(count($products)){
868   - foreach($products as $key=>$value){
869   - 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'];}
870   - }}
871   - if($products_count==1){
872   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
873   - $products[$i] = $row;
874   - $products[$i]['products_count']=$products_count;
875   - $products[$i]['products_cine_all']=$products[$i]['cine']*$products_count;
876   - $cineAll = $cineAll+$products[$i]['products_cine_all'];
877   - $i++;
878   - }
879   -
880   - }
881   - /*print"<pre>";
882   - print_r($products);
883   - print"</pre>";*/
884   - $this->tpl->assign('cineAll',$cineAll);
885   - $this->tpl->assign('cineAll_discount',$cineAll - (($cineAll*$discount)/100));
886   - $this->tpl->assign('basket_products',$products); //print_r($products);
887   - }
888   -
889   -
890   - function BasketUpload(&$session_basket,$proructs_count){
891   -
892   - // ========== ZLODEYEV ============
893   -
894   - foreach($proructs_count as $key=>$value){
895   -
896   - // ==== îáíîâëÿåì ====
897   -
898   - // Âûáèðàåì èíôî î òîâàðå
899   - $sql4 = "SELECT * FROM catalogs_modifications as m
900   - LEFT JOIN catalogs_products as p
901   - ON p.id=m.product_id
902   - WHERE m.id='".$key."' ";
903   - $result4 = mysql_query($sql4) or die(mysql_error());
904   - if (mysql_affected_rows()!=0) {
905   - $item=mysql_fetch_assoc($result4);
906   - }
907   -
908   - $f=0;
909   -
910   - if (isset($_SESSION['shopcart'])) {
911   -
912   - foreach ($_SESSION['shopcart'] as $i => $cart) {
913   -
914   -
915   - if ($cart['code']!='' && $cart['code']==$key) {
916   - $f=1;
917   - $_SESSION['shopcart'][$i]['count']=$value;
918   - $_SESSION['shopcart'][$i]['total']=$value*$_SESSION['shopcart'][$i]['price'];
919   - if ($_SESSION['shopcart'][$i]['total']==0) {
920   - unset($_SESSION['shopcart'][$i]);
921   - }
922   - break;
923   - }
924   - }
925   - }
926   - }
927   -
928   - // ========== ZLODEYEV ============
929   -
930   -
931   - $session_basket = array();
932   - foreach($proructs_count as $key=>$value){
933   - for($i=0;$i<$value;$i++){
934   - $session_basket[] = $key;
935   - }
936   - }
937   - }
938   -
939   - function sendOrder($data){
940   - $mail = new PHPMailer();
941   - $mail->CharSet = "windows-1251";
942   - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
943   - $mail->FromName = $data['order_name'];
944   - $mail->AddAddress("shop@eltrade.com.ua","shop");
945   - $mail->Subject = "Îôîðìèòü çàêàç ñ ÝêñòðèìÑòèëü";
946   - $title = Mail::str_rus("Îôîðìèòü çàêàç");
947   - $msg = "";
948   - foreach($data['product_id'] as $key=>$value){
949   - $msg .= "ID: ".$value." ";
950   - $msg .= "Íàçâàíèå: <b>".$data['product_name'][$key]."</b> ";
951   - $msg .= "Öåíà çà îäèí: ".$data['product_cine'][$key]." ";
952   - $msg .= "Êîëè÷åñòâî: ".$data['product_count'][$key]." ";
953   - $msg .= "Çà âåñü òîâàð: ".$data['product_cine_all'][$key]." ";
954   - $msg .= "<br>";
955   - }
956   - $msg .= "Îáùàÿ ñóìà: ".$data['cineAll'];
957   - $msg .= "<br>";
958   - /* $msg .= "Ñêèäêà: ".$data['discount']." %";
959   - $msg .= "<br>"; */
960   - $msg .= "Èòîãî ê îïëàòå: ".$data['cineAll_discount'];
961   - $msg .= "<br><br><br>";
962   - $msg .= "Êîíòàêòíûå äàííûå:";
963   - $msg .= "<br>";
964   - $msg .= "Èìÿ: ".$data['order_name'];
965   - $msg .= "<br>";
966   - $msg .= "Àäðåñ: ".$data['order_adress'];
967   - $msg .= "<br>";
968   - $msg .= "E-mail: ".$data['order_email'];
969   - $msg .= "<br>";
970   - $msg .= "Êîíòàêòíûé òåëåôîí: ".$data['order_phone'];
971   -// $msg .= "<br>";
972   -// $msg .= "Ìîáèëüíûé òåëåôîí: ".$data['order_phonemob'];
973   - $msg .= "<br>";
974   - $msg .= "Êîììåíòàðèé: ".$data['order_comment'];
975   -// $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "vapila@vapila.kiev.ua";
976   -// Mail::send("borisenko.pavel@gmail.com",$data['order_email'],$title,Mail::str_rus($msg));
977   - $mail->MsgHTML($msg);
978   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
979   - $mail->ClearAddresses();
980   - $mail->ClearAttachments();
981   -
982   - $this->sendOrderXML($data);
983   - }
984   -
985   -
986   - function sendOrderXML($data){
987   -
988   -
989   -
990   -$data['order_phone'] = str_replace("-","",$data['order_phone']);
991   -$data['order_phone'] = str_replace(")","",$data['order_phone']);
992   -$data['order_phone'] = str_replace("(","",$data['order_phone']);
993   -$data['order_phone'] = str_replace(" ","",$data['order_phone']);
994   -$data['order_phone'] = "+38".$data['order_phone'];
995   -
996   -
997   -
998   - $mail = new PHPMailer();
999   - $mail->CharSet = "windows-1251";
1000   - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
1001   - $mail->FromName = $data['order_name'];
1002   - $mail->AddAddress("extremshop@portal.myoffice.biz.ua","extremshop");
1003   - $mail->Subject = "xml çàêàç ñ ÝêñòðèìÑòèëü";
1004   - $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
1005   - $xml = '<?xml version="1.0" encoding="windows-1251" ?>';
1006   - $xml .= '<Order orderNum="'.mktime().'">';
1007   - foreach($data['product_id'] as $key=>$value){
1008   - $xml .= "<OrderItem ID='".$data['product_code'][$key]."'>";
1009   - $xml .= "<ProductName>".$data['product_name2'][$key]."</ProductName>";
1010   - $xml .= "<Size>".$data['product_size'][$key]."</Size>";
1011   - $xml .= "<Color>".$data['product_color'][$key]."</Color>";
1012   - $xml .= "<Price>".$data['product_price'][$key]."</Price>";
1013   - $xml .= "<Count>".$data['product_count'][$key]."</Count>";
1014   - $xml .= "</OrderItem>";
1015   - }
1016   - $xml .= '<CustomerInfo>';
1017   - $xml .= '<Name>'.$data['order_name'].'</Name>';
1018   - $xml .= '<Mobile>'.$data['order_phone'].'</Mobile>';
1019   - $xml .= '<Email>'.$data['order_email'].'</Email>';
1020   - $xml .= '</CustomerInfo>';
1021   - $xml .= '<DeliveryInfo>';
1022   - $xml .= '<City>Óêðàèíà</City>';
1023   - $xml .= '<Address>'.$data['order_adress'].'</Address>';
1024   - $xml .= '<DeliveryType>Äîñòàâêà</DeliveryType>';
1025   - $xml .= '</DeliveryInfo>';
1026   - $xml .= '<Comment>'.$data['order_comment'].'</Comment>';
1027   - $xml .= '</Order>';
1028   - $tmpfname = tempnam("tmp", "FOO");
1029   - $handle = fopen($tmpfname, "w");
1030   - fwrite($handle, $xml);
1031   - $mail->AddAttachment($tmpfname, 'order.xml');
1032   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
1033   - fclose($handle);
1034   - unlink($tmpfname);
1035   - $mail->ClearAddresses();
1036   - $mail->ClearAttachments();
1037   - // Mail::send("borisenko.pavel@gmail.com",$order_email,"Order",Mail::str_rus($xml));
1038   - // Mail::send("andrey.belyy@gmail.com",$order_email,"Order",Mail::str_rus($xml));
1039   - }
1040   -
1041   - function saveOrder($data,$userID = 0){
1042   -
1043   - $table_name = "catalogs_orders";
1044   -
1045   - if(isset($data['update_id']) && $data['update_id']>0){
1046   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
1047   - $id = $data['update_id'];
1048   - $where = sprintf("id='%d'",$id);
1049   - } else {
1050   - $DB_AUTOQUERY = DB_AUTOQUERY_INSERT;
1051   - $id = $this->db->nextId('mySequence_'.$table_name);
1052   - $where = null;
1053   - }
1054   -
1055   -
1056   -
1057   -
1058   - $fields_values = array(
1059   - 'id'=>$id,
1060   - 'user_id'=>$userID,
1061   - 'name' => $data['order_name'],
1062   - 'email' => $data['order_email'],
1063   - 'adress' => $data['order_adress'],
1064   - //'phone' => phone_mobil($data['order_phone']),
1065   - 'phone' => $data['order_phone'],
1066   - 'comment' => $data['order_comment'],
1067   - 'delivery' => $data['delivery'],
1068   - 'total'=>$_SESSION['cart']['total'],
1069   - 'status' => '1',
1070   - 'mktime'=>mktime()
1071   - );
1072   - $DB_AUTOQUERY;
1073   -
1074   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,$where);
1075   -
1076   - if(isset($data['product_id'])){ $i=-1;
1077   - foreach($data['product_id'] as $key=>$value){ $i++;
1078   - $this->db->autoExecute("catalogs_orders_products",array(
1079   - 'order_id'=>$id,
1080   - 'product_id'=>$value,
1081   - 'product_cine_id'=>$_SESSION['cart'][$i]['price'],
1082   - 'count'=>$data['product_count'][$key])
1083   - ,DB_AUTOQUERY_INSERT);
1084   - }
1085   - }
1086   -
1087   -
1088   - }
1089   -
1090   - function deleteOrder($id){
1091   - $this->db->query("delete from catalogs_orders where id=?",array($id));
1092   - $this->db->query("delete from catalogs_orders_products where order_id=?",array($id));
1093   - }
1094   -
1095   - function updateOrder($data){
1096   - $table_name = "catalogs_orders";
1097   - $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());
1098   - if(isset($data['order_active']))$fields_values['active'] = 1;
1099   - else $fields_values['active'] = 0;
1100   - $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,sprintf("id='%d'",$data['update_id']));
1101   - }
1102   -
1103   - function updateOrderProducts($data){
1104   - foreach($data['product_id'] as $key=>$value){
1105   - if($data['product_count'][$value]<1){$this->db->query("delete from catalogs_orders_products where order_id='{$data['order_id']}' AND product_id='$value'");}
1106   - 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'");}
1107   - }
1108   - }
1109   -
1110   - function viewOrder($id){
1111   - $row = $this->db->getRow("select * from catalogs_orders where id=?",array($id),DB_FETCHMODE_ASSOC);
1112   - $this->tpl->assign('order', $row);
1113   - }
1114   -
1115   - function viewOrderProducts($order_id){
1116   - $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);
1117   - $sum = 0;
1118   - foreach($res as $key=>$row){
1119   - $sum = $sum + ($row['cine']*$row['count']);
1120   - $res[$key]['cine_all'] = ($row['cine']*$row['count']);
1121   - }
1122   - $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));
1123   - $this->tpl->assign('cine', array('sum'=>$sum,'discount'=>$discount,'sum_discount'=>($sum - (($sum*$discount)/100)) ));
1124   - $this->tpl->assign('basket_products', $res);
1125   - }
1126   -
1127   - function viewOrders($params = array()){
1128   - $search = array();
1129   - if(isset($params['userID']) && $params['userID']>0)$search[] = sprintf("catalogs_orders.user_id='%d'",$params['userID']);
1130   - $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 ";
1131   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1132   - $sql .= " order by mktime desc";
1133   - $pagerOptions = Array(
1134   - 'mode' => 'Sliding',
1135   - 'delta' => 16,
1136   - 'perPage' => 50,
1137   - 'linkClass'=>"link_class",
1138   - 'curPageLinkClassName'=>"link_class_active",
1139   - 'spacesBeforeSeparator' => 1,
1140   - 'spacesAfterSeparator' => 1
1141   - );
1142   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
1143   - foreach($res['data'] as $key=>$value){
1144   - $res['data'][$key]['sum'] = $this->getOrderProductsSum($value['id']);
1145   - $res['data'][$key]['sum_discount'] = $res['data'][$key]['sum'] - (($res['data'][$key]['sum']*$value['discount'])/100);
1146   - }
1147   - $this->tpl->assign('ordersData', $res);
1148   - }
1149   -
1150   - function getOrderProductsSum($order_id){
1151   - $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);
1152   - // print_r($res);
1153   - $sum = 0;
1154   - foreach($res as $row){
1155   - $sum = $sum + ($row['cine']*$row['count']);
1156   - }
1157   - return $sum;
1158   - }
1159   -
1160   - function SaveBrend($data,$upload){
1161   - $table_name = "catalogs_brends";
1162   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
1163   - $fields_values = array('rubric_id'=>$data['rubric_id'],'name'=>$data['brend'],'text'=>$data['text'],'youtube'=>$data['youtube'],'seo'=>$data['seo'],'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']);
1164   -
1165   - if(isset($data['delete_video']) && $data['delete_video']==1){
1166   - $this->deleteBrendPic($data['update_id']);
1167   - $fields_values['pic'] = null;
1168   - }
1169   - if($upload['pic']['tmp_name']){
1170   - if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic'));
1171   - $name_pic = mktime() . "." . substr(strrchr($_FILES['pic']['name'],"."),1);
1172   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/$name_pic";
1173   - move_uploaded_file($_FILES["pic"]["tmp_name"], $file_name);
1174   - chmod($file_name,"0777");
1175   - $fields_values['pic'] = $name_pic;
1176   - }
1177   -
1178   - if(isset($data['delete_pic_s']) && $data['delete_pic_s']==1){
1179   - $this->deleteBrendPic($data['update_id'],array('pic_s'));
1180   - $fields_values['pic_s'] = null;
1181   - }
1182   - if($upload['pic_s']['tmp_name']){
1183   - if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic_s'));
1184   - $name_pic = mktime() . "." . substr(strrchr($_FILES['pic_s']['name'],"."),1);
1185   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/$name_pic";
1186   - move_uploaded_file($_FILES["pic_s"]["tmp_name"], $file_name);
1187   - chmod($file_name,"0777");
1188   - $fields_values['pic_s'] = $name_pic;
1189   - }
1190   -
1191   -
1192   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
1193   - }
1194   -
1195   - function deleteBrendPic($id,$pics = array('pic','pic_s')){
1196   - $sql = "select " . implode(',',$pics) . " from catalogs_brends where id=?";
1197   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
1198   - if(isset($row['pic'])){
1199   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/{$row['pic']}";
1200   - @unlink($file_name);
1201   - }
1202   - if(isset($row['pic_s'])){
1203   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/{$row['pic_s']}";
1204   - @unlink($file_name);
1205   - }
1206   - }
1207   -
1208   - function viewBrends($type = false){
1209   - $sql = "select b.*,r.name as rubric from catalogs_brends b left join catalogs_rubrics r On r.id=b.rubric_id ";
1210   - if($type!=false)$sql .= "where b.type='$type'";
1211   - $sql .= " Order by b.name Asc";
1212   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1213   - $this->tpl->assign('brends',$row);
1214   - }
1215   -
1216   - function viewBrendsGroup($params = array()){
1217   - $sql = "select * from catalogs_brends where 1=1 ";
1218   - if(isset($params['rubID'])){
1219   - $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']);
1220   - $rubric_id = ($rubric_id==0)?$params['rubID']:$rubric_id;
1221   - $sql .= "and rubric_id='".$rubric_id."'";
1222   - }
1223   - $sql .= " Group by name Order by sort Asc";
1224   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1225   - $this->tpl->assign('brends',$row);
1226   - }
1227   -
1228   - function viewBrendsActive(){
1229   - $sql = "select * from catalogs_brends where active=1 ";
1230   - $sql .= " Order by sort Asc";
1231   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1232   - $this->tpl->assign('brends_a',$row);
1233   - }
1234   -
1235   - function SaveCity($data){
1236   - $table_name = "catalogs_cities";
1237   - $DB_AUTOQUERY = (isset($data['update_id']) && $data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
1238   - $fields_values = array('name'=>$data['name']);
1239   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
1240   - return mysql_insert_id();
1241   - }
1242   -
1243   - function is_city($name){
1244   - return $this->db->getOne('select id from catalogs_cities where name=?',array($name));
1245   - }
1246   -
1247   - function viewCityMod($code){
1248   - $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";
1249   - $row = $this->db->getCol($sql,"name",array($code));
1250   - if(!count($row))return "";
1251   - foreach($row as $key=>$value){if($value=="Èíòåðíåò ìàãàçèí" or $value=="Êèåâ(Îëèìïèéñêèé)")unset($row[$key]);}
1252   - return implode(', ',$row);
1253   - }
1254   -
1255   - function viewCitiesProductID($id){
1256   - $sql = "select city_id from catalogs_keys_products_cities where product_id=?";
1257   - $row = $this->db->getCol($sql,"city_id",array($id));
1258   - $this->tpl->assign('product_cities',$row);
1259   - }
1260   -
1261   - function viewCities($type = false){
1262   - $sql = "select * from catalogs_cities ";
1263   - $sql .= " Order by name Asc";
1264   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1265   - $this->tpl->assign('cities',$row);
1266   - }
1267   -
1268   - function viewCitiesProduct($id){
1269   - $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=? ";
1270   - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
1271   - $this->tpl->assign('cities',$row);
1272   - }
1273   -
1274   - function viewCity($id){
1275   - $row = $this->db->getRow("select * from catalogs_cities where id=?",array($id),DB_FETCHMODE_ASSOC);
1276   - $this->tpl->assign('city', $row);
1277   - }
1278   -
1279   - function deleteCity($id){
1280   - $this->db->query("delete from catalogs_cities where id=?",array($id));
1281   - $this->delete_keysCitiesProduct($id);
1282   - }
1283   -
1284   - function delete_keysCitiesProduct($id){
1285   - $sql = "delete from catalogs_keys_products_cities where city_id=?";
1286   - $this->db->query($sql,array($id));
1287   - }
1288   -
1289   - function SaveYears($data){
1290   - $table_name = "catalogs_years";
1291   - foreach($data['filter'] as $key=>$name){
1292   - if(strlen($name)>0){
1293   - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";}
1294   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";}
1295   - $this->db->autoExecute($table_name,array('name'=>$name,'rubric_id'=>$data['rubric_id']),$DB_AUTOQUERY,$where);
1296   - }
1297   - }
1298   - }
1299   -
1300   - function viewYearsProductID($id){
1301   - $sql = "select year_id from catalogs_keys_products_years where product_id=?";
1302   - $row = $this->db->getCol($sql,"year_id",array($id));
1303   - $this->tpl->assign('product_years',$row);
1304   - }
1305   -
1306   - function viewYears($rubric_id){
1307   - $row = $this->db->getAll("select * from catalogs_years where rubric_id=? order by name",array($rubric_id),DB_FETCHMODE_ASSOC);
1308   - $this->tpl->assign('years', $row);
1309   - }
1310   -
1311   - function getYearsName_IDs($ids){
1312   - //$sql = "select name from catalogs_years where id in (".implode(",",$ids).") order by name";
1313   - //$row = $this->db->getCol($sql,"name",array());
1314   - //return implode(", ",$row);
1315   -
1316   - $name = array();
1317   - foreach($ids as $id){
1318   - $name[] = $this->db->getOne("select name from catalogs_years where id=?",array($id));
1319   - }
1320   - return implode(", ",$name);
1321   - }
1322   -
1323   - function deleteYearsRubric_id($id){
1324   - $this->db->query("delete from catalogs_years where rubric_id=?",array($id));
1325   - $this->delete_keysYearsRubric($id);
1326   - }
1327   -
1328   - function delete_keysYearsRubric($id){
1329   - $sql = "delete from catalogs_keys_products_years where rubric_id=?";
1330   - $this->db->query($sql,array($id));
1331   - }
1332   -
1333   - function deleteYear($id){
1334   - $this->db->query("delete from catalogs_years where id=?",array($id));
1335   - $this->delete_keysYearsProduct($id);
1336   - }
1337   -
1338   - function delete_keysYearsProduct($id){
1339   - $sql = "delete from catalogs_keys_products_years where year_id=?";
1340   - $this->db->query($sql,array($id));
1341   - }
1342   -
1343   - function SaveFilters($data){
1344   - $table_name = "catalogs_filters";
1345   - foreach($data['filter'] as $key=>$name){
1346   - if(strlen($name)>0){
1347   - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";}
1348   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";}
1349   - $active = (isset($data['active'][$key])) ? 1 : 0;
1350   - $this->db->autoExecute($table_name,array('name'=>$name,'prefix'=>encodestring($name),'rubric_id'=>$data['rubric_id'],"sort"=>$data['sort'][$key],"active"=>$active),$DB_AUTOQUERY,$where);
1351   - }
1352   - }
1353   - }
1354   -
1355   - function viewFilterProductID($id){
1356   - $sql = "select filter_id from catalogs_keys_products_filters where product_id=?";
1357   - $row = $this->db->getCol($sql,"filter_id",array($id));
1358   - $this->tpl->assign('product_filters',$row);
1359   - }
1360   -
1361   - function deleteFilter($id){
1362   - $this->db->query("delete from catalogs_filters where id=?",array($id));
1363   - $this->delete_keysFilterProduct($id);
1364   - }
1365   -
1366   - function deleteFiltersRubric_id($rubric_id){
1367   - $this->db->query("delete from catalogs_filters where rubric_id=?",array($rubric_id));
1368   - $this->delete_keysFilterRubric($rubric_id);
1369   - }
1370   -
1371   - function delete_keysFilterProduct($id){
1372   - $sql = "delete from catalogs_keys_products_filters where filter_id=?";
1373   - $this->db->query($sql,array($id));
1374   - }
1375   -
1376   - function delete_keysFilterRubric($id){
1377   - $sql = "delete from catalogs_keys_products_filters where rubric_id=?";
1378   - $this->db->query($sql,array($id));
1379   - }
1380   -
1381   - function viewFilters($rubric_id){
1382   - $row = $this->db->getAll("select * from catalogs_filters where active='0' and rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC);
1383   - $this->tpl->assign('filters', $row);
1384   - }
1385   -
1386   - function getFiltersName_IDs($ids){
1387   - //$sql = "select name from catalogs_filters where id in (".implode(",",$ids).")";
1388   - //$row = $this->db->getCol($sql,"name",array());
1389   - $name = array();
1390   - foreach($ids as $id){
1391   - $name[] = $this->db->getOne("select name from catalogs_filters where id=?",array($id));
1392   - }
1393   - return implode(", ",$name);
1394   - }
1395   -
1396   - function viewBrend($id){
1397   - $row = $this->db->getRow("select * from catalogs_brends where id=?",array($id),DB_FETCHMODE_ASSOC);
1398   - $this->tpl->assign('brend', $row);
1399   - }
1400   -
1401   - function viewBrendName($name){
1402   - $name = iconv("utf-8", "windows-1251", $name);
1403   - $sql = "select * from catalogs_brends where name=? and active=1 limit 1";
1404   - $row = $this->db->getRow($sql,array($name),DB_FETCHMODE_ASSOC);
1405   - $this->tpl->assign('brend_seo', $row);
1406   - return $row;
1407   - }
1408   -
1409   - function getBrendIDs_name($name){
1410   - //$name = iconv("utf-8", "windows-1251", $name);
1411   - $sql = "select id from catalogs_brends where name=?";
1412   - return $this->db->getCol($sql,"id",array($name));
1413   - }
1414   -
1415   - function deleteBrend($id){
1416   - $this->db->query("delete from catalogs_brends where id=?",array($id));
1417   - }
1418   -
1419   - function viewAkciiProductID($id){
1420   - $sql = "select rubric_id from catalogs_keys_products_akcii where product_id=?";
1421   - $row = $this->db->getCol($sql,"rubric_id",array($id));
1422   - $this->tpl->assign('product_akcii',$row);
1423   - }
1424   -
1425   - function import_saveRubric($name,$parent_id){
1426   - $id = $this->db->getOne("select id from catalogs_rubrics where name=? and parent_id=?",array($name,$parent_id));
1427   - if( !$id ){
1428   - $this->db->autoExecute("catalogs_rubrics",array('name'=>$name,'parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1)),DB_AUTOQUERY_INSERT);
1429   - return mysql_insert_id();
1430   - }
1431   - return $id;
1432   - }
1433   -
1434   - function import_saveBrend($name,$rubric_id){
1435   - //getRubricParent();
1436   - $id = $this->db->getOne("select id from catalogs_brends where name=? and rubric_id=?",array($name,$rubric_id));
1437   - if( !$id ){
1438   - $this->db->autoExecute("catalogs_brends",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT);
1439   - return mysql_insert_id();
1440   - }
1441   - return $id;
1442   - }
1443   -
1444   - function import_saveFilters($rubric_id,$str){
1445   - if(!$str)return array();
1446   - $row_str = explode(",",trim($str));
1447   - $arr_id = array();
1448   - foreach($row_str as $str){
1449   - $name = trim($str);
1450   - $name_r = explode('=',$name);$name = $name_r[0]; $active = (isset($name_r[1])) ? 1 : 0;
1451   - $id = $this->db->getOne("select id from catalogs_filters where rubric_id=? and name=?",array($rubric_id,$name));
1452   - if( !$id ){
1453   - $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_INSERT);
1454   - $id = mysql_insert_id();
1455   - }else{ $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_UPDATE,"id=$id");}
1456   - $arr_id[] = $id;
1457   - }
1458   - return $arr_id;
1459   - }
1460   -
1461   - function import_saveYear($rubric_id,$name){
1462   - $id = $this->db->getOne("select id from catalogs_years where rubric_id=? and name=?",array($rubric_id,$name));
1463   - if( !$id ){
1464   - $this->db->autoExecute("catalogs_years",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT);
1465   - $id = mysql_insert_id();
1466   - }
1467   - return ($id)?array($id):array();
1468   - }
1469   -
1470   - function import_updateProductCine($product_id,$row,$line='',$mktime = 0){ // print"<pre>";print_r($row);print"</pre>";
1471   -
1472   - IF($product_id>0){
1473   - IF($row[3]>0){
1474   - if($row[2]<1){$cine=$row[1];$cine_last=0;}
1475   - else {$cine=$row[2];$cine_last=(($row[1]>0)?$row[1]:$row[2]);}
1476   - $this->db->autoExecute("catalogs_products",array('cine'=>$cine,'cine_last'=>$cine_last),DB_AUTOQUERY_UPDATE,"id='$product_id'");
1477   - }
1478   -
1479   -
1480   - $city = trim($row[4]);
1481   - if(!$city)$city = "Èíòåðíåò ìàãàçèí";
1482   - //echo "OK(1) - <br/>";
1483   - if(strlen($city)>0){ //print $city;
1484   - $city_id = $this->is_city($city);
1485   - //echo "OK(2) - <br/>";
1486   - if(!$city_id){$city_id = $this->SaveCity(array('name'=>$city));}
1487   - $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime));
1488   -
1489   - if($row[3]==0){
1490   -
1491   - }
1492   - else{
1493   - // $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime));
1494   - //echo "OK(3) - <br/>";
1495   - if($this->getKeysModificationCity($row[0], $city_id)){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "mod_code='".$row[0]."' and city_id='".$city_id."'";}
1496   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = null;}
1497   -
1498   - // if($this->getKeysModificationCityMktime_count($row[0], $city_id, $mktime)>0){$row[3]=1;}
1499   - //print $city_id .'--'.$where."<br>";
1500   - $fields = array('count'=>$row[3],'product_id'=>$product_id,'mod_code'=>$row[0],'city_id'=>$city_id,'mktime'=>$mktime);
1501   - $s = $this->db->autoExecute("catalogs_keys_products_cities",$fields,$DB_AUTOQUERY,$where);
1502   - if (PEAR::isError($s)) die($s->getMessage());
1503   - }}
1504   - //echo "OK(4) - <br/>";
1505   - $active = $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and count>0",array($row[0]));
1506   - //$active = true;
1507   - if($this->db->getOne("select count(*) from catalogs_modifications where code=?",array($row[0]))>0){
1508   - $this->db->autoExecute("catalogs_modifications",array('active'=>$active,'is_update'=>1,'prefix'=>$row[4]),DB_AUTOQUERY_UPDATE,"code='".$row[0]."'");
1509   - //echo "OK(5) - <br/>";
1510   - }else{
1511   - //echo "OK(6) - <br/>";
1512   - $this->saveCsvMod($line);
1513   - }
1514   - }
1515   - }
1516   -
1517   - function saveCsvMod($line){
1518   - echo "OK1 - <br/>";
1519   - $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv";
1520   - $handle = @fopen($tmpfname, "a");
1521   -// $row = explode(";",$line);
1522   -// File_FGetCSV::fputcsv($handle,$row,';');
1523   - echo "OK2 - <br/>";
1524   - echo $line;
1525   - echo "OK3 - <br/>";
1526   - fwrite($handle,$line);
1527   - fclose($handle);
1528   - }
1529   -
1530   - function getKeysModificationCity($code, $city_id){
1531   - return $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id));
1532   - }
1533   -
1534   - function getKeysModificationCity_count($code, $city_id){
1535   - return $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id));
1536   - }
1537   -
1538   - function getKeysModificationCityMktime_count($code, $city_id, $mktime){
1539   - $r = $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=? and mktime=?", array($code, $city_id, $mktime));
1540   - return $r;
1541   - }
1542   -
1543   - function getProductID($name){
1544   - $id = $this->db->getOne("select id from catalogs_products where name=?",array($name));
1545   - return $id;
1546   - }
1547   -
1548   - function getProductID_R($name,$rubric_parent_id){
1549   - $id = $this->db->getOne("select id from catalogs_products where name=? and rubric_id=?",array($name,$rubric_parent_id));
1550   - return $id;
1551   - }
1552   -
1553   - function getModificationActive($code){
1554   - return $this->db->getOne("select active from catalogs_modifications where code=?",array($code));
1555   - }
1556   -
1557   - function updateProduct_countModification($product_id,$count){
1558   - $this->db->autoExecute("catalogs_products",array('count_modifications'=>$count),DB_AUTOQUERY_UPDATE,"id='$product_id'");
1559   - }
1560   -
1561   - function updateProductModificationCountPrefix($product_id,$prefix = "+"){
1562   -// print $product_id;
1563   - $sql = "UPDATE catalogs_products SET count_modifications = count_modifications $prefix 1 WHERE id =?";
1564   - $this->db->query($sql,array($product_id));
1565   - }
1566   -
1567   - function exportCSV(){
1568   - $tmpfname = "tmp/price.csv";
1569   - $handle = fopen($tmpfname, "w");
1570   - // fwrite($handle, $xml);
1571   - $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,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big 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());
1572   - foreach($res as $key=>$row){
1573   - $list = $row;
1574   - $mod_res = $this->db->getAll('select code,size,color,pic_big,active from catalogs_modifications where product_id=?',array($row[0]));
1575   - foreach($mod_res as $mod_row){$list[] = implode('=',$mod_row);}
1576   -
1577   - $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]));
1578   - $list[8]=implode(',',$f_row);
1579   -
1580   - switch($list[9]){
1581   - case 1 : $list[9] = 'ìóæñêîé'; break;
1582   - case 2 : $list[9] = 'æåíñêèé'; break;
1583   - case 3 : $list[9] = 'äåòñêèé'; break;
1584   - case 4 : $list[9] = 'óíèñåêñ'; break;
1585   - default : $list[9] = 'ìóæñêîé'; break;
1586   - }
1587   -
1588   - $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]));
1589   - $list[10]=implode(',',$y_row);
1590   -
1591   -
1592   - //print_r($list);exit;
1593   - $p_res = $this->db->getAll("select name,size,metka from catalogs_products_params where product_id=?",array($list[0]));
1594   - $param = array();
1595   - foreach($p_res as $row_p){
1596   - $param[] = implode('*',$row_p);
1597   - }
1598   - $list[15] = implode('=',$param);
1599   -
1600   - unset($list[0]);unset($list[1]);
1601   -
1602   - File_FGetCSV::fputcsv($handle,$list,';');
1603   -
1604   -
1605   -
1606   - }
1607   -
1608   - fclose($handle);
1609   -
1610   - $params = array(
1611   - 'file' => $tmpfname,
1612   - 'contenttype' => 'application/xls',
1613   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'),
1614   - 'cache' => false
1615   - );
1616   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
1617   - if ($error === true) {
1618   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
1619   - }
1620   -
1621   - unlink($tmpfname);
1622   - }
1623   -
1624   - function exportModCSV(){
1625   - $tmpfname = "tmp/price_mod.csv";
1626   - $handle = fopen($tmpfname, "w");
1627   - $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');
1628   - foreach($res as $key=>$row){
1629   - File_FGetCSV::fputcsv($handle,$row,';');
1630   - }
1631   - fclose($handle);
1632   - $params = array(
1633   - 'file' => $tmpfname,
1634   - 'contenttype' => 'application/xls',
1635   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'file_1.csv'),
1636   - 'cache' => false
1637   - );
1638   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
1639   - if ($error === true) {
1640   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
1641   - }
1642   -
1643   - unlink($tmpfname);
1644   - $this->db->autoExecute("catalogs_modifications",array('is_update'=>0),DB_AUTOQUERY_UPDATE);
1645   - }
1646   -
1647   - function exportOrdersCSV(){
1648   - $tmpfname = "tmp/orders.csv";
1649   - $handle = fopen($tmpfname, "w");
1650   - $res = $this->db->getAll('select name,email,adress,phone From catalogs_orders order by id desc');
1651   - foreach($res as $key=>$row){
1652   - File_FGetCSV::fputcsv($handle,$row,';');
1653   - }
1654   - fclose($handle);
1655   - $params = array(
1656   - 'file' => $tmpfname,
1657   - 'contenttype' => 'application/xls',
1658   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'orders.csv'),
1659   - 'cache' => false
1660   - );
1661   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
1662   - if ($error === true) {
1663   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
1664   - }
1665   -
1666   - unlink($tmpfname);
1667   - }
1668   -
1669   - function deleteProductParams($product_id){
1670   - $sql = "delete from catalogs_products_params where product_id=?";
1671   - $this->db->query($sql,array($product_id));
1672   - }
1673   -
1674   - function saveProductParams($product_id,$pruduct_params){
1675   - $this->deleteProductParams($product_id);
1676   - $array_params = explode("=",$pruduct_params);
1677   - foreach($array_params as $row){
1678   - $arr = explode('*',$row);
1679   - $this->db->autoExecute("catalogs_products_params",array('product_id'=>$product_id,'name'=>$arr[0],'size'=>$arr[1],'metka'=>$arr[2]),DB_AUTOQUERY_INSERT);
1680   - }
1681   - }
1682   -
1683   - function getProductParams($product_id){
1684   - $sql = "select * from catalogs_products_params where product_id=? order by id";
1685   - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
1686   - return $row;
1687   - }
1688   -
1689   - function viewProductParams($product_id){
1690   - $this->tpl->assign('params',$this->getProductParams($product_id));
1691   - }
1692   -
1693   - function saveTmpProduct($row,$product_id){
1694   - if($product_id>0){
1695   - $this->db->autoExecute("catalogs_tmp_products",array('name'=>$row[3],'product_id'=>$product_id),DB_AUTOQUERY_INSERT);
1696   - }
1697   - }
1698   -
1699   - function clearTmpProduct(){
1700   - $sql = "TRUNCATE TABLE catalogs_tmp_products";
1701   - $this->db->query($sql,array());
1702   - }
1703   -
1704   - function viewTmpProducts(){
1705   - $sql = "SELECT count( name ) AS cn, name
1706   -FROM catalogs_tmp_products
1707   -GROUP BY name
1708   -ORDER BY name";
1709   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1710   - $this->tpl->assign('list',$row);
1711   - $this->tpl->assign('list_total',$this->db->getOne("select count(*) from catalogs_tmp_products"));
1712   - }
1713   -
1714   - function importCSV($upload){ error_reporting(0);
1715   - if($upload['file']['name']=="file_1.csv"){print"Îøèáêà! Ôàéë öåí!";exit;}
1716   - //$arr_line = file($upload['file']['tmp_name']);
1717   - $f = fopen($upload['file']['tmp_name'], "r") or die("Îøèáêà!");
1718   - // print"<pre>";
1719   - $this->clearTmpProduct();
1720   - for ($i=0; $row_line=File_FGetCSV::fgetcsv($f,15000000,";"); $i++) {
1721   - // foreach($arr_line as $line){
1722   - //$row_line = fgetcsv(";",$line);
1723   - $rubric_id = $this->import_saveRubric($row_line[0],0);
1724   - $rubric_parent_id = $this->import_saveRubric($row_line[1],$rubric_id);
1725   - $brend_id = $this->import_saveBrend($row_line[2],$rubric_parent_id);
1726   - $pruduct_name = trim($row_line[3]);
1727   - $pruduct_about = trim($row_line[4]);
1728   - $pruduct_text = trim($row_line[5]);
1729   - switch($row_line[7]){
1730   - case 'ìóæñêîé' : $pruduct_sex = 1; break;
1731   - case 'æåíñêèé' : $pruduct_sex = 2; break;
1732   - case 'äåòñêèé' : $pruduct_sex = 3; break;
1733   - case 'óíèñåêñ' : $pruduct_sex = 4; break;
1734   - default : $pruduct_sex = 0; break;
1735   - }
1736   - $pruduct_date = trim($row_line[8]);
1737   - $pruduct_cine = trim($row_line[9]);
1738   - $pruduct_cine_last = trim($row_line[10]);
1739   - if($pruduct_cine<1){$pruduct_cine=$pruduct_cine_last;$pruduct_cine_last=0;}
1740   - $pruduct_akcii_id = trim($row_line[11]);
1741   - $pruduct_strnumber = trim($row_line[12]);
1742   - $pruduct_active = trim($row_line[13]);
1743   - $pruduct_params = trim($row_line[14]);
1744   - $pruduct_pic_tmp = trim($row_line[16]);
1745   - $pruduct_video = trim($row_line[15]);
1746   - $pruduct_update_id = $this->getProductID_R($pruduct_name,$rubric_parent_id);
1747   - $upload_pruduct = (strlen($pruduct_pic_tmp)>0 && is_file("./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp"))?array('pic'=>array('tmp_name'=>"./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp",'name'=>$pruduct_pic_tmp,'big'=>true)):null;
1748   - $product_id = $this->saveProduct(
1749   - array('rubric_id'=>$rubric_parent_id,
1750   - 'rubric_parent_id'=>$rubric_parent_id,
1751   - 'brend_id'=>$brend_id,
1752   - 'name'=>$pruduct_name,
1753   - 'about'=>$pruduct_about,
1754   - 'text'=>$pruduct_text,
1755   - 'video_code'=>$pruduct_video,
1756   - 'sex'=>$pruduct_sex,
1757   - 'date'=>$pruduct_date,
1758   - 'cine'=>$pruduct_cine,
1759   - 'cine_last'=>$pruduct_cine_last,
1760   - 'akcii_id'=>$pruduct_akcii_id,
1761   - 'strnumber'=>$pruduct_strnumber,
1762   - 'active'=>$pruduct_active,
1763   - 'meta_title'=>$pruduct_name,
1764   - 'meta_description'=>$pruduct_name,
1765   - 'meta_keywords'=>$pruduct_name,
1766   - 'meta_about'=>$pruduct_name,
1767   - 'filter'=>$this->import_saveFilters($rubric_parent_id,$row_line[6]),
1768   - 'years'=>$this->import_saveYear($rubric_parent_id,$pruduct_date),
1769   - 'akcii'=>array(),
1770   - 'update_id'=>$pruduct_update_id),
1771   - $upload_pruduct
1772   - );
1773   - //print $pruduct_update_id;exit;
1774   - $this->saveProductParams($product_id,$pruduct_params);
1775   - $this->deleteProductModifications($product_id,true);
1776   - $m_i = 0;
1777   - for($i=17;$i<count($row_line);$i++){
1778   - $arr_mod = trim($row_line[$i]);
1779   - if(strlen($arr_mod)>0){
1780   - $row_mod = explode("=",$arr_mod);
1781   - $upload_mod = (strlen($row_mod[3])>0 && is_file("./uploaded/pic/catalogs/modifications/big/".$row_mod[3]))?array('pic'=>array('tmp_name'=>"./uploaded/pic/catalogs/modifications/big/".$row_mod[3],'name'=>$row_mod[3],'big'=>true)):null;
1782   -
1783   - $this->SaveModification(
1784   - array('product_id'=>$product_id,
1785   - 'code'=>$row_mod[0],
1786   - 'size'=>$row_mod[1],
1787   - 'color'=>$row_mod[2],
1788   - 'active'=>$row_mod[4]
1789   - ),$upload_mod
1790   - );
1791   - if($row_mod[4]>0)$m_i++;
1792   - }
1793   - }
1794   - $this->updateProduct_countModification($product_id,$m_i);
1795   - //$this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]);
1796   - //$strnumber = $this->getProductID($row_line[3]); $this->save_keysProductsFilters($id,$data);
1797   - //print_r($row_line);
1798   - $this->saveTmpProduct($row_line,$product_id);
1799   - if(($i%30)==0)sleep(1);
1800   - }
1801   - // print"</pre>";
1802   -
1803   - }
1804   -
1805   - function importCSV_cine($upload){
1806   - if($upload['file']['name']!="file_1.csv"){print"Îøèáêà! Òîëüêî file_1.csv";exit;}
1807   - $arr_line = file($upload['file']['tmp_name']);
1808   - //print"<pre>";
1809   - $i = 0;
1810   - $mktime = mktime();
1811   - foreach($arr_line as $line){
1812   - $row_line = explode(";",$line);
1813   - $this->import_updateProductCine($this->getModificationProduct_id($row_line[0]),$row_line,$line,$mktime);
1814   - if(($i%30)==0)sleep(1);
1815   - $i++;
1816   - // print_r($row_line);
1817   - }//print"</pre>";
1818   -
1819   - // $this->updateCountModificationProducts();
1820   - }
1821   -
1822   - function loadCSV_cine($upload){
1823   - if($upload['file']['name']!="file_1.csv"){print"Îøèáêà! Òîëüêî file_1.csv";exit;}
1824   - $file = $_SERVER['DOCUMENT_ROOT'] . "/cron/file_1.csv";
1825   - //echo $file;
1826   - //exit;
1827   - move_uploaded_file($upload['file']['tmp_name'], $file);
1828   - }
1829   -
1830   - function is_loadCSV_cine(){
1831   - $file = $_SERVER['DOCUMENT_ROOT'] . "/cron/file_1.csv";
1832   - $is = is_file($file);
1833   - $this->tpl->assign('is',$is);
1834   - }
1835   -
1836   - function CronImportCSV_cine($upload){
1837   - if($upload['file']['name']!="file_1.csv"){print"Îøèáêà! Òîëüêî file_1.csv";exit;}
1838   - $arr_line = file($upload['file']['tmp_name']);
1839   - //print"<pre>";
1840   - $i = 0;
1841   - $mktime = mktime();
1842   - foreach($arr_line as $line){
1843   - $row_line = explode(";",$line);
1844   - $this->import_updateProductCine($this->getModificationProduct_id($row_line[0]),$row_line,$line,$mktime);
1845   - if(($i%30)==0)sleep(1);
1846   - $i++;
1847   - // print_r($row_line);
1848   - }//print"</pre>";
1849   - //$this->updateCountModificationProducts();
1850   - }
1851   -
1852   - function updateCountModificationProducts(){ // print"test";
1853   -// $this->db->autoExecute("catalogs_products",array('count_modifications'=>0),DB_AUTOQUERY_UPDATE);
1854   - $res = $this->db->getAll("select * from catalogs_products",array(),DB_FETCHMODE_ASSOC);
1855   - $i = 0;
1856   - foreach($res as $row){
1857   - $count = $this->db->getOne("select count(*) from catalogs_modifications where product_id=? and active>0",array($row['id']));
1858   - $this->db->autoExecute("catalogs_products",array('count_modifications'=>$count),DB_AUTOQUERY_UPDATE,"id='".$row['id']."'");
1859   - // if(($i%10)==0)sleep(10);
1860   - $i++;
1861   - }
1862   - }
1863   -
1864   - function config_update($id,$value){
1865   - $this->db->autoExecute("catalogs_config",array('value'=>$value),DB_AUTOQUERY_UPDATE,"id='".$id."'");
1866   - }
1867   -
1868   - function view_config_value($id){
1869   - $r = $this->db->getOne("select value from catalogs_config where id=?",$id);
1870   - $this->tpl->assign("config",$r);
1871   - return $r;
1872   - }
1873   -
1874   - function displayCatalogsCurs(){
1875   - $this->tpl->assign("tpl",'catalogs_curs.tpl');
1876   - }
1877   -
1878   - function displayCatalogs(){
1879   - $this->tpl->assign("tpl",'catalogs.tpl');
1880   - }
1881   -
1882   - function displayProducts(){
1883   - $this->tpl->assign("tpl",'catalogs_products.tpl');
1884   - }
1885   -
1886   - function displayProductsTops(){
1887   - $this->tpl->assign("tpl",'catalogs_products_tops.tpl');
1888   - }
1889   -
1890   - function displayProductsHits(){
1891   - $this->tpl->assign("tpl",'catalogs_products_hits.tpl');
1892   - }
1893   -
1894   - function displayProductsHitsAll(){
1895   - $this->tpl->assign("tpl",'catalogs_products_hits_all.tpl');
1896   - }
1897   -
1898   - function displayBasket($count_products,$cine_products,$cine_products_discount,$discount){
1899   - $this->tpl->assign("count_products",$count_products);
1900   - $this->tpl->assign("cine_products",$cine_products);
1901   - $this->tpl->assign("cine_products_discount",$cine_products_discount);
1902   - $this->tpl->assign("discount",$discount);
1903   - $this->tpl->display('basket.tpl');
1904   - }
1905   -
1906   - function displayProduct(){
1907   - $this->tpl->assign("tpl",'catalogs_product.tpl');
1908   - }
1909   -
1910   - function displayProductBasket(){
1911   - $this->tpl->assign("tpl",'catalogs_basket.tpl');
1912   - }
1913   -
1914   - function displayBrends(){
1915   - $this->tpl->assign("tpl",'catalogs_brends.tpl');
1916   - }
1917   -
1918   - function displayBrend(){
1919   - $this->tpl->assign("tpl",'catalogs_brend.tpl');
1920   - }
1921   -
1922   - function displayCities(){
1923   - $this->tpl->assign("tpl",'catalogs_cities.tpl');
1924   - }
1925   -
1926   - function displayProductBasketSend(){
1927   - $this->tpl->assign("tpl",'catalogs_basket_send.tpl');
1928   - }
1929   -
1930   - function displayReg(){
1931   - $this->tpl->assign("tpl",'catalogs_reg.tpl');
1932   - }
1933   -
1934   - function displayEditUser(){
1935   - $this->tpl->assign("tpl",'catalogs_user_edit.tpl');
1936   - }
1937   -
1938   - function displayNoPsw(){
1939   - $this->tpl->assign("tpl",'catalogs_nopsw.tpl');
1940   - }
1941   -
1942   - function displayOrders(){
1943   - $this->tpl->assign("tpl",'catalogs_orders.tpl');
1944   - }
1945   -
1946   - function displayOrder(){
1947   - $this->tpl->assign("tpl",'catalogs_order.tpl');
1948   - }
1949   -
1950   - function displayUsers(){
1951   - $this->tpl->assign("tpl",'catalogs_users.tpl');
1952   - }
1953   -
1954   - function displayUser(){
1955   - $this->tpl->assign("tpl",'catalogs_user.tpl');
1956   - }
1957   -
1958   - function displayFilters(){
1959   - $this->tpl->assign("tpl",'catalogs_filters.tpl');
1960   - }
1961   -
1962   - function displayYears(){
1963   - $this->tpl->assign("tpl",'catalogs_years.tpl');
1964   - }
1965   -
1966   - function displayWinProducts(){
1967   - $this->tpl->display('catalogs_win_products.tpl');
1968   - }
1969   -
1970   - function displayModifications(){
1971   - $this->tpl->assign("tpl",'catalogs_modifications.tpl');
1972   - }
1973   -
1974   - function displayImport(){
1975   - $this->tpl->assign("tpl",'catalogs_import.tpl');
1976   - }
1977   -
1978   - function displayImportCine(){
1979   - $this->tpl->assign("tpl",'catalogs_import_cine.tpl');
1980   - }
1981   -
1982   - function displayAkcii(){
1983   - $this->tpl->assign("tpl",'catalogs_akcii.tpl');
1984   - }
1985   -
1986   - function displayCompare(){
1987   - $this->tpl->assign("tpl",'catalogs_compare.tpl');
1988   - }
1989   -
1990   - function displayTmpProducts(){
1991   - $this->tpl->assign("tpl",'catalogs_tmp_products.tpl');
1992   - }
1993   -
1994   -}
1995   -?>
libs/catalogs2.class.php deleted
1   -<?php
2   -class Catalogs{
3   - var $db = null;
4   - var $tpl = null;
5   - var $error = null;
6   - var $photo_id = null;
7   -
8   -
9   - function Catalogs(&$db,&$tpl,&$error){
10   - $this->db = &$db;
11   - $this->tpl = &$tpl;
12   - $this->error = &$error;
13   - }
14   -
15   -
16   - function trim(&$data){
17   - foreach($data as $key=>$value){
18   - if(is_array($value))$this->trim($value);
19   - else $data[$key] = stripslashes(trim($value));
20   - }
21   - }
22   -
23   -
24   - function valid($data,$upload = null){
25   -
26   - if(isset($data['name'])){
27   - if( !preg_match("/.{1,100}/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ.";
28   - }
29   -
30   - if(isset($data['about_min'])){
31   - if( !preg_match("/.+/is",$data['about_min']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Êðàòêîå îïèñàíèå.";
32   - }
33   - /*
34   - if(isset($data['text'])){
35   - if( !preg_match("/.+/is",$data['text']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ïîëíîå îïèñàíèå.";
36   - } */
37   -/*
38   - if(isset($data['cine'])){
39   - if( !preg_match("/[0-9]+/",$data['cine']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Öåíà, òîëüêî öèôðû.";
40   - } */
41   -
42   - if(isset($upload['pic']['name']) && $upload['pic']['tmp_name']){
43   - $type = substr(strrchr($upload['pic']['name'],"."),1);
44   - if( !preg_match("/^(jpeg|jpg|gif|png|bmp)$/i",$type) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif.";
45   - }
46   -
47   - if(isset($upload['file']['name'])){
48   - if( !preg_match("/\.csv$/i",$upload['file']['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ CSV ôàéë, òîëüêî csv.";
49   - }
50   -
51   -
52   - if(isset($data['order_name'])){
53   - if( !preg_match("/.{1,100}/i",$data['order_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
54   - }
55   -
56   - if(isset($data['order_adress'])){
57   - if( !preg_match("/.{1,200}/i",$data['order_adress']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Àäðåñ (Ìàêñèìóì 200 ñèìâîëîâ).";
58   - }
59   -
60   - if(isset($data['order_phone'])){
61   - if( !preg_match("/.{1,70}/i",$data['order_phone']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ).";
62   - }
63   -
64   - if(isset($data['user_name'])){
65   - if( !preg_match("/.{1,100}/i",$data['user_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
66   - }
67   -
68   - if(isset($data['user_email'])){
69   - if( !preg_match("/.{1,80}/i",$data['user_email']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø e-mail (Ìàêñèìóì 80 ñèìâîëîâ).";
70   - }
71   -
72   - if(isset($data['user_login'])){
73   - if( !preg_match("/.{1,100}/i",$data['user_login']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ëîãèí (Ìàêñèìóì 100 ñèìâîëîâ).";
74   - elseif( $this->isLoginUser($data['user_login']) ) $this->error[] = "Îøèáêà òàêîé Ëîãèí óæå åñòü!";
75   - }
76   -
77   - if(isset($data['you_login'])){
78   - if( !$this->isLoginUser($data['you_login']) ) $this->error[] = "Òàêîãî ËÎÃÈÍÀ íåò â áàçå äàííûõ ñàéòà!";
79   - }
80   -
81   - if(isset($data['user_psw'])){
82   - if( !preg_match("/.{1,100}/i",$data['user_psw']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ïàðîëü (Ìàêñèìóì 100 ñèìâîëîâ).";
83   - }
84   -
85   - return ( count($this->error) ) ? true : false;
86   - }
87   -
88   - function deleteRubric($id,$field="id"){
89   - $sql = "select pic,id,parent_id from catalogs_rubrics where $field=?";
90   - $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
91   - foreach($res as $row){
92   - @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/rubrics/{$row['pic']}");
93   - $sql = "delete from catalogs_rubrics where id=?";
94   - $this->db->query($sql,array($row['id']));
95   - $this->deleteFiltersRubric_id($row['id']);
96   - $this->deleteYearsRubric_id($row['id']);
97   - $this->deleteProductsRubric($row['id']);
98   - $this->deleteRubric($row['id'],"parent_id");
99   - }
100   - }
101   -
102   - function deleteProductPics($id,$pics = array('pic_big','pic')){
103   - $sql = "select pic_big,pic from catalogs_products where id=?";
104   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
105   - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}");
106   - if(in_array('pic',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/{$row['pic']}");
107   - }
108   -
109   - function deleteProduct($id){
110   - $this->deleteProductPics($id);
111   - $sql = "delete from catalogs_products where id=?";
112   - $this->db->query($sql,array($id));
113   - $this->delete_keysProductsFilters($id);
114   - $this->delete_keysProductsAkcii($id);
115   - $this->delete_keysProductsYears($id);
116   - $this->delete_keysProductsCities($id);
117   - $this->deleteProductModifications($id);
118   - }
119   -
120   - function deleteProductsRubric($id){
121   - $res = $this->db->getAll("select id from catalogs_products where rubric_id=?",array($id),DB_FETCHMODE_ASSOC);
122   - foreach($res as $row){
123   - $this->deleteProduct($row['id']);
124   - }
125   - }
126   -
127   -
128   - function PhotosCheck($id_s,$check_s = array()){
129   - $sql = "UPDATE gallery SET active = ? WHERE id =?";
130   -
131   - foreach($id_s as $id){
132   - $this->db->query($sql,array(0,$id));
133   - }
134   - if(count($check_s)){
135   - foreach($check_s as $id){
136   - $this->db->query($sql,array(1,$id));
137   - }
138   - }
139   - }
140   -
141   - function viewRubrics($id = 0,$parent_id = 0){ // print $parent_id."<br />";
142   - global $rubrics;
143   - $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";
144   - $res = $this->db->query($sql,array($id));
145   - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
146   - $rubrics[] = $row; //print $row['id']."<br />";
147   -
148   - if(in_array($row['id'],$this->getParentIdRubric($parent_id))){$this->viewRubrics($row['id']);}
149   - // if($row['level']==0){$this->viewRubrics($row['id']);}
150   - }
151   - $this->tpl->assign("rubrics",$rubrics);
152   - }
153   -
154   - function getParentIdRubric($id){
155   - //$ids = array();
156   - global $ids;
157   - if(!count($ids))$ids = array();
158   - while($id>0){
159   - $row = $this->db->getRow('select id,parent_id from catalogs_rubrics where id=?',array($id),DB_FETCHMODE_ASSOC);
160   - //if(isset($row['id']))
161   - $ids[] = $row['id'];
162   - $id = $row['parent_id'];
163   - } //print_r($ids);
164   - // sort($ids);
165   - return $ids;
166   - }
167   -
168   - function viewRubricsAll($id = 0){
169   - global $rubrics;
170   - $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc";
171   - $res = $this->db->query($sql,array($id));
172   - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
173   - $rubrics[] = $row;
174   - $this->viewRubricsAll($row['id']);
175   - }
176   - $this->tpl->assign("rubrics",$rubrics);
177   - }
178   -
179   -
180   - function viewRubrics_begin($item = 'parents'){
181   - $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=? order by a.sort asc";
182   - $row = $this->db->getAll($sql,array(0),DB_FETCHMODE_ASSOC);
183   - foreach($row as $key=>$value){
184   - if($item=='parents'){
185   - $row[$key]['parents'] = $this->db->getAll("select * from catalogs_rubrics where parent_id=? order by sort asc",array($value['id']),DB_FETCHMODE_ASSOC);
186   - }elseif($item=='brends'){
187   - $row[$key]['brends'] = $this->db->getAll("select * from catalogs_brends where rubric_id in (select id from catalogs_rubrics where parent_id=? or id=?) group by name",array($value['id'],$value['id']),DB_FETCHMODE_ASSOC);
188   - }
189   - }
190   - $this->tpl->assign("catalogs_rubrics_begin",$row);
191   - }
192   -
193   - function viewRubrics_parent($parent_id = 0){
194   - $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc";
195   - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC);
196   - $this->tpl->assign("catalogs_rubrics_parent",$row);
197   - }
198   -
199   - function viewRubrics_parent2($rub_id){
200   - $parent_id = $this->getRubricParent($rub_id);
201   - if($parent_id==0)$parent_id = $rub_id;
202   - $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc";
203   - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC);
204   - $this->tpl->assign("catalogs_rubrics_parent2",$row);
205   - }
206   -
207   - function viewRubricOne($id,&$row){
208   - $sql = "select * from catalogs_rubrics where id=?";
209   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
210   - $this->tpl->assign('rubric',$row);
211   - }
212   -
213   - function getRubricName($id){
214   - $sql = "select name from catalogs_rubrics where id=?";
215   - return $this->db->getOne($sql,array($id));
216   - }
217   -
218   - function getRubricParent($id){
219   - $sql = "select parent_id from catalogs_rubrics where id=?";
220   - return $this->db->getOne($sql,array($id));
221   - }
222   -
223   - function SaveRubric($data,$upload){
224   - $table_name = "catalogs_rubrics";
225   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
226   - $parent_id = (isset($data['parent_id']) ? $data['parent_id'] : 0);
227   - $fields_values = array('parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1),'sort' => $data['sort'],'name' => $data['name'],'list_name' => $data['list_name'],'sort_cost' => $data['sort_cost'],'meta_title' => $data['meta_title'],'meta_description' => $data['meta_description'],'meta_keywords' => $data['meta_keywords'],'meta_about' => $data['meta_about']);
228   - /*
229   - if($upload['pic']['tmp_name']){
230   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/catalogs/rubrics/"));
231   - } */
232   -
233   - if($upload['pic']['tmp_name']){
234   - if($data['update_id']>0)$this->deletePicRubric($data['update_id']);
235   - $uploadfile = "./uploaded/pic/catalogs/rubrics/";
236   - $type = substr(strrchr($upload['pic']['name'],"."),1);
237   - $uploadname = mktime() . "." . $type;
238   - if (!move_uploaded_file($_FILES['pic']['tmp_name'], $uploadfile . $uploadname))print"Îøèáêà ïðè çàêà÷êå ôàéëà!";
239   - $fields_values['pic'] = $uploadname;
240   - }
241   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
242   - }
243   -
244   - function deletePicRubric($id){
245   - $sql = "select pic from catalogs_rubrics where id=?";
246   - $rub = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
247   - @unlink("./uploaded/pic/catalogs/rubrics/{$rub['pic']}");
248   - }
249   -
250   - function getLevelRubric($id){
251   - $level = $this->db->getOne("select level from catalogs_rubrics where id=?",array($id));
252   - return ($level==null)? -1 : $level;
253   - }
254   -
255   - function saveUser($data){
256   - $table_name = "catalogs_users";
257   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
258   - $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());
259   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
260   - }
261   -
262   - function updateUser($data){
263   - $table_name = "catalogs_users";
264   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
265   - $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']);
266   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
267   - }
268   -
269   - function updateUserID($data,$id){
270   - $table_name = "catalogs_users";
271   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
272   - $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']);
273   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$id}");
274   - }
275   -
276   - function deleteUser($id){
277   - $this->db->query("delete from catalogs_users where id=?",array($id));
278   - $res_order_id = $this->db->getRow("select id from catalogs_orders where user_id=?",array($id),DB_FETCHMODE_ASSOC);
279   - if(count($res_order_id)){
280   - foreach($res_order_id as $_id){
281   - $this->db->query("delete from catalogs_orders where id=?",array($_id));
282   - $this->db->query("delete from catalogs_orders_products where order_id=?",array($_id));
283   - }}
284   - }
285   -
286   - function isLoginUser($login){
287   - return $this->db->getOne("select id from catalogs_users where login=?",array($login));
288   - }
289   -
290   - function sendLoginInfo($login){
291   - $user = $this->db->getRow("select * from catalogs_users where login=?",array($login),DB_FETCHMODE_ASSOC);
292   - $mail = new PHPMailer();
293   - $mail->CharSet = "windows-1251";
294   - $mail->From = "shop@eltrade.com.ua";
295   - $mail->FromName = "shop@eltrade.com.ua";
296   - $mail->AddAddress($user['email'], $user['name']);
297   - $mail->Subject = "Àêêàóíò ýêñòðèì";
298   - $msg = "";
299   - $msg .= "Çäðàâñòâóéòå: ".$user['name'];
300   - $msg .= "<br />";
301   - $msg .= "Âàø ëîãèí: ".$user['login'];
302   - $msg .= "<br>";
303   - $msg .= "Âàø ïàðîëü: ".$user['psw'];
304   - $msg .= "<br>";
305   - $msg .= "Ñ óâàæåíèåì, shop@eltrade.com.ua";
306   -
307   - $mail->MsgHTML($msg);
308   -
309   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
310   - $mail->ClearAddresses();
311   - $mail->ClearAttachments();
312   - }
313   -
314   - function isUser($login,$psw){
315   - $row = $this->db->getRow("select * from catalogs_users where login=? AND psw=?",array($login,$psw),DB_FETCHMODE_ASSOC);
316   - $this->tpl->assign('user_service',$row);
317   - return $row['id'];
318   - }
319   -
320   - function viewUser($id){
321   - $sql = "select * from catalogs_users where id=?";
322   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
323   - $this->tpl->assign('user',$row);
324   - }
325   -
326   - function getUserDiscount($id){
327   - return $this->db->getOne("select discount from catalogs_users where id=?",array($id));
328   - }
329   -
330   - function viewUsers(){
331   - $sql = "SELECT catalogs_users. *, COUNT(catalogs_orders.user_id) as count_orders
332   -FROM catalogs_users LEFT JOIN catalogs_orders ON catalogs_orders.user_id=catalogs_users.id
333   -GROUP BY catalogs_users.id
334   -ORDER BY catalogs_users.mktime DESC";
335   -
336   - $pagerOptions = Array(
337   - 'mode' => 'Sliding',
338   - 'delta' => 6,
339   - 'perPage' => 10,
340   - 'linkClass'=>"link_class",
341   - 'curPageLinkClassName'=>"link_class_active",
342   - 'spacesBeforeSeparator' => 1,
343   - 'spacesAfterSeparator' => 1
344   - );
345   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
346   -
347   - $this->tpl->assign('usersData', $res);
348   - }
349   -
350   - function viewModifications($product_id){
351   - $sql = "select * from catalogs_modifications where product_id=? order by id desc";
352   - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
353   - $this->tpl->assign('modifications', $row);
354   - }
355   -
356   - function viewModificationsProduct($product_id){
357   - $sql = "select * from catalogs_modifications where product_id=? and active>0 order by id desc";
358   - // $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";
359   - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
360   - $this->tpl->assign('modifications', $row);
361   - }
362   -
363   - function viewModificationOne($id){
364   - $sql = "select * from catalogs_modifications where id=?";
365   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
366   - $this->tpl->assign('modification', $row);
367   - }
368   -
369   - function getModificationProduct_id($code){
370   - return $this->db->getOne("select product_id from catalogs_modifications where code=?",array($code));
371   - }
372   -
373   - function SaveModification($data,$upload){
374   - $table_name = "catalogs_modifications";
375   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
376   - $fields_values = array('product_id'=>$data['product_id'],'code'=>$data['code'],'size' => $data['size'],'color' => $data['color'],'active' => $data['active']);
377   - if(isset($data['delete_pic'])){if($data['update_id']>0){$this->deleteModificationPics($data['update_id']);}$fields_values['pic']=null;$fields_values['pic_big']=null;}
378   - if($upload['pic']['tmp_name']){
379   - if($data['update_id']>0){
380   - $delete_pics = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?array('pic'):array('pic','pic_big');
381   - $this->deleteModificationPics($data['update_id'],$delete_pics);
382   - }
383   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"144",'height'=>"144",'upload_path'=>"./uploaded/pic/catalogs/modifications/"));
384   - $fields_values['pic_big'] = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?$upload['pic']['name']:upload_ImageResize($upload['pic'],array('width'=>"500",'height'=>"500",'upload_path'=>"./uploaded/pic/catalogs/modifications/big/"));
385   - }
386   -
387   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id='{$data['update_id']}'");
388   - return $id;
389   - }
390   -
391   - function deleteModification($id){
392   - $this->deleteModificationPics($id);
393   - $this->db->query("delete from catalogs_modifications where id=?",array($id));
394   - }
395   -
396   - function deleteProductModifications($product_id,$nopic = false){
397   - IF($nopic==false){
398   - $sql = "select * from catalogs_modifications where product_id=?";
399   - $res = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
400   - foreach($res as $row){
401   - $this->deleteModificationPics($row['id']);
402   - }
403   - }
404   - $this->db->query("delete from catalogs_modifications where product_id=?",array($product_id));
405   - }
406   -
407   - function deleteModificationPics($id,$pics = array('pic_big','pic')){
408   - $sql = "select pic,pic_big from catalogs_modifications where id=?";
409   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
410   - if(in_array('pic',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/{$row['pic']}");
411   - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}");
412   - }
413   -
414   - function ProductClick($id){
415   - $this->db->query("update catalogs_products set click=click+1 where id='$id'");
416   - }
417   -
418   - function SaveProduct($data,$upload){
419   - $table_name = "catalogs_products";
420   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
421   - $id = ($data['update_id']>0) ? $data['update_id'] : $this->db->nextId('mySequence_'.$table_name);
422   - $fields_values = array('id'=>$id,'rubric_id'=>$data['rubric_id'],'rubric_parent_id'=>$this->getRubricParent($data['rubric_id']),'brend_id'=>$data['brend_id'],'name' => $data['name'],'about' => $data['about'],'text' => $data['text'],'strnumber' => $data['strnumber'],'cine'=>$data['cine'],'cine_last'=>$data['cine_last'],'sex'=>$data['sex'], 'mktime' => mktime(),'meta_title' => $data['meta_title'],'meta_description' => $data['meta_description'],'meta_keywords' => $data['meta_keywords'],'meta_about' => $data['meta_about'],'active' => $data['active']);
423   - if($upload['pic']['tmp_name']){
424   - $delete_pics = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?array('pic'):array('pic','pic_big');
425   - $this->deleteProductPics($id,$delete_pics);
426   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"144",'height'=>"144",'upload_path'=>"./uploaded/pic/catalogs/products/"));
427   - $fields_values['pic_big'] = (isset($upload['pic']['big']) && $upload['pic']['big']==true)?$upload['pic']['name']:upload_ImageResize($upload['pic'],array('width'=>"500",'height'=>"500",'upload_path'=>"./uploaded/pic/catalogs/products/big/"));
428   - }
429   -
430   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id='$id'");
431   - $this->save_keysProductsFilters($id,$data);
432   - $this->save_keysProductsYears($id,$data);
433   - $this->save_keysProductsCities($id,$data);
434   - $this->save_keysProductsAkcii($id,$data);
435   - return $id;
436   - }
437   -
438   - function save_keysProductsFilters($id,$data){
439   - $this->delete_keysProductsFilters($id);
440   - if(!isset($data['filter']))return false;
441   - $table_name = "catalogs_keys_products_filters";
442   - foreach($data['filter'] as $filter_id){
443   - $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
444   - }
445   - }
446   -
447   - function delete_keysProductsFilters($id){
448   - $this->db->query("delete from catalogs_keys_products_filters where product_id=?",array($id));
449   - }
450   -
451   - function save_keysProductsYears($id,$data){
452   - $this->delete_keysProductsYears($id);
453   - if(!isset($data['years']))return false;
454   - $table_name = "catalogs_keys_products_years";
455   - foreach($data['years'] as $filter_id){
456   - $this->db->autoExecute($table_name,array('product_id'=>$id,'year_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
457   - }
458   - }
459   -
460   - function delete_keysProductsYears($id){
461   - $this->db->query("delete from catalogs_keys_products_years where product_id=?",array($id));
462   - }
463   -
464   - function save_keysProductsCities($id,$data){
465   - $this->delete_keysProductsCities($id);
466   - if(!isset($data['city']))return false;
467   - $table_name = "catalogs_keys_products_cities";
468   - foreach($data['city'] as $city_id){
469   - $this->db->autoExecute($table_name,array('product_id'=>$id,'city_id'=>$city_id),DB_AUTOQUERY_INSERT);
470   - }
471   - }
472   -
473   - function delete_keysProductsAkcii($id){
474   - $this->db->query("delete from catalogs_keys_products_akcii where product_id=?",array($id));
475   - }
476   -
477   - function save_keysProductsAkcii($id,$data){
478   - $this->delete_keysProductsAkcii($id);
479   - if(!isset($data['akcii']))return false;
480   - $table_name = "catalogs_keys_products_akcii";
481   - foreach($data['akcii'] as $rubric_id){
482   - $this->db->autoExecute($table_name,array('product_id'=>$id,'rubric_id'=>$rubric_id),DB_AUTOQUERY_INSERT);
483   - }
484   - }
485   -
486   - function delete_keysProductsCities($id){
487   - $this->db->query("delete from catalogs_keys_products_cities where product_id=?",array($id));
488   - }
489   -
490   -
491   - function saveProductSizeCine($id,$data){
492   - $this->db->query("delete from catalogs_products_cine where product_id=?",array($id));
493   - foreach($data['size'] as $key=>$size){
494   - $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);
495   - }
496   - }
497   -
498   -
499   - function productsIsHits($products,$hits,$tops,$headers){
500   - $sql = "update catalogs_products set hit=?,top=?,header=? where id=?";
501   - foreach($products as $id){
502   - if(@in_array($id,$hits))$hit = true;
503   - else $hit = false;
504   - if(@in_array($id,$tops))$top = true;
505   - else $top = false;
506   - if(@in_array($id,$headers))$header = true;
507   - else $header = false;
508   - $this->db->query($sql,array($hit,$top,$header, $id));
509   - }
510   - }
511   -
512   - function productsIsHits2($data,$hits){
513   - $sql = "update catalogs_products set hit=?,hit_sort=? where id=?";
514   - foreach($data['product_id'] as $key=>$id){
515   - if(@in_array($id,$hits))$hit = true;
516   - else $hit = false;
517   - $this->db->query($sql,array($hit,$data['hit_sort'][$key],$id));
518   - }
519   - }
520   -
521   - function viewProducts($params,$rubricsP = false,$count_modf = true){
522   - $search = array();
523   - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20;
524   - if(isset($params['search_str']) && strlen($params['search_str'])>0){
525   - $array_string = explode(" ",trim($params['search_str']));
526   - $search_string = array();
527   - $search_string[] = "catalogs_products.name like '%{$params['search_str']}%'";
528   - foreach($array_string as $str){
529   - $search_string[] = "catalogs_products.name like '$str'";
530   - $search_string[] = "catalogs_products.name like'% $str %'";
531   - $search_string[] = "catalogs_products.name like'%$str %'";
532   - $search_string[] = "catalogs_products.name like'% $str%'";
533   - }
534   - $search[] = "((" . implode(" OR ",$search_string) . ") OR ". sprintf("catalogs_modifications.code='%s'", $params['search_str']).")";
535   - }
536   - // print_r($params);
537   - if(isset($params['brendID']) && $params['brendID']>0)$search[] = sprintf("catalogs_products.brend_id='%d'",$params['brendID']);
538   - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")";
539   - if(isset($params['sex']) && $params['sex']>0)$search[] = sprintf("catalogs_products.sex='%d'",$params['sex']);
540   - //if(isset($params['akcii']) && $params['akcii']>0)$search[] = sprintf("catalogs_products.hit='%d'",$params['akcii']);
541   - if($count_modf==true)$search[] = "catalogs_products.count_modifications>0";
542   - if(isset($params['rubID']) && $params['rubID']>0){
543   - $search[] = ($rubricsP==true)?sprintf("(catalogs_products.rubric_id='%d')",$params['rubID']):sprintf("(catalogs_products.rubric_parent_id='%d' || catalogs_products.rubric_id='%d')",$params['rubID'],$params['rubID']);
544   - }
545   - if(isset($params['filterID'])){
546   - //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']);
547   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")";
548   - }
549   - if(isset($params['yearID']) && $params['yearID']>0){
550   - //$search[] = sprintf("catalogs_keys_products_years.year_id='%d'", $params['yearID']);
551   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$params['yearID']).")";
552   - }
553   - $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 ";
554   - if(isset($params['akcii']) && $params['akcii']>0)$sql .= "RIGHT JOIN catalogs_keys_products_akcii ON catalogs_keys_products_akcii.product_id=catalogs_products.id ";
555   - if(isset($params['filterID']) && $params['filterID']>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
556   - if(isset($params['yearID']) && $params['yearID']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
557   - if(isset($params['search_str']) && strlen($params['search_str'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id ";}
558   - $sql .= "WHERE 1=1 ";
559   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
560   - if(isset($params['akcii']) && $params['akcii']>0){$sql .= " GROUP BY catalogs_keys_products_akcii.product_id ";}
561   - if(isset($params['search_str']) && strlen($params['search_str'])>0){$sql .= " GROUP BY catalogs_products.id ";}
562   - $sql .= "order by ";
563   - if(isset($_GET['sort'])){
564   - switch($_GET['sort']){
565   - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break;
566   - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break;
567   - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break;
568   - default : $sql .= " catalogs_products.mktime desc";
569   - }
570   - }else $sql .= " catalogs_products.cine desc";
571   - // print $sql;
572   - $pagerOptions = Array(
573   - 'mode' => 'Sliding',
574   - 'delta' => 6,
575   - 'perPage' => $perPage,
576   - 'linkClass'=>"link_class",
577   - 'curPageLinkClassName'=>"link_class_active",
578   - 'spacesBeforeSeparator' => 1,
579   - 'spacesAfterSeparator' => 1
580   - );
581   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
582   -
583   - $this->tpl->assign('productsData', $res);
584   - }
585   -
586   - function getCineCurs($type_curs,$cine){
587   - $curs = array();
588   -
589   - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah'));
590   - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank'));
591   - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd'));
592   -
593   - switch($type_curs){
594   - case 'uah' :
595   - $curs['uah'] = round($cine,2);
596   - $curs['uah_bank'] = round(($cine/$usd)*$uah_bank,2);
597   - $curs['usd'] = round($cine/$usd,2);
598   - break;
599   - case 'uah_bank' :
600   - $curs['uah'] = round(($cine/$uah_bank)*$uah,2);
601   - $curs['uah_bank'] = round($cine,2);
602   - $curs['usd'] = round($cine/$uah_bank,2);
603   - break;
604   - case 'usd' :
605   - $curs['uah'] = round($cine*$uah,2);
606   - $curs['uah_bank'] = round($cine*$uah_bank,2);
607   - $curs['usd'] = round($cine,2);
608   - break;
609   - }
610   - return $curs;
611   - }
612   -
613   - function viewProductsAkcii($rubric_id){
614   - $sql = "select catalogs_products.* from catalogs_keys_products_akcii left join catalogs_products on catalogs_products.id=catalogs_keys_products_akcii.product_id where catalogs_keys_products_akcii.rubric_id=?";
615   - $res = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC);
616   - //print_r($res);
617   - $this->tpl->assign('products_akcii',$res);
618   - }
619   -
620   - function viewProductsHitsAll2(){
621   - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20;
622   - $sql = "select * from catalogs_products where hit=?";
623   - $pagerOptions = Array(
624   - 'mode' => 'Sliding',
625   - 'delta' => 6,
626   - 'perPage' => $perPage,
627   - 'linkClass'=>"link_class",
628   - 'curPageLinkClassName'=>"link_class_active",
629   - 'spacesBeforeSeparator' => 1,
630   - 'spacesAfterSeparator' => 1
631   - );
632   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array(true));
633   -
634   - $this->tpl->assign('productsData', $res);
635   - }
636   -
637   - function viewProductsHits($params,$limit = 4,$curs = null){
638   - $search = array();
639   - if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("rubric_parent_id=%d",$params['rubID']);
640   - $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.hit=? and catalogs_products.count_modifications>0 ";
641   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
642   - $sql .= "order by catalogs_products.mktime desc";
643   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
644   - $this->tpl->assign('products_hits',$res);
645   - }
646   -
647   - function viewProductsTops($params,$limit = 4,$curs = null){
648   - $search = array();
649   - if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("rubric_parent_id=%d",$params['rubID']);
650   - $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.top=? and catalogs_products.count_modifications>0 ";
651   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
652   - $sql .= "order by catalogs_products.mktime desc";
653   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
654   - $this->tpl->assign('products_top',$res);
655   - }
656   -
657   - function viewProductsTopOne(){
658   - $count = $this->db->getOne("select count(*) from catalogs_products WHERE catalogs_products.header=?",array(true));
659   - $limit = 1; $round = rand(0,($count-$limit));
660   - $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);
661   - $this->tpl->assign('products_top_one',$res);
662   - }
663   -
664   - function viewProductsLast($limit = 1){
665   - $search = array();
666   - $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=? ";
667   - $sql .= "order by catalogs_products.mktime desc LIMIT $limit";
668   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
669   - $this->tpl->assign('products_last',$res);
670   - }
671   -
672   - function viewProductsHitsAll($limit = 4){
673   - $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=? ";
674   - $sql .= "order by mktime desc LIMIT $limit";
675   - $products_hits = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
676   - $this->tpl->assign('products_hits_all',$products_hits);
677   - }
678   -
679   - function viewProductOne($id,&$row){
680   - $sql = "select p.*,b.text as brend_text from catalogs_products p left join catalogs_brends b ON b.id=p.brend_id where p.id=?";
681   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
682   - $this->tpl->assign('product',$row);
683   - }
684   -
685   - function viewProductNembers($str_n){
686   - $arr_id = explode(",",$str_n);
687   - $products = array();
688   - foreach($arr_id as $id){
689   - $count = $this->db->getOne("select count(*) from catalogs_keys_products_filters where filter_id=?",array(trim($id)));
690   - $limit = 1; $round = rand(0,($count-$limit));
691   - $products[] = $this->db->getRow("select catalogs_products.* from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id where catalogs_keys_products_filters.filter_id=? order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") . " LIMIT $round,$limit",array(trim($id)),DB_FETCHMODE_ASSOC);
692   - }
693   - $this->tpl->assign('products_parent',$products);
694   - }
695   -
696   - function getProductSizeCine($id,&$products){
697   - $res = $this->db->getAll("select * from catalogs_products_cine where product_id=?",array($id),DB_FETCHMODE_ASSOC);
698   - $i = 0;
699   - foreach($res as $row){
700   - $products['size_' . $row['n']] = $row['size'];
701   - $products['cine_' . $row['n']] = $row['cine'];
702   - $products['metka_' . $row['n']] = $row['metka'];
703   - $products['id_cine_' . $row['n']] = $row['id'];
704   - $i++;
705   - } //print_r($products);
706   - }
707   - /*
708   - function getProductCine($id,$curs = null){
709   - $sql = "select cine from catalogs_products where id=?";
710   - $row = $this->db->getOne($sql,array($id));
711   - return $row;
712   - }*/
713   -
714   - function getProductCine($id){
715   - $sql = "select catalogs_products.cine from catalogs_modifications left join catalogs_products on catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?";
716   - return $this->db->getOne($sql,array($id));
717   - }
718   -
719   - function viewProductCine($id){
720   - $row = $this->db->getAll("select * from catalogs_products_cine where product_id=? and cine>0 Order By n ASC",array($id),DB_FETCHMODE_ASSOC);
721   - $this->tpl->assign('product_cines',$row);
722   - }
723   -
724   - function viewCatalogsCurs(){
725   - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah'));
726   - $this->tpl->assign('curs_uah',$uah);
727   - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank'));
728   - $this->tpl->assign('curs_uah_bank',$uah_bank);
729   - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd'));
730   - $this->tpl->assign('curs_usd',$usd);
731   - }
732   -
733   - function saveCurs($data){
734   - $table_name = "catalogs_curs";
735   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
736   - foreach($data as $key=>$value){
737   - $this->db->autoExecute($table_name,array('curs'=>$value),$DB_AUTOQUERY,"type='$key'");
738   - }
739   - }
740   -
741   - function viewVarCurs($curs){
742   - $this->tpl->assign('curs',$curs);
743   - }
744   -
745   - function viewBasketProducts($session_basket,$curs = null,$discount = 0){
746   - $products = array(); $i = 0; $cineAll = 0;
747   -// $sql = "select catalogs_products.* from catalogs_products where catalogs_products.id=?";
748   - $sql = "select catalogs_modifications.id,catalogs_products.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=?";
749   - foreach($session_basket as $id){
750   - $products_count = 1;
751   - if(count($products)){
752   - foreach($products as $key=>$value){
753   - 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'];}
754   - }}
755   - if($products_count==1){
756   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
757   - $products[$i] = $row;
758   - $products[$i]['products_count']=$products_count;
759   - $products[$i]['products_cine_all']=$products[$i]['cine']*$products_count;
760   - $cineAll = $cineAll+$products[$i]['products_cine_all'];
761   - $i++;
762   - }
763   -
764   - }
765   - /*print"<pre>";
766   - print_r($products);
767   - print"</pre>";*/
768   - $this->tpl->assign('cineAll',$cineAll);
769   - $this->tpl->assign('cineAll_discount',$cineAll - (($cineAll*$discount)/100));
770   - $this->tpl->assign('basket_products',$products); //print_r($products);
771   - }
772   -
773   -
774   - function BasketUpload(&$session_basket,$proructs_count){
775   - $session_basket = array();
776   - foreach($proructs_count as $key=>$value){
777   - for($i=0;$i<$value;$i++){
778   - $session_basket[] = $key;
779   - }
780   - }
781   - }
782   -
783   - function sendOrder($data){
784   - $mail = new PHPMailer();
785   - $mail->CharSet = "windows-1251";
786   - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
787   - $mail->FromName = $data['order_name'];
788   - $mail->AddAddress("extremstyleshop@ukr.net","extremstyleshop");
789   - $mail->AddAddress("shopextremstyle@gmail.com","shopextremstyle");
790   - $mail->Subject = "Îôîðìèòü çàêàç ñ ÝêñòðèìÑòèëü";
791   - $title = Mail::str_rus("Îôîðìèòü çàêàç");
792   - $msg = "";
793   - foreach($data['product_id'] as $key=>$value){
794   - $msg .= "ID: ".$value." ";
795   - $msg .= "Íàçâàíèå: <b>".$data['product_name'][$key]."</b> ";
796   - $msg .= "Öåíà çà îäèí: ".$data['product_cine'][$key]." ";
797   - $msg .= "Êîëè÷åñòâî: ".$data['product_count'][$key]." ";
798   - $msg .= "Çà âåñü òîâàð: ".$data['product_cine_all'][$key]." ";
799   - $msg .= "<br>";
800   - }
801   - $msg .= "Îáùàÿ ñóìà: ".$data['cineAll'];
802   - $msg .= "<br>";
803   - /* $msg .= "Ñêèäêà: ".$data['discount']." %";
804   - $msg .= "<br>"; */
805   - $msg .= "Èòîãî ê îïëàòå: ".$data['cineAll_discount'];
806   - $msg .= "<br><br><br>";
807   - $msg .= "Êîíòàêòíûå äàííûå:";
808   - $msg .= "<br>";
809   - $msg .= "Èìÿ: ".$data['order_name'];
810   - $msg .= "<br>";
811   - $msg .= "Àäðåñ: ".$data['order_adress'];
812   - $msg .= "<br>";
813   - $msg .= "E-mail: ".$data['order_email'];
814   - $msg .= "<br>";
815   - $msg .= "Êîíòàêòíûé òåëåôîí: ".$data['order_phone'];
816   - $msg .= "<br>";
817   - $msg .= "Ìîáèëüíûé òåëåôîí: ".$data['order_phonemob'];
818   - $msg .= "<br>";
819   - $msg .= "Êîììåíòàðèé: ".$data['order_comment'];
820   -// $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "vapila@vapila.kiev.ua";
821   -// Mail::send("borisenko.pavel@gmail.com",$data['order_email'],$title,Mail::str_rus($msg));
822   - $mail->MsgHTML($msg);
823   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
824   - $mail->ClearAddresses();
825   - $mail->ClearAttachments();
826   -
827   - $this->sendOrderXML($data);
828   - }
829   -
830   -
831   - function sendOrderXML($data){
832   - $mail = new PHPMailer();
833   - $mail->CharSet = "windows-1251";
834   - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
835   - $mail->FromName = $data['order_name'];
836   - $mail->AddAddress("extremshop@portal.myoffice.biz.ua","extremshop");
837   - $mail->Subject = "xml çàêàç ñ ÝêñòðèìÑòèëü";
838   - $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
839   - $xml = '<?xml version="1.0" encoding="windows-1251" ?>';
840   - $xml .= '<Order orderNum="'.mktime().'">';
841   - foreach($data['product_id'] as $key=>$value){
842   - $xml .= "<OrderItem ID='".$data['product_code'][$key]."'>";
843   - $xml .= "<ProductName>".$data['product_name2'][$key]."</ProductName>";
844   - $xml .= "<Size>".$data['product_size'][$key]."</Size>";
845   - $xml .= "<Color>".$data['product_color'][$key]."</Color>";
846   - $xml .= "<Price>".$data['product_price'][$key]."</Price>";
847   - $xml .= "<Count>".$data['product_count'][$key]."</Count>";
848   - $xml .= "</OrderItem>";
849   - }
850   - $xml .= '<CustomerInfo>';
851   - $xml .= '<Name>'.$data['order_name'].'</Name>';
852   - $xml .= '<Mobile>'.$data['order_phone'].'</Mobile>';
853   - $xml .= '<Email>'.$data['order_email'].'</Email>';
854   - $xml .= '</CustomerInfo>';
855   - $xml .= '<DeliveryInfo>';
856   - $xml .= '<City>Óêðàèíà</City>';
857   - $xml .= '<Address>'.$data['order_adress'].'</Address>';
858   - $xml .= '<DeliveryType>Äîñòàâêà</DeliveryType>';
859   - $xml .= '</DeliveryInfo>';
860   - $xml .= '<Comment>'.$data['order_comment'].'</Comment>';
861   - $xml .= '</Order>';
862   - $tmpfname = tempnam("tmp", "FOO");
863   - $handle = fopen($tmpfname, "w");
864   - fwrite($handle, $xml);
865   - $mail->AddAttachment($tmpfname, 'order.xml');
866   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
867   - fclose($handle);
868   - unlink($tmpfname);
869   - $mail->ClearAddresses();
870   - $mail->ClearAttachments();
871   - // Mail::send("borisenko.pavel@gmail.com",$order_email,"Order",Mail::str_rus($xml));
872   - // Mail::send("andrey.belyy@gmail.com",$order_email,"Order",Mail::str_rus($xml));
873   - }
874   -
875   - function saveOrder($data,$userID){
876   - $table_name = "catalogs_orders";
877   - if(isset($data['update_id']) && $data['update_id']>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$id = $data['update_id']; $where = sprintf("id='%d'",$id);}
878   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$id = $this->db->nextId('mySequence_'.$table_name);$where = null;}
879   - $fields_values = array('id'=>$id,'user_id'=>$userID,'name' => $data['order_name'],'email' => $data['order_email'],'adress' => $data['order_adress'],'phone' => $data['order_phone'],'phonemob' => $data['order_phonemob'],'comment' => $data['order_comment'],'mktime'=>mktime());
880   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,$where);
881   - if(isset($data['product_id'])){
882   - foreach($data['product_id'] as $key=>$value){
883   - $this->db->autoExecute("catalogs_orders_products",array('order_id'=>$id,'product_id'=>$value,'count'=>$data['product_count'][$key]),DB_AUTOQUERY_INSERT);
884   - }
885   - }
886   - }
887   -
888   - function deleteOrder($id){
889   - $this->db->query("delete from catalogs_orders where id=?",array($id));
890   - $this->db->query("delete from catalogs_orders_products where order_id=?",array($id));
891   - }
892   -
893   - function updateOrder($data){
894   - $table_name = "catalogs_orders";
895   - $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());
896   - if(isset($data['order_active']))$fields_values['active'] = 1;
897   - else $fields_values['active'] = 0;
898   - $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,sprintf("id='%d'",$data['update_id']));
899   - }
900   -
901   - function updateOrderProducts($data){
902   - foreach($data['product_id'] as $key=>$value){
903   - if($data['product_count'][$value]<1){$this->db->query("delete from catalogs_orders_products where order_id='{$data['order_id']}' AND product_id='$value'");}
904   - 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'");}
905   - }
906   - }
907   -
908   - function viewOrder($id){
909   - $row = $this->db->getRow("select * from catalogs_orders where id=?",array($id),DB_FETCHMODE_ASSOC);
910   - $this->tpl->assign('order', $row);
911   - }
912   -
913   - function viewOrderProducts($order_id){
914   - $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);
915   - $sum = 0;
916   - foreach($res as $key=>$row){
917   - $sum = $sum + ($row['cine']*$row['count']);
918   - $res[$key]['cine_all'] = ($row['cine']*$row['count']);
919   - }
920   - $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));
921   - $this->tpl->assign('cine', array('sum'=>$sum,'discount'=>$discount,'sum_discount'=>($sum - (($sum*$discount)/100)) ));
922   - $this->tpl->assign('basket_products', $res);
923   - }
924   -
925   - function viewOrders($params = array()){
926   - $search = array();
927   - if(isset($params['userID']) && $params['userID']>0)$search[] = sprintf("catalogs_orders.user_id='%d'",$params['userID']);
928   - $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 ";
929   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
930   - $sql .= " order by mktime desc";
931   - $pagerOptions = Array(
932   - 'mode' => 'Sliding',
933   - 'delta' => 16,
934   - 'perPage' => 50,
935   - 'linkClass'=>"link_class",
936   - 'curPageLinkClassName'=>"link_class_active",
937   - 'spacesBeforeSeparator' => 1,
938   - 'spacesAfterSeparator' => 1
939   - );
940   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
941   - foreach($res['data'] as $key=>$value){
942   - $res['data'][$key]['sum'] = $this->getOrderProductsSum($value['id']);
943   - $res['data'][$key]['sum_discount'] = $res['data'][$key]['sum'] - (($res['data'][$key]['sum']*$value['discount'])/100);
944   - }
945   - $this->tpl->assign('ordersData', $res);
946   - }
947   -
948   - function getOrderProductsSum($order_id){
949   - $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);
950   - // print_r($res);
951   - $sum = 0;
952   - foreach($res as $row){
953   - $sum = $sum + ($row['cine']*$row['count']);
954   - }
955   - return $sum;
956   - }
957   -
958   - function SaveBrend($data){
959   - $table_name = "catalogs_brends";
960   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
961   - $fields_values = array('rubric_id'=>$data['rubric_id'],'name'=>$data['brend'],'text'=>$data['text'],'seo'=>$data['seo'],'sort'=>$data['sort'],'meta_title'=>$data['meta_title'],'meta_description'=>$data['meta_description'],'meta_keywords'=>$data['meta_keywords']);
962   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
963   - }
964   -
965   - function viewBrends($type = false){
966   - $sql = "select b.*,r.name as rubric from catalogs_brends b left join catalogs_rubrics r On r.id=b.rubric_id ";
967   - if($type!=false)$sql .= "where b.type='$type'";
968   - $sql .= " Order by b.sort Asc";
969   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
970   - $this->tpl->assign('brends',$row);
971   - }
972   -
973   - function viewBrendsGroup($params = array()){
974   - $sql = "select * from catalogs_brends where 1=1 ";
975   - if(isset($params['rubID'])){
976   - $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']);
977   - $rubric_id = ($rubric_id==0)?$params['rubID']:$rubric_id;
978   - $sql .= "and rubric_id='".$rubric_id."'";
979   - }
980   - $sql .= " Group by name Order by sort Asc";
981   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
982   - $this->tpl->assign('brends',$row);
983   - }
984   -
985   - function SaveCity($data){
986   - $table_name = "catalogs_cities";
987   - $DB_AUTOQUERY = (isset($data['update_id']) && $data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
988   - $fields_values = array('name'=>$data['name']);
989   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
990   - return mysql_insert_id();
991   - }
992   -
993   - function is_city($name){
994   - return $this->db->getOne('select id from catalogs_cities where name=?',array($name));
995   - }
996   -
997   - function viewCityMod($code){
998   - $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";
999   - $row = $this->db->getCol($sql,"name",array($code));
1000   - return implode(', ',$row);
1001   - }
1002   -
1003   - function viewCitiesProductID($id){
1004   - $sql = "select city_id from catalogs_keys_products_cities where product_id=?";
1005   - $row = $this->db->getCol($sql,"city_id",array($id));
1006   - $this->tpl->assign('product_cities',$row);
1007   - }
1008   -
1009   - function viewCities($type = false){
1010   - $sql = "select * from catalogs_cities ";
1011   - $sql .= " Order by name Asc";
1012   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1013   - $this->tpl->assign('cities',$row);
1014   - }
1015   -
1016   - function viewCitiesProduct($id){
1017   - $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=? ";
1018   - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
1019   - $this->tpl->assign('cities',$row);
1020   - }
1021   -
1022   - function viewCity($id){
1023   - $row = $this->db->getRow("select * from catalogs_cities where id=?",array($id),DB_FETCHMODE_ASSOC);
1024   - $this->tpl->assign('city', $row);
1025   - }
1026   -
1027   - function deleteCity($id){
1028   - $this->db->query("delete from catalogs_cities where id=?",array($id));
1029   - $this->delete_keysCitiesProduct($id);
1030   - }
1031   -
1032   - function delete_keysCitiesProduct($id){
1033   - $sql = "delete from catalogs_keys_products_cities where city_id=?";
1034   - $this->db->query($sql,array($id));
1035   - }
1036   -
1037   - function SaveYears($data){
1038   - $table_name = "catalogs_years";
1039   - foreach($data['filter'] as $key=>$name){
1040   - if(strlen($name)>0){
1041   - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";}
1042   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";}
1043   - $this->db->autoExecute($table_name,array('name'=>$name,'rubric_id'=>$data['rubric_id']),$DB_AUTOQUERY,$where);
1044   - }
1045   - }
1046   - }
1047   -
1048   - function viewYearsProductID($id){
1049   - $sql = "select year_id from catalogs_keys_products_years where product_id=?";
1050   - $row = $this->db->getCol($sql,"year_id",array($id));
1051   - $this->tpl->assign('product_years',$row);
1052   - }
1053   -
1054   - function viewYears($rubric_id){
1055   - $row = $this->db->getAll("select * from catalogs_years where rubric_id=? order by id",array($rubric_id),DB_FETCHMODE_ASSOC);
1056   - $this->tpl->assign('years', $row);
1057   - }
1058   -
1059   - function deleteYearsRubric_id($id){
1060   - $this->db->query("delete from catalogs_years where rubric_id=?",array($id));
1061   - $this->delete_keysYearsRubric($id);
1062   - }
1063   -
1064   - function delete_keysYearsRubric($id){
1065   - $sql = "delete from catalogs_keys_products_years where rubric_id=?";
1066   - $this->db->query($sql,array($id));
1067   - }
1068   -
1069   - function deleteYear($id){
1070   - $this->db->query("delete from catalogs_years where id=?",array($id));
1071   - $this->delete_keysYearsProduct($id);
1072   - }
1073   -
1074   - function delete_keysYearsProduct($id){
1075   - $sql = "delete from catalogs_keys_products_years where year_id=?";
1076   - $this->db->query($sql,array($id));
1077   - }
1078   -
1079   - function SaveFilters($data){
1080   - $table_name = "catalogs_filters";
1081   - foreach($data['filter'] as $key=>$name){
1082   - if(strlen($name)>0){
1083   - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";}
1084   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";}
1085   - $this->db->autoExecute($table_name,array('name'=>$name,'rubric_id'=>$data['rubric_id'],"sort"=>$data['sort'][$key]),$DB_AUTOQUERY,$where);
1086   - }
1087   - }
1088   - }
1089   -
1090   - function viewFilterProductID($id){
1091   - $sql = "select filter_id from catalogs_keys_products_filters where product_id=?";
1092   - $row = $this->db->getCol($sql,"filter_id",array($id));
1093   - $this->tpl->assign('product_filters',$row);
1094   - }
1095   -
1096   - function deleteFilter($id){
1097   - $this->db->query("delete from catalogs_filters where id=?",array($id));
1098   - $this->delete_keysFilterProduct($id);
1099   - }
1100   -
1101   - function deleteFiltersRubric_id($rubric_id){
1102   - $this->db->query("delete from catalogs_filters where rubric_id=?",array($rubric_id));
1103   - $this->delete_keysFilterRubric($rubric_id);
1104   - }
1105   -
1106   - function delete_keysFilterProduct($id){
1107   - $sql = "delete from catalogs_keys_products_filters where filter_id=?";
1108   - $this->db->query($sql,array($id));
1109   - }
1110   -
1111   - function delete_keysFilterRubric($id){
1112   - $sql = "delete from catalogs_keys_products_filters where rubric_id=?";
1113   - $this->db->query($sql,array($id));
1114   - }
1115   -
1116   - function viewFilters($rubric_id){
1117   - $row = $this->db->getAll("select * from catalogs_filters where rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC);
1118   - $this->tpl->assign('filters', $row);
1119   - }
1120   -
1121   - function viewBrend($id){
1122   - $row = $this->db->getRow("select * from catalogs_brends where id=?",array($id),DB_FETCHMODE_ASSOC);
1123   - $this->tpl->assign('brend', $row);
1124   - }
1125   -
1126   - function viewBrendName($name){
1127   - $name = iconv("utf-8", "windows-1251", $name);
1128   - $sql = "select * from catalogs_brends where name=? and seo>'' limit 1";
1129   - $row = $this->db->getRow($sql,array($name),DB_FETCHMODE_ASSOC);
1130   - $this->tpl->assign('brend_seo', $row);
1131   - }
1132   -
1133   - function getBrendIDs_name($name){ $name = iconv("utf-8", "windows-1251", $name);
1134   - $sql = "select id from catalogs_brends where name=?";
1135   - return $this->db->getCol($sql,"id",array($name));
1136   - }
1137   -
1138   - function deleteBrend($id){
1139   - $this->db->query("delete from catalogs_brends where id=?",array($id));
1140   - }
1141   -
1142   - function viewAkciiProductID($id){
1143   - $sql = "select rubric_id from catalogs_keys_products_akcii where product_id=?";
1144   - $row = $this->db->getCol($sql,"rubric_id",array($id));
1145   - $this->tpl->assign('product_akcii',$row);
1146   - }
1147   -
1148   - function import_saveRubric($name,$parent_id){
1149   - $id = $this->db->getOne("select id from catalogs_rubrics where name=? and parent_id=?",array($name,$parent_id));
1150   - if( !$id ){
1151   - $this->db->autoExecute("catalogs_rubrics",array('name'=>$name,'parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1)),DB_AUTOQUERY_INSERT);
1152   - return mysql_insert_id();
1153   - }
1154   - return $id;
1155   - }
1156   -
1157   - function import_saveBrend($name,$rubric_id){
1158   - //getRubricParent();
1159   - $id = $this->db->getOne("select id from catalogs_brends where name=? and rubric_id=?",array($name,$rubric_id));
1160   - if( !$id ){
1161   - $this->db->autoExecute("catalogs_brends",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT);
1162   - return mysql_insert_id();
1163   - }
1164   - return $id;
1165   - }
1166   -
1167   - function import_saveFilters($rubric_id,$str){
1168   - if(!$str)return array();
1169   - $row_str = explode(",",trim($str));
1170   - $arr_id = array();
1171   - foreach($row_str as $str){
1172   - $name = trim($str);
1173   - $id = $this->db->getOne("select id from catalogs_filters where rubric_id=? and name=?",array($rubric_id,$name));
1174   - if( !$id ){
1175   - $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT);
1176   - $id = mysql_insert_id();
1177   - }
1178   - $arr_id[] = $id;
1179   - }
1180   - return $arr_id;
1181   - }
1182   -
1183   - function import_saveYear($rubric_id,$name){
1184   - $id = $this->db->getOne("select id from catalogs_years where rubric_id=? and name=?",array($rubric_id,$name));
1185   - if( !$id ){
1186   - $this->db->autoExecute("catalogs_years",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT);
1187   - $id = mysql_insert_id();
1188   - }
1189   - return ($id)?array($id):array();
1190   - }
1191   -
1192   - function import_updateProductCine($product_id,$row,$line=''){ //print"<pre>";print_r($row);print"</pre>";
1193   - IF($row[3]>0){
1194   - if($row[2]<1){$cine=$row[1];$cine_last=0;}
1195   - else {$cine=$row[2];$cine_last=(($row[1]>0)?$row[1]:$row[2]);}
1196   - $this->db->autoExecute("catalogs_products",array('cine'=>$cine,'cine_last'=>$cine_last),DB_AUTOQUERY_UPDATE,"id='$product_id'");
1197   - }
1198   - /* if($this->getModificationActive($row[0])!=$row[3]){
1199   - $prefix = ($row[3]==0)?'-':'+';
1200   - $this->updateProductModificationCountPrefix($product_id,$prefix);
1201   - } */
1202   - $city = trim($row[4]);
1203   - if(strlen($city)>0){ //print $city;
1204   - $city_id = $this->is_city($city);
1205   - if(!$city_id){$city_id = $this->SaveCity(array('name'=>$city));}
1206   - if($this->getKeysModificationCity($row[0], $city_id)){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "mod_code='".$row[0]."' and city_id='".$city_id."'";}
1207   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = null;}
1208   - //print $city_id .'--'.$where."<br>";
1209   - $s = $this->db->autoExecute("catalogs_keys_products_cities",array('count'=>$row[3],'product_id'=>$product_id,'mod_code'=>$row[0],'city_id'=>$city_id),$DB_AUTOQUERY,$where);
1210   - // if (PEAR::isError($s)) die($s->getMessage());
1211   - }
1212   - $active = $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and count>0",array($row[0]));
1213   - if($this->db->getOne("select count(*) from catalogs_modifications where code=?",array($row[0]))>0){
1214   - $this->db->autoExecute("catalogs_modifications",array('active'=>$active,'is_update'=>1,'prefix'=>$row[5]),DB_AUTOQUERY_UPDATE,"code='".$row[0]."'");
1215   - }else{
1216   - $this->saveCsvMod($line);
1217   - }
1218   - }
1219   -
1220   - function saveCsvMod($line){
1221   - $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv";
1222   - $handle = fopen($tmpfname, "a");
1223   - fwrite($handle,$line);
1224   - fclose($handle);
1225   - }
1226   -
1227   - function getKeysModificationCity($code, $city_id){
1228   - return $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id));
1229   - }
1230   -
1231   - function getProductID($name){
1232   - $id = $this->db->getOne("select id from catalogs_products where name=?",array($name));
1233   - return $id;
1234   - }
1235   -
1236   - function getModificationActive($code){
1237   - return $this->db->getOne("select active from catalogs_modifications where code=?",array($code));
1238   - }
1239   -
1240   - function updateProduct_countModification($product_id,$count){
1241   - $this->db->autoExecute("catalogs_products",array('count_modifications'=>$count),DB_AUTOQUERY_UPDATE,"id='$product_id'");
1242   - }
1243   -
1244   - function updateProductModificationCountPrefix($product_id,$prefix = "+"){
1245   -// print $product_id;
1246   - $sql = "UPDATE catalogs_products SET count_modifications = count_modifications $prefix 1 WHERE id =?";
1247   - $this->db->query($sql,array($product_id));
1248   - }
1249   -
1250   - function exportCSV(){
1251   - $tmpfname = "tmp/price.csv";
1252   - $handle = fopen($tmpfname, "w");
1253   - // fwrite($handle, $xml);
1254   - $res = $this->db->getAll('select p.id,p.rubric_id,r.name,r2.name,b.name as brend,p.name,p.about,p.text,null,p.sex,null,p.cine,p.cine_last,p.strnumber,p.active,p.pic_big 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());
1255   - foreach($res as $key=>$row){
1256   - $list = $row;
1257   - $mod_res = $this->db->getAll('select code,size,color,pic_big,active from catalogs_modifications where product_id=?',array($row[0]));
1258   - foreach($mod_res as $mod_row){$list[] = implode('=',$mod_row);}
1259   -
1260   - $f_row = $this->db->getCol("select name from catalogs_filters where rubric_id=?",'name',array($list[1]));
1261   - $list[8]=implode(',',$f_row);
1262   -
1263   - switch($list[9]){
1264   - case 1 : $list[9] = 'ìóæñêîé'; break;
1265   - case 2 : $list[9] = 'æåíñêèé'; break;
1266   - case 3 : $list[9] = 'äåòñêèé'; break;
1267   - case 4 : $list[9] = 'óíèñåêñ'; break;
1268   - default : $list[9] = 'ìóæñêîé'; break;
1269   - }
1270   -
1271   - $y_row = $this->db->getCol("select name from catalogs_years where rubric_id=? order by id desc limit 1",'name',array($list[1]));
1272   - $list[10]=implode(',',$y_row);
1273   -
1274   -
1275   - unset($list[0]);unset($list[1]);
1276   - //print_r($list);exit;
1277   - File_FGetCSV::fputcsv($handle,$list,';');
1278   - }
1279   -
1280   - fclose($handle);
1281   -
1282   - $params = array(
1283   - 'file' => $tmpfname,
1284   - 'contenttype' => 'application/xls',
1285   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'),
1286   - 'cache' => false
1287   - );
1288   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
1289   - if ($error === true) {
1290   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
1291   - }
1292   -
1293   - unlink($tmpfname);
1294   - }
1295   -
1296   - function exportModCSV(){
1297   - $tmpfname = "tmp/price_mod.csv";
1298   - $handle = fopen($tmpfname, "w");
1299   - $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');
1300   - foreach($res as $key=>$row){
1301   - File_FGetCSV::fputcsv($handle,$row,';');
1302   - }
1303   - fclose($handle);
1304   - $params = array(
1305   - 'file' => $tmpfname,
1306   - 'contenttype' => 'application/xls',
1307   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'file_1.csv'),
1308   - 'cache' => false
1309   - );
1310   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
1311   - if ($error === true) {
1312   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
1313   - }
1314   -
1315   - unlink($tmpfname);
1316   - $this->db->autoExecute("catalogs_modifications",array('is_update'=>0),DB_AUTOQUERY_UPDATE);
1317   - }
1318   -
1319   - function importCSV($upload){ error_reporting(0);
1320   - if($upload['file']['name']=="file_1.csv"){print"Îøèáêà! Ôàéë öåí!";exit;}
1321   - //$arr_line = file($upload['file']['tmp_name']);
1322   - $f = fopen($upload['file']['tmp_name'], "r") or die("Îøèáêà!");
1323   - // print"<pre>";
1324   - for ($i=0; $row_line=File_FGetCSV::fgetcsv($f,15000000,";"); $i++) {
1325   - // foreach($arr_line as $line){
1326   - //$row_line = fgetcsv(";",$line);
1327   - $rubric_id = $this->import_saveRubric($row_line[0],0);
1328   - $rubric_parent_id = $this->import_saveRubric($row_line[1],$rubric_id);
1329   - $brend_id = $this->import_saveBrend($row_line[2],$rubric_parent_id);
1330   - $pruduct_name = trim($row_line[3]);
1331   - $pruduct_about = trim($row_line[4]);
1332   - $pruduct_text = trim($row_line[5]);
1333   - switch($row_line[7]){
1334   - case 'ìóæñêîé' : $pruduct_sex = 1; break;
1335   - case 'æåíñêèé' : $pruduct_sex = 2; break;
1336   - case 'äåòñêèé' : $pruduct_sex = 3; break;
1337   - case 'óíèñåêñ' : $pruduct_sex = 4; break;
1338   - default : $pruduct_sex = 0; break;
1339   - }
1340   - $pruduct_date = trim($row_line[8]);
1341   - $pruduct_cine = trim($row_line[9]);
1342   - $pruduct_cine_last = trim($row_line[10]);
1343   - if($pruduct_cine<1){$pruduct_cine=$pruduct_cine_last;$pruduct_cine_last=0;}
1344   -
1345   - $pruduct_strnumber = trim($row_line[11]);
1346   - $pruduct_active = trim($row_line[12]);
1347   - $pruduct_pic_tmp = trim($row_line[13]);
1348   - $pruduct_update_id = $this->getProductID($pruduct_name);
1349   - $upload_pruduct = (strlen($pruduct_pic_tmp)>0 && is_file("./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp"))?array('pic'=>array('tmp_name'=>"./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp",'name'=>$pruduct_pic_tmp,'big'=>true)):null;
1350   - $product_id = $this->saveProduct(
1351   - array('rubric_id'=>$rubric_parent_id,
1352   - 'rubric_parent_id'=>$rubric_parent_id,
1353   - 'brend_id'=>$brend_id,
1354   - 'name'=>$pruduct_name,
1355   - 'about'=>$pruduct_about,
1356   - 'text'=>$pruduct_text,
1357   - 'sex'=>$pruduct_sex,
1358   - 'date'=>$pruduct_date,
1359   - 'cine'=>$pruduct_cine,
1360   - 'cine_last'=>$pruduct_cine_last,
1361   - 'strnumber'=>$pruduct_strnumber,
1362   - 'active'=>$pruduct_active,
1363   - 'meta_title'=>$pruduct_name,
1364   - 'meta_description'=>$pruduct_name,
1365   - 'meta_keywords'=>$pruduct_name,
1366   - 'meta_about'=>$pruduct_name,
1367   - 'filter'=>$this->import_saveFilters($rubric_parent_id,$row_line[6]),
1368   - 'years'=>$this->import_saveYear($rubric_parent_id,$pruduct_date),
1369   - 'akcii'=>array(),
1370   - 'update_id'=>$pruduct_update_id),
1371   - $upload_pruduct
1372   - );
1373   - $this->deleteProductModifications($product_id,true);
1374   - $m_i = 0;
1375   - for($i=14;$i<count($row_line);$i++){
1376   - $arr_mod = trim($row_line[$i]);
1377   - if(strlen($arr_mod)>0){
1378   - $row_mod = explode("=",$arr_mod);
1379   - $upload_mod = (strlen($row_mod[3])>0 && is_file("./uploaded/pic/catalogs/modifications/big/".$row_mod[3]))?array('pic'=>array('tmp_name'=>"./uploaded/pic/catalogs/modifications/big/".$row_mod[3],'name'=>$row_mod[3],'big'=>true)):null;
1380   -
1381   - $this->SaveModification(
1382   - array('product_id'=>$product_id,
1383   - 'code'=>$row_mod[0],
1384   - 'size'=>$row_mod[1],
1385   - 'color'=>$row_mod[2],
1386   - 'active'=>$row_mod[4]
1387   - ),$upload_mod
1388   - );
1389   - if($row_mod[4]>0)$m_i++;
1390   - }
1391   - }
1392   - $this->updateProduct_countModification($product_id,$m_i);
1393   - //$this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]);
1394   - //$strnumber = $this->getProductID($row_line[3]); $this->save_keysProductsFilters($id,$data);
1395   - //print_r($row_line);
1396   - if(($i%30)==0)sleep(1);
1397   - }
1398   - // print"</pre>";
1399   -
1400   - }
1401   -
1402   - function importCSV_cine($upload){
1403   - if($upload['file']['name']!="file_1.csv"){print"Îøèáêà! Òîëüêî file_1.csv";exit;}
1404   - $arr_line = file($upload['file']['tmp_name']);
1405   - //print"<pre>";
1406   - $i = 0;
1407   - foreach($arr_line as $line){
1408   - $row_line = explode(";",$line);
1409   - $this->import_updateProductCine($this->getModificationProduct_id($row_line[0]),$row_line,$line);
1410   - if(($i%30)==0)sleep(1);
1411   - $i++;
1412   - // print_r($row_line);
1413   - }//print"</pre>";
1414   - $this->updateCountModificationProducts();
1415   - }
1416   -
1417   - function CronImportCSV_cine($upload){
1418   - if($upload['file']['name']!="file_1.csv"){print"Îøèáêà! Òîëüêî file_1.csv";exit;}
1419   - $arr_line = file($upload['file']['tmp_name']);
1420   - //print"<pre>";
1421   - $i = 0;
1422   - foreach($arr_line as $line){
1423   - $row_line = explode(";",$line);
1424   - $this->import_updateProductCine($this->getModificationProduct_id($row_line[0]),$row_line,$line);
1425   - if(($i%30)==0)sleep(1);
1426   - $i++;
1427   - // print_r($row_line);
1428   - }//print"</pre>";
1429   - //$this->updateCountModificationProducts();
1430   - }
1431   -
1432   - function updateCountModificationProducts(){
1433   - $this->db->autoExecute("catalogs_products",array('count_modifications'=>0),DB_AUTOQUERY_UPDATE);
1434   - $res = $this->db->getAll("select * from catalogs_products",array(),DB_FETCHMODE_ASSOC);
1435   - $i = 0;
1436   - foreach($res as $row){
1437   - $count = $this->db->getOne("select count(*) from catalogs_modifications where product_id=? and active>0",array($row['id']));
1438   - $this->db->autoExecute("catalogs_products",array('count_modifications'=>$count),DB_AUTOQUERY_UPDATE,"id='".$row['id']."'");
1439   - // if(($i%10)==0)sleep(10);
1440   - $i++;
1441   - }
1442   - }
1443   -
1444   - function config_update($id,$value){
1445   - $this->db->autoExecute("catalogs_config",array('value'=>$value),DB_AUTOQUERY_UPDATE,"id='".$id."'");
1446   - }
1447   -
1448   - function view_config_value($id){
1449   - $r = $this->db->getOne("select value from catalogs_config where id=?",$id);
1450   - $this->tpl->assign("config",$r);
1451   - return $r;
1452   - }
1453   -
1454   - function displayCatalogsCurs(){
1455   - $this->tpl->assign("tpl",'catalogs_curs.tpl');
1456   - }
1457   -
1458   - function displayCatalogs(){
1459   - $this->tpl->assign("tpl",'catalogs.tpl');
1460   - }
1461   -
1462   - function displayProducts(){
1463   - $this->tpl->assign("tpl",'catalogs_products.tpl');
1464   - }
1465   -
1466   - function displayProductsTops(){
1467   - $this->tpl->assign("tpl",'catalogs_products_tops.tpl');
1468   - }
1469   -
1470   - function displayProductsHits(){
1471   - $this->tpl->assign("tpl",'catalogs_products_hits.tpl');
1472   - }
1473   -
1474   - function displayProductsHitsAll(){
1475   - $this->tpl->assign("tpl",'catalogs_products_hits_all.tpl');
1476   - }
1477   -
1478   - function displayBasket($count_products,$cine_products,$cine_products_discount,$discount){
1479   - $this->tpl->assign("count_products",$count_products);
1480   - $this->tpl->assign("cine_products",$cine_products);
1481   - $this->tpl->assign("cine_products_discount",$cine_products_discount);
1482   - $this->tpl->assign("discount",$discount);
1483   - $this->tpl->display('basket.tpl');
1484   - }
1485   -
1486   - function displayProduct(){
1487   - $this->tpl->assign("tpl",'catalogs_product.tpl');
1488   - }
1489   -
1490   - function displayProductBasket(){
1491   - $this->tpl->assign("tpl",'catalogs_basket.tpl');
1492   - }
1493   -
1494   - function displayBrends(){
1495   - $this->tpl->assign("tpl",'catalogs_brends.tpl');
1496   - }
1497   -
1498   - function displayCities(){
1499   - $this->tpl->assign("tpl",'catalogs_cities.tpl');
1500   - }
1501   -
1502   - function displayProductBasketSend(){
1503   - $this->tpl->assign("tpl",'catalogs_basket_send.tpl');
1504   - }
1505   -
1506   - function displayReg(){
1507   - $this->tpl->assign("tpl",'catalogs_reg.tpl');
1508   - }
1509   -
1510   - function displayEditUser(){
1511   - $this->tpl->assign("tpl",'catalogs_user_edit.tpl');
1512   - }
1513   -
1514   - function displayNoPsw(){
1515   - $this->tpl->assign("tpl",'catalogs_nopsw.tpl');
1516   - }
1517   -
1518   - function displayOrders(){
1519   - $this->tpl->assign("tpl",'catalogs_orders.tpl');
1520   - }
1521   -
1522   - function displayOrder(){
1523   - $this->tpl->assign("tpl",'catalogs_order.tpl');
1524   - }
1525   -
1526   - function displayUsers(){
1527   - $this->tpl->assign("tpl",'catalogs_users.tpl');
1528   - }
1529   -
1530   - function displayUser(){
1531   - $this->tpl->assign("tpl",'catalogs_user.tpl');
1532   - }
1533   -
1534   - function displayFilters(){
1535   - $this->tpl->assign("tpl",'catalogs_filters.tpl');
1536   - }
1537   -
1538   - function displayYears(){
1539   - $this->tpl->assign("tpl",'catalogs_years.tpl');
1540   - }
1541   -
1542   - function displayWinProducts(){
1543   - $this->tpl->display('catalogs_win_products.tpl');
1544   - }
1545   -
1546   - function displayModifications(){
1547   - $this->tpl->assign("tpl",'catalogs_modifications.tpl');
1548   - }
1549   -
1550   - function displayImport(){
1551   - $this->tpl->assign("tpl",'catalogs_import.tpl');
1552   - }
1553   -
1554   - function displayImportCine(){
1555   - $this->tpl->assign("tpl",'catalogs_import_cine.tpl');
1556   - }
1557   -
1558   - function displayAkcii(){
1559   - $this->tpl->assign("tpl",'catalogs_akcii.tpl');
1560   - }
1561   -
1562   -}
1563   -?>