Commit 7a508b626927c3f92125c618487b4ec40eea7038

Authored by andryeyev
1 parent e8fe9e4a

+ попытка исправить фильтры (отложили на будущее)

Showing 1 changed file with 5048 additions and 3532 deletions   Show diff stats
libs/catalogs.class.php
Changes suppressed. Click to show
1 1 <?php
2   -class Catalogs{
3   - var $db = null;
4   - var $tpl = null;
5   - var $error = null;
6   - var $cache = null;
7   - var $photo_id = null;
8 2  
  3 +include_once $_SERVER['DOCUMENT_ROOT'].'/libs/SqlQuery.class.php';
9 4  
10   - function Catalogs(&$db,&$tpl,&$error,&$cache){
11   - $this->db = &$db;
12   - $this->tpl = &$tpl;
13   - $this->error = &$error;
14   - $this->cache = &$cache;
15   - }
16   -
17   -
18   - function trim(&$data){
19   - foreach($data as $key=>$value){
20   - if(is_array($value))$this->trim($value);
21   - else $data[$key] = stripslashes(trim($value));
22   - }
23   - }
24   -
25   -
26   - function valid($data,$upload = null){
27   -
28   - if(isset($data['name'])){
29   - if( !preg_match("/.{1,100}/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ.";
30   - }
31   -
32   - if(isset($data['about_min'])){
33   - if( !preg_match("/.+/is",$data['about_min']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Êðàòêîå îïèñàíèå.";
34   - }
35   - /*
36   - if(isset($data['text'])){
37   - if( !preg_match("/.+/is",$data['text']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ïîëíîå îïèñàíèå.";
38   - } */
39   -/*
40   - if(isset($data['cine'])){
41   - if( !preg_match("/[0-9]+/",$data['cine']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Öåíà, òîëüêî öèôðû.";
42   - } */
43   -
44   - if(isset($upload['pic']['name']) && $upload['pic']['tmp_name']){
45   - $type = substr(strrchr($upload['pic']['name'],"."),1);
46   - if( !preg_match("/^(jpeg|jpg|gif|png|bmp)$/i",$type) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif.";
47   - }
48   -
49   - if(isset($upload['file']['name'])){
50   - if( !preg_match("/\.csv$/i",$upload['file']['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ CSV ôàéë, òîëüêî csv.";
51   - }
52   -
  5 +class Catalogs
  6 +{
  7 + var $db = null;
  8 + var $tpl = null;
  9 + var $error = null;
  10 + var $cache = null;
  11 + var $photo_id = null;
  12 +
  13 + function Catalogs (&$db, &$tpl, &$error, &$cache)
  14 + {
  15 + $this->db = &$db;
  16 + $this->tpl = &$tpl;
  17 + $this->error = &$error;
  18 + $this->cache = &$cache;
  19 + }
  20 +
  21 + function trim (&$data)
  22 + {
  23 + foreach ($data as $key => $value)
  24 + {
  25 + if (is_array ($value))
  26 + $this->trim ($value);
  27 + else
  28 + $data[$key] = stripslashes (trim ($value));
  29 + }
  30 + }
  31 +
  32 + function valid ($data, $upload = null)
  33 + {
  34 + if (isset ($data['name']))
  35 + {
  36 + if (! preg_match ("/.{1,100}/i", $data['name']))
  37 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ.";
  38 + }
  39 +
  40 + if (isset ($data['about_min']))
  41 + {
  42 + if (! preg_match ("/.+/is", $data['about_min']))
  43 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Êðàòêîå îïèñàíèå.";
  44 + }
  45 + /*
  46 + * if(isset($data['text'])){
  47 + * if( !preg_match("/.+/is",$data['text']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ïîëíîå îïèñàíèå.";
  48 + * }
  49 + */
  50 + /*
  51 + * if(isset($data['cine'])){
  52 + * if( !preg_match("/[0-9]+/",$data['cine']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Öåíà, òîëüêî öèôðû.";
  53 + * }
  54 + */
  55 +
  56 + if (isset ($upload['pic']['name']) && $upload['pic']['tmp_name'])
  57 + {
  58 + $type = substr (strrchr ($upload['pic']['name'], "."), 1);
  59 + if (! preg_match ("/^(jpeg|jpg|gif|png|bmp)$/i", $type))
  60 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif.";
  61 + }
  62 +
  63 + if (isset ($upload['file']['name']))
  64 + {
  65 + if (! preg_match ("/\.csv$/i", $upload['file']['name']))
  66 + $this->error[] = "Îøèáêà ââîäà ïîëÿ CSV ôàéë, òîëüêî csv.";
  67 + }
  68 +
  69 + if (isset ($data['order_name']))
  70 + {
  71 + if (! preg_match ("/.{1,100}/i", $data['order_name']))
  72 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
  73 + }
  74 +
  75 + if (isset ($data['order_adress']))
  76 + {
  77 + if (! preg_match ("/.{1,200}/i", $data['order_adress']))
  78 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Àäðåñ (Ìàêñèìóì 200 ñèìâîëîâ).";
  79 + }
  80 +
  81 + if (isset ($data['order_phone2']) && strlen ($data['order_phone2']) > 0)
  82 + {
  83 + if (! preg_match ("/.{1,20}/i", $data['order_phone2']))
  84 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ).";
  85 + }
  86 +
  87 + if (isset ($data['order_phone']))
  88 + {
  89 + if (trim ($data['order_phone']) == "")
  90 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX).";
  91 + if (strlen (trim ($data['order_phone'])) < 5)
  92 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX).";
  93 + }
  94 +
  95 + if (isset ($data['delivery']) && $data['delivery'] == 0)
  96 + {
  97 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Äîñòàâêà.";
  98 + }
  99 +
  100 + if (isset ($data['user_name']))
  101 + {
  102 + if (! preg_match ("/.{1,100}/i", $data['user_name']))
  103 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
  104 + }
  105 +
  106 + if (isset ($data['order_city']))
  107 + {
  108 + if (! preg_match ("/.{1,100}/i", $data['order_city']))
  109 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Ãîðîä (Ìàêñèìóì 100 ñèìâîëîâ).";
  110 + }
  111 +
  112 + if (isset ($data['user_email']))
  113 + {
  114 + if (! preg_match ("/.{1,80}/i", $data['user_email']))
  115 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø e-mail (Ìàêñèìóì 80 ñèìâîëîâ).";
  116 + }
  117 +
  118 + if (isset ($data['user_login']))
  119 + {
  120 + if (! preg_match ("/.{1,100}/i", $data['user_login']))
  121 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ëîãèí (Ìàêñèìóì 100 ñèìâîëîâ).";
  122 + elseif ($this->isLoginUser ($data['user_login']))
  123 + $this->error[] = "Îøèáêà òàêîé Ëîãèí óæå åñòü!";
  124 + }
  125 +
  126 + if (isset ($data['you_login']))
  127 + {
  128 + if (! $this->isLoginUser ($data['you_login']))
  129 + $this->error[] = "Òàêîãî ËÎÃÈÍÀ íåò â áàçå äàííûõ ñàéòà!";
  130 + }
  131 +
  132 + if (isset ($data['user_psw']))
  133 + {
  134 + if (! preg_match ("/.{1,100}/i", $data['user_psw']))
  135 + $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ïàðîëü (Ìàêñèìóì 100 ñèìâîëîâ).";
  136 + }
  137 +
  138 + return (count ($this->error)) ? true : false;
  139 + }
53 140  
54   - if(isset($data['order_name'])){
55   - if( !preg_match("/.{1,100}/i",$data['order_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
56   - }
57   -
58   - if(isset($data['order_adress'])){
59   - if( !preg_match("/.{1,200}/i",$data['order_adress']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Àäðåñ (Ìàêñèìóì 200 ñèìâîëîâ).";
60   - }
61   -
62   - if(isset($data['order_phone2'])&& strlen($data['order_phone2'])>0){
63   - if( !preg_match("/.{1,20}/i",$data['order_phone2']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ).";
64   - }
  141 + function deleteRubric ($id, $field = "id")
  142 + {
  143 + $sql = "select pic,id,parent_id from catalogs_rubrics where $field=?";
  144 + $res = $this->db->getAll ($sql, array (
  145 + $id
  146 + ), DB_FETCHMODE_ASSOC);
  147 + foreach ($res as $row)
  148 + {
  149 + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/rubrics/{$row['pic']}");
  150 + $sql = "delete from catalogs_rubrics where id=?";
  151 + $this->db->query ($sql, array (
  152 + $row['id']
  153 + ));
  154 + $this->deleteFiltersRubric_id ($row['id']);
  155 + $this->deleteFiltersRubric_id2 ($row['id']);
  156 + $this->deleteYearsRubric_id ($row['id']);
  157 + $this->deleteProductsRubric ($row['id']);
  158 + $this->deleteRubric ($row['id'], "parent_id");
  159 + }
  160 + }
65 161  
66   - if(isset($data['order_phone'])){
67   -if( trim($data['order_phone']) == "" ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX).";
68   -if( strlen(trim($data['order_phone']))<5 ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX).";
69   - }
70   -
71   - if(isset($data['delivery']) && $data['delivery']==0){
72   - $this->error[] = "Îøèáêà ââîäà ïîëÿ Äîñòàâêà.";
73   - }
74   -
75   - if(isset($data['user_name'])){
76   - if( !preg_match("/.{1,100}/i",$data['user_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
77   - }
78   -
79   - if(isset($data['order_city'])){
80   - if( !preg_match("/.{1,100}/i",$data['order_city']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ãîðîä (Ìàêñèìóì 100 ñèìâîëîâ).";
81   - }
82   -
83   - if(isset($data['user_email'])){
84   - if( !preg_match("/.{1,80}/i",$data['user_email']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø e-mail (Ìàêñèìóì 80 ñèìâîëîâ).";
85   - }
86   -
87   - if(isset($data['user_login'])){
88   - if( !preg_match("/.{1,100}/i",$data['user_login']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ëîãèí (Ìàêñèìóì 100 ñèìâîëîâ).";
89   - elseif( $this->isLoginUser($data['user_login']) ) $this->error[] = "Îøèáêà òàêîé Ëîãèí óæå åñòü!";
90   - }
91   -
92   - if(isset($data['you_login'])){
93   - if( !$this->isLoginUser($data['you_login']) ) $this->error[] = "Òàêîãî ËÎÃÈÍÀ íåò â áàçå äàííûõ ñàéòà!";
94   - }
95   -
96   - if(isset($data['user_psw'])){
97   - if( !preg_match("/.{1,100}/i",$data['user_psw']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ïàðîëü (Ìàêñèìóì 100 ñèìâîëîâ).";
98   - }
  162 + function deleteProductPics ($id, $pics = array('pic_big','pic','pic2'))
  163 + {
  164 + $sql = "select pic_big,pic,pic2 from catalogs_products where id=?";
  165 + $row = $this->db->getRow ($sql, array (
  166 + $id
  167 + ), DB_FETCHMODE_ASSOC);
  168 + // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}");
  169 + if (in_array ('pic', $pics))
  170 + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/{$row['pic']}");
  171 + if (in_array ('pic2', $pics))
  172 + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/2/{$row['pic2']}");
  173 + }
99 174  
100   - return ( count($this->error) ) ? true : false;
101   - }
102   -
103   - function deleteRubric($id,$field="id"){
104   - $sql = "select pic,id,parent_id from catalogs_rubrics where $field=?";
105   - $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
106   - foreach($res as $row){
107   - @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/rubrics/{$row['pic']}");
108   - $sql = "delete from catalogs_rubrics where id=?";
109   - $this->db->query($sql,array($row['id']));
110   - $this->deleteFiltersRubric_id($row['id']);
111   - $this->deleteFiltersRubric_id2($row['id']);
112   - $this->deleteYearsRubric_id($row['id']);
113   - $this->deleteProductsRubric($row['id']);
114   - $this->deleteRubric($row['id'],"parent_id");
115   - }
116   - }
117   -
118   - function deleteProductPics($id,$pics = array('pic_big','pic','pic2')){
119   - $sql = "select pic_big,pic,pic2 from catalogs_products where id=?";
120   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
121   - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}");
122   - if(in_array('pic',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/{$row['pic']}");
123   - if(in_array('pic2',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/2/{$row['pic2']}");
124   - }
125   -
126   - function deleteProduct($id){
127   - $this->deleteProductPics($id);
128   - $sql = "delete from catalogs_products where id=?";
129   - $this->db->query($sql,array($id));
130   - $this->delete_keysProductsFilters($id);
131   - $this->delete_keysProductsFilters2($id);
132   - $this->delete_keysProductsAkcii($id);
133   - $this->delete_keysProductsYears($id);
134   - $this->delete_keysProductsCities($id);
135   - $this->deleteProductModifications($id);
136   - }
137   -
138   - function deleteProductsRubric($id){
139   - $res = $this->db->getAll("select id from catalogs_products where rubric_id=?",array($id),DB_FETCHMODE_ASSOC);
140   - foreach($res as $row){
141   - $this->deleteProduct($row['id']);
142   - $this->deleteGalleryProduct($row['id']);
143   - }
144   - }
  175 + function deleteProduct ($id)
  176 + {
  177 + $this->deleteProductPics ($id);
  178 + $sql = "delete from catalogs_products where id=?";
  179 + $this->db->query ($sql, array (
  180 + $id
  181 + ));
  182 + $this->delete_keysProductsFilters ($id);
  183 + $this->delete_keysProductsFilters2 ($id);
  184 + $this->delete_keysProductsAkcii ($id);
  185 + $this->delete_keysProductsYears ($id);
  186 + $this->delete_keysProductsCities ($id);
  187 + $this->deleteProductModifications ($id);
  188 + }
145 189  
  190 + function deleteProductsRubric ($id)
  191 + {
  192 + $res = $this->db->getAll ("select id from catalogs_products where rubric_id=?", array (
  193 + $id
  194 + ), DB_FETCHMODE_ASSOC);
  195 + foreach ($res as $row)
  196 + {
  197 + $this->deleteProduct ($row['id']);
  198 + $this->deleteGalleryProduct ($row['id']);
  199 + }
  200 + }
146 201  
147   - function PhotosCheck($id_s,$check_s = array()){
148   - $sql = "UPDATE gallery SET active = ? WHERE id =?";
  202 + function PhotosCheck ($id_s, $check_s = array())
  203 + {
  204 + $sql = "UPDATE gallery SET active = ? WHERE id =?";
  205 +
  206 + foreach ($id_s as $id)
  207 + {
  208 + $this->db->query ($sql, array (
  209 + 0,
  210 + $id
  211 + ));
  212 + }
  213 +
  214 + if (count ($check_s))
  215 + {
  216 + foreach ($check_s as $id)
  217 + {
  218 + $this->db->query ($sql, array (
  219 + 1,
  220 + $id
  221 + ));
  222 + }
  223 + }
  224 + }
149 225  
150   - foreach($id_s as $id){
151   - $this->db->query($sql,array(0,$id));
152   - }
153   - if(count($check_s)){
154   - foreach($check_s as $id){
155   - $this->db->query($sql,array(1,$id));
156   - }
157   - }
158   - }
159   -
160   - function viewRubrics($id = 0,$parent_id = 0){ // print $parent_id."<br />";
161   - global $rubrics;
162   - //if(!$this->cache->cacheLife("cache_sql_rubrics")){
163   -
164   - //$sql = "select a.*,(select b.id from catalogs_rubrics b where b.parent_id=a.id order by b.sort limit 1) as r_pid from catalogs_rubrics a where a.parent_id=? group by a.id order by a.sort asc";
165   - $sql = "
  226 + function viewRubrics ($id = 0, $parent_id = 0)
  227 + { // print $parent_id."<br />";
  228 + global $rubrics;
  229 + // if(!$this->cache->cacheLife("cache_sql_rubrics")){
  230 +
  231 + // $sql = "select a.*,(select b.id from catalogs_rubrics b where b.parent_id=a.id order by b.sort limit 1) as r_pid from catalogs_rubrics a where a.parent_id=? group by a.id order by a.sort asc";
  232 + $sql = "
166 233 select
167 234 a.name,
168 235 a.name_ukr,
... ... @@ -186,33 +253,45 @@ if( strlen(trim($data[&#39;order_phone&#39;]))&lt;5 ) $this-&gt;error[] = &quot;Îøèáêà ââîäà ïîëÿ Ì
186 253 group by a.id
187 254 order by a.sort asc
188 255 ";
189   -
190   -$res = $this->db->query($sql,array($id));
191   - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
192   - $rubrics[] = $row; //print $row['id']."<br />";
  256 +
  257 + $res = $this->db->query ($sql, array (
  258 + $id
  259 + ));
193 260  
194   - if(in_array($row['id'],$this->getParentIdRubric($parent_id))){$this->viewRubrics($row['id']);}
195   - // if($row['level']==0){$this->viewRubrics($row['id']);}
196   - }
  261 + while ($res->fetchInto ($row, DB_FETCHMODE_ASSOC))
  262 + {
  263 + $rubrics[] = $row; // print $row['id']."<br />";
  264 +
  265 + if (in_array ($row['id'], $this->getParentIdRubric ($parent_id)))
  266 + {
  267 + $this->viewRubrics ($row['id']);
  268 + }
  269 + // if($row['level']==0){$this->viewRubrics($row['id']);}
  270 + }
197 271 // $this->cache->cacheSave($rubrics,130);
198   - //}else $count = $this->cache->sql_result;
199   - $this->tpl->assign("rubrics",$rubrics);
200   - }
201   -
202   - function getParentIdRubric($id){
203   - //$ids = array();
204   - global $ids;
205   - if(!count($ids))$ids = array();
206   - while($id>0){
207   - $row = $this->db->getRow('select id,parent_id from catalogs_rubrics where id=?',array($id),DB_FETCHMODE_ASSOC);
208   - //if(isset($row['id']))
209   - $ids[] = $row['id'];
210   - $id = $row['parent_id'];
211   - } //print_r($ids);
212   - // sort($ids);
213   - return $ids;
214   - }
215   -
  272 + // }else $count = $this->cache->sql_result;
  273 + $this->tpl->assign ("rubrics", $rubrics);
  274 + }
  275 +
  276 + function getParentIdRubric ($id)
  277 + {
  278 + // $ids = array();
  279 + global $ids;
  280 + if (! count ($ids))
  281 + $ids = array ();
  282 + while ($id > 0)
  283 + {
  284 + $row = $this->db->getRow ('select id,parent_id from catalogs_rubrics where id=?', array (
  285 + $id
  286 + ), DB_FETCHMODE_ASSOC);
  287 + // if(isset($row['id']))
  288 + $ids[] = $row['id'];
  289 + $id = $row['parent_id'];
  290 + } // print_r($ids);
  291 + // sort($ids);
  292 + return $ids;
  293 + }
  294 +
216 295 function viewRubricsAll ($id = 0)
217 296 {
218 297 global $rubrics;
... ... @@ -234,24 +313,24 @@ $res = $this-&gt;db-&gt;query($sql,array($id));
234 313 WHERE parent_id=?
235 314 ORDER BY sort asc
236 315 ";
237   - $res = $this->db->query($sql,array($id));
238   - while ($res->fetchInto($row,DB_FETCHMODE_ASSOC))
  316 + $res = $this->db->query ($sql, array (
  317 + $id
  318 + ));
  319 + while ($res->fetchInto ($row, DB_FETCHMODE_ASSOC))
239 320 {
240 321 $rubrics[] = $row;
241   - $this->viewRubricsAll($row['id']);
  322 + $this->viewRubricsAll ($row['id']);
242 323 }
243   -
244   - $this->tpl->assign("rubrics",$rubrics);
  324 +
  325 + $this->tpl->assign ("rubrics", $rubrics);
245 326 }
246 327  
247   -
248   - function viewRubrics_begin ($item = 'parents',$lang = 'ru')
  328 + function viewRubrics_begin ($item = 'parents', $lang = 'ru')
249 329 {
250   - //if(!$this->cache->cacheLife("cache_sql_rubrics_$item"."_".$lang)){
251   -
  330 + // if(!$this->cache->cacheLife("cache_sql_rubrics_$item"."_".$lang)){
252 331 $sql = "
253 332 SELECT
254   - a.name".(($lang=='ukr')?'_ukr':'')." as name,
  333 + a.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name,
255 334 a.id,
256 335 a.parent_id,
257 336 a.level,
... ... @@ -274,15 +353,17 @@ $res = $this-&gt;db-&gt;query($sql,array($id));
274 353 ORDER BY a.sort asc
275 354 ";
276 355  
277   - $row = $this->db->getAll($sql, array (0), DB_FETCHMODE_ASSOC);
278   -
  356 + $row = $this->db->getAll ($sql, array (
  357 + 0
  358 + ), DB_FETCHMODE_ASSOC);
  359 +
279 360 foreach ($row as $key => $value)
280 361 {
281 362 if ($item == 'parents')
282 363 {
283   - $row[$key]['parents'] = $this->db->getAll("
  364 + $row[$key]['parents'] = $this->db->getAll ("
284 365 SELECT
285   - a.name".(($lang=='ukr')?'_ukr':'')." as name,
  366 + a.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name,
286 367 a.id,
287 368 a.parent_id,
288 369 a.level,
... ... @@ -296,11 +377,13 @@ $res = $this-&gt;db-&gt;query($sql,array($id));
296 377 FROM catalogs_rubrics a
297 378 WHERE parent_id=?
298 379 ORDER BY sort asc
299   - ", array($value['id']), DB_FETCHMODE_ASSOC);
  380 + ", array (
  381 + $value['id']
  382 + ), DB_FETCHMODE_ASSOC);
300 383 }
301 384 else if ($item == 'brends')
302 385 {
303   - $row[$key]['brends'] = $this->db->getAll("
  386 + $row[$key]['brends'] = $this->db->getAll ("
304 387 SELECT *
305 388 FROM catalogs_brends
306 389 WHERE rubric_id in (
... ... @@ -309,58 +392,58 @@ $res = $this-&gt;db-&gt;query($sql,array($id));
309 392 WHERE parent_id=? or id=?
310 393 )
311 394 GROUP BY name
312   - ",array ($value['id'], $value['id']), DB_FETCHMODE_ASSOC);
  395 + ", array (
  396 + $value['id'],
  397 + $value['id']
  398 + ), DB_FETCHMODE_ASSOC);
313 399 }
314 400 }
315   -
316   - $this->tpl->assign("catalogs_rubrics_begin", $row);
  401 +
  402 + $this->tpl->assign ("catalogs_rubrics_begin", $row);
317 403 }
318 404  
319 405 // ==== CACHE viewRubrics begin ====
320   -
321 406 function getFilenameCacheVRB ($item = 'parents', $lang = 'ru')
322 407 {
323   - return $_SERVER['DOCUMENT_ROOT'].'/cache/menu/menu-'.$item.'-'.$lang.'.php';
  408 + return $_SERVER['DOCUMENT_ROOT'] . '/cache/menu/menu-' . $item . '-' . $lang . '.php';
324 409 }
325   -
  410 +
326 411 function isFreshCacheVRB ($item = 'parents', $lang = 'ru')
327 412 {
328 413 $filename = $this->getFilenameCacheVRB ($item, $lang);
329 414 $time = 60 * 60 * 24;
330   -
331   - if (is_file ($filename) && (filemtime ($filename) + $time) > time())
  415 +
  416 + if (is_file ($filename) && (filemtime ($filename) + $time) > time ())
332 417 {
333 418 return true;
334 419 }
335 420  
336 421 return false;
337 422 }
338   -
  423 +
339 424 function saveCacheVRB ($item = 'parents', $lang = 'ru')
340   - {
341   - $filename = $this->getFilenameCacheVRB ($item, $lang);
342   -
  425 + {
  426 + $filename = $this->getFilenameCacheVRB ($item, $lang);
  427 +
343 428 ob_start ();
344   - var_export ($this->tpl->get_template_vars('catalogs_rubrics_begin'));
345   - // $row - êàñòûëü çàòî÷êà ïîä "catalogs_rubrics_begin", $row
346   - file_put_contents ($filename, '<?php $row = '.ob_get_clean (). ';');
  429 + var_export ($this->tpl->get_template_vars ('catalogs_rubrics_begin'));
  430 + // $row - êàñòûëü çàòî÷êà ïîä "catalogs_rubrics_begin", $row
  431 + file_put_contents ($filename, '<?php $row = ' . ob_get_clean () . ';');
347 432 }
348   -
  433 +
349 434 function loadCacheVRB ($item = 'parents', $lang = 'ru')
350   - {
  435 + {
351 436 include_once $this->getFilenameCacheVRB ($item, $lang);
352 437  
353 438 if (! isset ($this->zlofound))
354   - {
355   - $this->tpl->assign("catalogs_rubrics_begin", $row);
  439 + {
  440 + $this->tpl->assign ("catalogs_rubrics_begin", $row);
356 441 $this->zlofound = true;
357 442 unset ($row);
358 443 }
359   - }
360   -
361   - // ==== ====
362   -
363   - function viewRubrics_parent($parent_id = 0)
  444 + }
  445 +
  446 + function viewRubrics_parent ($parent_id = 0)
364 447 {
365 448 $sql = "
366 449 SELECT
... ... @@ -381,14 +464,16 @@ $res = $this-&gt;db-&gt;query($sql,array($id));
381 464 ORDER BY sort asc
382 465 ";
383 466  
384   - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC);
385   - $this->tpl->assign("catalogs_rubrics_parent",$row);
  467 + $row = $this->db->getAll ($sql, array (
  468 + $parent_id
  469 + ), DB_FETCHMODE_ASSOC);
  470 + $this->tpl->assign ("catalogs_rubrics_parent", $row);
386 471 }
387   -
  472 +
388 473 function viewRubrics_parent2 ($rub_id, $lang = 'ru')
389 474 {
390   - $parent_id = $this->getRubricParent($rub_id);
391   -
  475 + $parent_id = $this->getRubricParent ($rub_id);
  476 +
392 477 if ($parent_id == 0)
393 478 {
394 479 $parent_id = $rub_id;
... ... @@ -396,7 +481,7 @@ $res = $this-&gt;db-&gt;query($sql,array($id));
396 481  
397 482 $sql = "
398 483 SELECT
399   - a.name".(($lang=='ukr')?'_ukr':'')." as name,
  484 + a.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name,
400 485 a.id,
401 486 a.parent_id,
402 487 a.level,
... ... @@ -412,437 +497,563 @@ $res = $this-&gt;db-&gt;query($sql,array($id));
412 497 ORDER BY sort asc
413 498 ";
414 499  
415   - $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC);
416   - $this->tpl->assign("catalogs_rubrics_parent2",$row);
  500 + $row = $this->db->getAll ($sql, array (
  501 + $parent_id
  502 + ), DB_FETCHMODE_ASSOC);
  503 + $this->tpl->assign ("catalogs_rubrics_parent2", $row);
417 504 }
418   -
419   - function viewRubricOne($id,&$row,$lang = 'ru'){
420   - if($lang=='ukr')
421   - $sql = "select *,name_ukr as name,name_h1_ukr as name_h1,top_text_ukr as top_text,seo_text_ukr as seo_text,
  505 +
  506 + function viewRubricOne ($id, &$row, $lang = 'ru')
  507 + {
  508 + if ($lang == 'ukr')
  509 + $sql = "select *,name_ukr as name,name_h1_ukr as name_h1,top_text_ukr as top_text,seo_text_ukr as seo_text,
422 510 meta_title_ukr as meta_title,meta_description_ukr as meta_description,meta_keywords_ukr as meta_keywords,meta_about_ukr as meta_about,
423 511 filter2_ukr as filter2, filter_ukr as filter, list_name_ukr as list_name from catalogs_rubrics where id=?";
424   - else
425   - $sql = "select * from catalogs_rubrics where id=?";
426   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
427   - $this->tpl->assign('rubric',$row);
428   - }
  512 + else
  513 + $sql = "select * from catalogs_rubrics where id=?";
  514 + $row = $this->db->getRow ($sql, array (
  515 + $id
  516 + ), DB_FETCHMODE_ASSOC);
  517 + $this->tpl->assign ('rubric', $row);
  518 + }
429 519  
430   - function getRubricName($id,$lang = 'ru'){
431   - $sql = "select name".($lang=='ukr'?'_ukr':'')." from catalogs_rubrics where id=?";
432   - return $this->db->getOne($sql,array($id));
433   - }
  520 + function getRubricName ($id, $lang = 'ru')
  521 + {
  522 + $sql = "select name" . ($lang == 'ukr' ? '_ukr' : '') . " from catalogs_rubrics where id=?";
  523 + return $this->db->getOne ($sql, array (
  524 + $id
  525 + ));
  526 + }
434 527  
435   - function getRubricParent($id){
436   - $sql = "select parent_id from catalogs_rubrics where id=?";
437   - return $this->db->getOne($sql,array($id));
438   - }
  528 + function getRubricParent ($id)
  529 + {
  530 + $sql = "select parent_id from catalogs_rubrics where id=?";
  531 + return $this->db->getOne ($sql, array (
  532 + $id
  533 + ));
  534 + }
439 535  
440   - function activeRubricTop($id,$top){
441   - $table_name = "catalogs_rubrics";
442   - $fields_values = array('top'=>$top);
443   - $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,"id=$id");
444   - }
445   -
446   - function SaveRubric($data,$upload){
447   - $table_name = "catalogs_rubrics";
448   -
449   -if(trim($data['translit']) == '') $data['translit'] = translit($data['name']);
450   -
451   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
452   - $parent_id = (isset($data['parent_id']) ? $data['parent_id'] : 0);
453   - $fields_values = array('parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1),'sort' => $data['sort'],'name' => $data['name'],'name_ukr' => $data['name_ukr'],'list_name' => $data['list_name'],'list_name_ukr' => $data['list_name_ukr'],'name_h1' => $data['name_h1'],'name_h1_ukr' => $data['name_h1_ukr'],'seo_text' => $data['seo_text'],'seo_text_ukr' => $data['seo_text_ukr'],'top_text' => $data['top_text'],'top_text_ukr' => $data['top_text_ukr'],'filter' => $data['filter'],'filter_ukr' => $data['filter_ukr'],'filter2' => $data['filter2'],'filter2_ukr' => $data['filter2_ukr'],'filter_products' => $data['filter_products'],'sort_cost' => $data['sort_cost'],'meta_title' => $data['meta_title'],'meta_title_ukr' => $data['meta_title_ukr'],'meta_description' => $data['meta_description'],'meta_description_ukr' => $data['meta_description_ukr'],'meta_keywords' => $data['meta_keywords'],'meta_keywords_ukr' => $data['meta_keywords_ukr'],'meta_about' => $data['meta_about'],'meta_about_ukr' => $data['meta_about_ukr'],'translit' => $data['translit']);
454   -
455   -if(isset($data['literal']))$fields_values['literal'] = 1;
456   -else $fields_values['literal'] = 0;
457   -
458   -if(isset($data['if_filter_mod']))$fields_values['if_filter_mod'] = 1;
459   -else $fields_values['if_filter_mod'] = 0;
460   -
461   -if(isset($data['is_usd']))$fields_values['is_usd'] = 1;
462   -else $fields_values['is_usd'] = 0;
463   -
464   -if(isset($data['is_xml']))$fields_values['is_xml'] = 1;
465   -else $fields_values['is_xml'] = 0;
466   -
467   -if(isset($data['is_xml2']))$fields_values['is_xml2'] = 1;
468   -else $fields_values['is_xml2'] = 0;
  536 + function activeRubricTop ($id, $top)
  537 + {
  538 + $table_name = "catalogs_rubrics";
  539 + $fields_values = array (
  540 + 'top' => $top
  541 + );
  542 + $this->db->autoExecute ($table_name, $fields_values, DB_AUTOQUERY_UPDATE, "id=$id");
  543 + }
469 544  
470   -if(isset($data['is_width']))$fields_values['is_width'] = 1;
471   -else $fields_values['is_width'] = 0;
472   - /*
473   - if($upload['pic']['tmp_name']){
474   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/catalogs/rubrics/"));
475   - } */
476   -
477   - if($upload['pic']['tmp_name']){
478   - if($data['update_id']>0)$this->deletePicRubric($data['update_id']);
479   - $uploadfile = "./uploaded/pic/catalogs/rubrics/";
480   - $type = substr(strrchr($upload['pic']['name'],"."),1);
481   - $uploadname = mktime() . "." . $type;
482   - if (!move_uploaded_file($_FILES['pic']['tmp_name'], $uploadfile . $uploadname))print"Îøèáêà ïðè çàêà÷êå ôàéëà!";
483   - $fields_values['pic'] = $uploadname;
484   - }
485   - //print_r($fields_values);exit;
486   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
487   - }
488   -
489   - function deletePicRubric($id){
490   - $sql = "select pic from catalogs_rubrics where id=?";
491   - $rub = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
492   - @unlink("./uploaded/pic/catalogs/rubrics/{$rub['pic']}");
493   - }
494   -
495   - function getLevelRubric($id){
496   - $level = $this->db->getOne("select level from catalogs_rubrics where id=?",array($id));
497   - return ($level==null)? -1 : $level;
498   - }
499   -
500   - function saveUser($data){
501   - $table_name = "catalogs_users";
502   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
503   - $fields_values = array('name' => $data['user_name'],'email' => $data['user_email'],'login' => $data['user_login'],'psw' => $data['user_psw'],'about' => $data['user_about'],'mktime'=>mktime());
504   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
505   - }
506   -
507   - function updateUser($data){
508   - $table_name = "catalogs_users";
509   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
510   - $fields_values = array('name' => $data['user_name'],'email' => $data['user_email'],'login' => $data['user_login'],'psw' => $data['user_psw'],'about' => $data['user_about'],'discount'=>$data['user_discount']);
511   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
512   - }
513   -
514   - function updateUserID($data,$id){
515   - $table_name = "catalogs_users";
516   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
517   - $fields_values = array('name' => $data['user_name'],'email' => $data['user_email'],'psw' => $data['user_psw'],'about' => $data['user_about'],'phone' => $data['user_phone'],'phonemob' => $data['user_phonemob'],'adress' => $data['user_adress']);
518   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$id}");
519   - }
520   -
521   - function deleteUser($id){
522   - $this->db->query("delete from catalogs_users where id=?",array($id));
523   - $res_order_id = $this->db->getRow("select id from catalogs_orders where user_id=?",array($id),DB_FETCHMODE_ASSOC);
524   - if(count($res_order_id)){
525   - foreach($res_order_id as $_id){
526   - $this->db->query("delete from catalogs_orders where id=?",array($_id));
527   - $this->db->query("delete from catalogs_orders_products where order_id=?",array($_id));
528   - }}
529   - }
530   -
531   - function isLoginUser($login){
532   - return $this->db->getOne("select id from catalogs_users where login=?",array($login));
533   - }
534   -
535   - function sendLoginInfo($login){
536   - $user = $this->db->getRow("select * from catalogs_users where login=?",array($login),DB_FETCHMODE_ASSOC);
537   - $mail = new PHPMailer();
538   - $mail->CharSet = "windows-1251";
539   - $mail->From = "shop@eltrade.com.ua";
540   - $mail->FromName = "shop@eltrade.com.ua";
541   - $mail->AddAddress($user['email'], $user['name']);
542   - $mail->Subject = "Àêêàóíò ýêñòðèì";
543   - $msg = "";
544   - $msg .= "Çäðàâñòâóéòå: ".$user['name'];
545   - $msg .= "<br />";
546   - $msg .= "Âàø ëîãèí: ".$user['login'];
547   - $msg .= "<br>";
548   - $msg .= "Âàø ïàðîëü: ".$user['psw'];
549   - $msg .= "<br>";
550   - $msg .= "Ñ óâàæåíèåì, shop@eltrade.com.ua";
  545 + function SaveRubric ($data, $upload)
  546 + {
  547 + $table_name = "catalogs_rubrics";
  548 +
  549 + if (trim ($data['translit']) == '')
  550 + $data['translit'] = translit ($data['name']);
  551 +
  552 + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
  553 + $parent_id = (isset ($data['parent_id']) ? $data['parent_id'] : 0);
  554 + $fields_values = array (
  555 + 'parent_id' => $parent_id,
  556 + "level" => ($this->getLevelRubric ($parent_id) + 1),
  557 + 'sort' => $data['sort'],
  558 + 'name' => $data['name'],
  559 + 'name_ukr' => $data['name_ukr'],
  560 + 'list_name' => $data['list_name'],
  561 + 'list_name_ukr' => $data['list_name_ukr'],
  562 + 'name_h1' => $data['name_h1'],
  563 + 'name_h1_ukr' => $data['name_h1_ukr'],
  564 + 'seo_text' => $data['seo_text'],
  565 + 'seo_text_ukr' => $data['seo_text_ukr'],
  566 + 'top_text' => $data['top_text'],
  567 + 'top_text_ukr' => $data['top_text_ukr'],
  568 + 'filter' => $data['filter'],
  569 + 'filter_ukr' => $data['filter_ukr'],
  570 + 'filter2' => $data['filter2'],
  571 + 'filter2_ukr' => $data['filter2_ukr'],
  572 + 'filter_products' => $data['filter_products'],
  573 + 'sort_cost' => $data['sort_cost'],
  574 + 'meta_title' => $data['meta_title'],
  575 + 'meta_title_ukr' => $data['meta_title_ukr'],
  576 + 'meta_description' => $data['meta_description'],
  577 + 'meta_description_ukr' => $data['meta_description_ukr'],
  578 + 'meta_keywords' => $data['meta_keywords'],
  579 + 'meta_keywords_ukr' => $data['meta_keywords_ukr'],
  580 + 'meta_about' => $data['meta_about'],
  581 + 'meta_about_ukr' => $data['meta_about_ukr'],
  582 + 'translit' => $data['translit']
  583 + );
  584 +
  585 + if (isset ($data['literal']))
  586 + $fields_values['literal'] = 1;
  587 + else
  588 + $fields_values['literal'] = 0;
  589 +
  590 + if (isset ($data['if_filter_mod']))
  591 + $fields_values['if_filter_mod'] = 1;
  592 + else
  593 + $fields_values['if_filter_mod'] = 0;
  594 +
  595 + if (isset ($data['is_usd']))
  596 + $fields_values['is_usd'] = 1;
  597 + else
  598 + $fields_values['is_usd'] = 0;
  599 +
  600 + if (isset ($data['is_xml']))
  601 + $fields_values['is_xml'] = 1;
  602 + else
  603 + $fields_values['is_xml'] = 0;
  604 +
  605 + if (isset ($data['is_xml2']))
  606 + $fields_values['is_xml2'] = 1;
  607 + else
  608 + $fields_values['is_xml2'] = 0;
  609 +
  610 + if (isset ($data['is_width']))
  611 + $fields_values['is_width'] = 1;
  612 + else
  613 + $fields_values['is_width'] = 0;
  614 + /*
  615 + * if($upload['pic']['tmp_name']){
  616 + * $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/catalogs/rubrics/"));
  617 + * }
  618 + */
  619 +
  620 + if ($upload['pic']['tmp_name'])
  621 + {
  622 + if ($data['update_id'] > 0)
  623 + $this->deletePicRubric ($data['update_id']);
  624 + $uploadfile = "./uploaded/pic/catalogs/rubrics/";
  625 + $type = substr (strrchr ($upload['pic']['name'], "."), 1);
  626 + $uploadname = mktime () . "." . $type;
  627 + if (! move_uploaded_file ($_FILES['pic']['tmp_name'], $uploadfile . $uploadname))
  628 + print "Îøèáêà ïðè çàêà÷êå ôàéëà!";
  629 + $fields_values['pic'] = $uploadname;
  630 + }
  631 + // print_r($fields_values);exit;
  632 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}");
  633 + }
551 634  
552   - $mail->MsgHTML($msg);
  635 + function deletePicRubric ($id)
  636 + {
  637 + $sql = "select pic from catalogs_rubrics where id=?";
  638 + $rub = $this->db->getRow ($sql, array (
  639 + $id
  640 + ), DB_FETCHMODE_ASSOC);
  641 + @unlink ("./uploaded/pic/catalogs/rubrics/{$rub['pic']}");
  642 + }
553 643  
554   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
555   - $mail->ClearAddresses();
556   - $mail->ClearAttachments();
557   - }
558   -
559   - function isUser($login,$psw){
560   - $row = $this->db->getRow("select * from catalogs_users where login=? AND psw=?",array($login,$psw),DB_FETCHMODE_ASSOC);
561   - //print $login .' - '.$psw;
562   - $this->tpl->assign('user_service',$row);
563   - return $row['id'];
564   - }
565   -
566   - function viewUser($id){
567   - $sql = "select * from catalogs_users where id=?";
568   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
569   - $this->tpl->assign('user',$row);
570   - }
571   -
572   - function getUserDiscount($id){
573   - return $this->db->getOne("select discount from catalogs_users where id=?",array($id));
574   - }
575   -
576   - function viewUsers(){
577   - $sql = "SELECT catalogs_users. *, COUNT(catalogs_orders.user_id) as count_orders
578   -FROM catalogs_users LEFT JOIN catalogs_orders ON catalogs_orders.user_id=catalogs_users.id
579   -GROUP BY catalogs_users.id
580   -ORDER BY catalogs_users.mktime DESC";
  644 + function getLevelRubric ($id)
  645 + {
  646 + $level = $this->db->getOne ("select level from catalogs_rubrics where id=?", array (
  647 + $id
  648 + ));
  649 + return ($level == null) ? - 1 : $level;
  650 + }
581 651  
582   - $pagerOptions = Array(
583   - 'mode' => 'Sliding',
584   - 'delta' => 6,
585   - 'perPage' => 10,
586   - 'linkClass'=>"link_class",
587   - 'curPageLinkClassName'=>"link_class_active",
588   - 'spacesBeforeSeparator' => 1,
589   - 'spacesAfterSeparator' => 1
590   - );
591   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
  652 + function saveUser ($data)
  653 + {
  654 + $table_name = "catalogs_users";
  655 + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
  656 + $fields_values = array (
  657 + 'name' => $data['user_name'],
  658 + 'email' => $data['user_email'],
  659 + 'login' => $data['user_login'],
  660 + 'psw' => $data['user_psw'],
  661 + 'about' => $data['user_about'],
  662 + 'mktime' => mktime ()
  663 + );
  664 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}");
  665 + }
592 666  
593   - $this->tpl->assign('usersData', $res);
594   - }
595   -
596   -// ======================
597   -// ==== MODIFICATION ====
598   -// ======================
599   -
600   -function viewModifications ($product_id)
601   -{
602   - $sql = "select * from catalogs_modifications where product_id=? order by id desc";
603   - $row = $this->db->getAll ($sql, array (
604   - $product_id
605   - ), DB_FETCHMODE_ASSOC);
606   - if (trim ($_REQUEST['test2']) == '1')
607   - print_r ($row);
608   - $this->tpl->assign ('modifications', $row);
609   -}
610   -
611   -function viewModificationsProduct ($product_id)
612   -{
613   - $sql = "select a1.* from catalogs_modifications a1 where a1.product_id=? and a1.active>0 order by a1.id asc";
614   - // $sql = "select m.* from catalogs_keys_products_cities k left join catalogs_modifications m on m.code=k.mod_code where k.product_id=? and k.count>0 order by k.mod_code desc";
615   - $row = $this->db->getAll ($sql, array (
616   - $product_id
617   - ), DB_FETCHMODE_ASSOC);
618   -
619   - for ($i = 0; $i < count ($row); $i ++)
  667 + function updateUser ($data)
620 668 {
621   - $row2 = $this->db->getRow ("SELECT * FROM catalogs_keys_products_cities WHERE product_id='" . $product_id . "' AND mod_code='" . @$row[$i]['code'] . "' LIMIT 1;", array (), DB_FETCHMODE_ASSOC);
622   - // if($row2['city_id']==25){ unset($row[$i]); }
  669 + $table_name = "catalogs_users";
  670 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  671 + $fields_values = array (
  672 + 'name' => $data['user_name'],
  673 + 'email' => $data['user_email'],
  674 + 'login' => $data['user_login'],
  675 + 'psw' => $data['user_psw'],
  676 + 'about' => $data['user_about'],
  677 + 'discount' => $data['user_discount']
  678 + );
  679 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}");
623 680 }
624   - $new_row = array ();
625   - // if($_GET['test']=='18') print_r($row);
626   - foreach ($row as $key => $value)
  681 +
  682 + function updateUserID ($data, $id)
627 683 {
628   - // $new_row[] = $value;
  684 + $table_name = "catalogs_users";
  685 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  686 + $fields_values = array (
  687 + 'name' => $data['user_name'],
  688 + 'email' => $data['user_email'],
  689 + 'psw' => $data['user_psw'],
  690 + 'about' => $data['user_about'],
  691 + 'phone' => $data['user_phone'],
  692 + 'phonemob' => $data['user_phonemob'],
  693 + 'adress' => $data['user_adress']
  694 + );
  695 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$id}");
629 696 }
630   - // if($_GET['test']=='18') print_r($new_row);
631   - $this->tpl->assign ('modifications', $row);
632   - return $row;
633   -}
634 697  
635   -function viewModificationOne ($id)
636   -{
637   - $sql = "select * from catalogs_modifications where id=?";
638   - $row = $this->db->getRow ($sql, array (
639   - $id
640   - ), DB_FETCHMODE_ASSOC);
641   - $this->tpl->assign ('modification', $row);
642   - return $row;
643   -}
  698 + function deleteUser ($id)
  699 + {
  700 + $this->db->query ("delete from catalogs_users where id=?", array (
  701 + $id
  702 + ));
  703 + $res_order_id = $this->db->getRow ("select id from catalogs_orders where user_id=?", array (
  704 + $id
  705 + ), DB_FETCHMODE_ASSOC);
  706 + if (count ($res_order_id))
  707 + {
  708 + foreach ($res_order_id as $_id)
  709 + {
  710 + $this->db->query ("delete from catalogs_orders where id=?", array (
  711 + $_id
  712 + ));
  713 + $this->db->query ("delete from catalogs_orders_products where order_id=?", array (
  714 + $_id
  715 + ));
  716 + }
  717 + }
  718 + }
644 719  
645   -function getModificationProduct_id ($code)
646   -{
647   - return $this->db->getOne ("select product_id from catalogs_modifications where code=?", array (
648   - $code
649   - ));
650   -}
  720 + function isLoginUser ($login)
  721 + {
  722 + return $this->db->getOne ("select id from catalogs_users where login=?", array (
  723 + $login
  724 + ));
  725 + }
651 726  
652   -function getModification ($product_id, $code)
653   -{
654   - return $this->db->getOne ("
655   - SELECT id
656   - FROM catalogs_modifications
657   - WHERE product_id=?
658   - AND code=?", array (
659   - $product_id,
660   - $code
661   - ));
662   -}
663   -
664   -function SaveModification ($data, $upload)
665   -{
666   - $table_name = "catalogs_modifications";
667   - $DB_AUTOQUERY = ($data ['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
668   - $fields_values = array (
669   - 'product_id' => $data ['product_id'],
670   - 'code' => $data ['code'],
671   - 'size' => $data ['size'],
672   - 'color' => $data ['color'],
673   - 'active' => $data ['active']
674   - );
675   -
676   - if (isset ($data ['color2']))
  727 + function sendLoginInfo ($login)
677 728 {
678   - $fields_values ['color2'] = $data ['color2'];
  729 + $user = $this->db->getRow ("select * from catalogs_users where login=?", array (
  730 + $login
  731 + ), DB_FETCHMODE_ASSOC);
  732 + $mail = new PHPMailer ();
  733 + $mail->CharSet = "windows-1251";
  734 + $mail->From = "shop@eltrade.com.ua";
  735 + $mail->FromName = "shop@eltrade.com.ua";
  736 + $mail->AddAddress ($user['email'], $user['name']);
  737 + $mail->Subject = "Àêêàóíò ýêñòðèì";
  738 + $msg = "";
  739 + $msg .= "Çäðàâñòâóéòå: " . $user['name'];
  740 + $msg .= "<br />";
  741 + $msg .= "Âàø ëîãèí: " . $user['login'];
  742 + $msg .= "<br>";
  743 + $msg .= "Âàø ïàðîëü: " . $user['psw'];
  744 + $msg .= "<br>";
  745 + $msg .= "Ñ óâàæåíèåì, shop@eltrade.com.ua";
  746 +
  747 + $mail->MsgHTML ($msg);
  748 +
  749 + if (! $mail->Send ())
  750 + {
  751 + echo "There has been a mail error sending to <br>";
  752 + return false;
  753 + }
  754 + $mail->ClearAddresses ();
  755 + $mail->ClearAttachments ();
679 756 }
680 757  
681   - if (isset ($data ['rost']))
  758 + function isUser ($login, $psw)
682 759 {
683   - $fields_values ['rost'] = $data ['rost'];
  760 + $row = $this->db->getRow ("select * from catalogs_users where login=? AND psw=?", array (
  761 + $login,
  762 + $psw
  763 + ), DB_FETCHMODE_ASSOC);
  764 + // print $login .' - '.$psw;
  765 + $this->tpl->assign ('user_service', $row);
  766 + return $row['id'];
684 767 }
685 768  
686   - if (isset ($data ['delete_pic']))
  769 + function viewUser ($id)
687 770 {
688   - if ($data ['update_id'] > 0)
689   - {
690   - $this->deleteModificationPics ($data ['update_id']);
691   - }
692   -
693   - $fields_values ['pic'] = null;
694   - $fields_values ['pic_big'] = null;
  771 + $sql = "select * from catalogs_users where id=?";
  772 + $row = $this->db->getRow ($sql, array (
  773 + $id
  774 + ), DB_FETCHMODE_ASSOC);
  775 + $this->tpl->assign ('user', $row);
695 776 }
696 777  
697   - if ($upload ['pic'] ['tmp_name'])
  778 + function getUserDiscount ($id)
698 779 {
699   - if ($data ['update_id'] > 0)
  780 + return $this->db->getOne ("select discount from catalogs_users where id=?", array (
  781 + $id
  782 + ));
  783 + }
  784 +
  785 + function viewUsers ()
  786 + {
  787 + $sql = "SELECT catalogs_users. *, COUNT(catalogs_orders.user_id) as count_orders
  788 +FROM catalogs_users LEFT JOIN catalogs_orders ON catalogs_orders.user_id=catalogs_users.id
  789 +GROUP BY catalogs_users.id
  790 +ORDER BY catalogs_users.mktime DESC";
  791 +
  792 + $pagerOptions = Array (
  793 + 'mode' => 'Sliding',
  794 + 'delta' => 6,
  795 + 'perPage' => 10,
  796 + 'linkClass' => "link_class",
  797 + 'curPageLinkClassName' => "link_class_active",
  798 + 'spacesBeforeSeparator' => 1,
  799 + 'spacesAfterSeparator' => 1
  800 + );
  801 + $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ());
  802 +
  803 + $this->tpl->assign ('usersData', $res);
  804 + }
  805 +
  806 + // ======================
  807 + // ==== MODIFICATION ====
  808 + // ======================
  809 +
  810 + function viewModifications ($product_id)
  811 + {
  812 + $sql = "select * from catalogs_modifications where product_id=? order by id desc";
  813 + $row = $this->db->getAll ($sql, array (
  814 + $product_id
  815 + ), DB_FETCHMODE_ASSOC);
  816 + if (trim ($_REQUEST['test2']) == '1')
  817 + print_r ($row);
  818 + $this->tpl->assign ('modifications', $row);
  819 + }
  820 +
  821 + function viewModificationsProduct ($product_id)
  822 + {
  823 + $sql = "select a1.* from catalogs_modifications a1 where a1.product_id=? and a1.active>0 order by a1.id asc";
  824 + // $sql = "select m.* from catalogs_keys_products_cities k left join catalogs_modifications m on m.code=k.mod_code where k.product_id=? and k.count>0 order by k.mod_code desc";
  825 + $row = $this->db->getAll ($sql, array (
  826 + $product_id
  827 + ), DB_FETCHMODE_ASSOC);
  828 +
  829 + for ($i = 0; $i < count ($row); $i ++)
700 830 {
701   - $delete_pics = (isset ($upload ['pic'] ['big']) && $upload ['pic'] ['big'] == true) ? array (
702   - 'pic'
703   - ) : array (
704   - 'pic',
705   - 'pic_big'
706   - );
707   -
708   - $this->deleteModificationPics ($data ['update_id'], $delete_pics);
  831 + $row2 = $this->db->getRow ("SELECT * FROM catalogs_keys_products_cities WHERE product_id='" . $product_id . "' AND mod_code='" . @$row[$i]['code'] . "' LIMIT 1;", array (), DB_FETCHMODE_ASSOC);
  832 + // if($row2['city_id']==25){ unset($row[$i]); }
709 833 }
710   -
711   - $fields_values ['pic'] = upload_ImageResize ($upload ['pic'], array (
712   - 'width' => "144",
713   - 'height' => "144",
714   - 'upload_path' => "./uploaded/pic/catalogs/modifications/"
  834 + $new_row = array ();
  835 + // if($_GET['test']=='18') print_r($row);
  836 + foreach ($row as $key => $value)
  837 + {
  838 + // $new_row[] = $value;
  839 + }
  840 + // if($_GET['test']=='18') print_r($new_row);
  841 + $this->tpl->assign ('modifications', $row);
  842 + return $row;
  843 + }
  844 +
  845 + function viewModificationOne ($id)
  846 + {
  847 + $sql = "select * from catalogs_modifications where id=?";
  848 + $row = $this->db->getRow ($sql, array (
  849 + $id
  850 + ), DB_FETCHMODE_ASSOC);
  851 + $this->tpl->assign ('modification', $row);
  852 + return $row;
  853 + }
  854 +
  855 + function getModificationProduct_id ($code)
  856 + {
  857 + return $this->db->getOne ("select product_id from catalogs_modifications where code=?", array (
  858 + $code
715 859 ));
716   -
717   - $fields_values ['pic_big'] = (isset ($upload ['pic'] ['big']) && $upload ['pic'] ['big'] == true) ? $upload ['pic'] ['name'] : upload_ImageResize ($upload ['pic'], array (
718   - 'width' => "1000",
719   - 'height' => "1000",
720   - 'upload_path' => "./uploaded/pic/catalogs/modifications/big/"
  860 + }
  861 +
  862 + function getModification ($product_id, $code)
  863 + {
  864 + return $this->db->getOne ("
  865 + SELECT id
  866 + FROM catalogs_modifications
  867 + WHERE product_id=?
  868 + AND code=?", array (
  869 + $product_id,
  870 + $code
721 871 ));
722 872 }
  873 +
  874 + function SaveModification ($data, $upload)
  875 + {
  876 + $table_name = "catalogs_modifications";
  877 + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
  878 + $fields_values = array (
  879 + 'product_id' => $data['product_id'],
  880 + 'code' => $data['code'],
  881 + 'size' => $data['size'],
  882 + 'color' => $data['color'],
  883 + 'active' => $data['active']
  884 + );
723 885  
724   - $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='{$data['update_id']}'");
725   - return $id;
726   -}
727   -
728   -function deleteModification ($id)
729   -{
730   - $this->deleteModificationPics ($id);
731   - $this->db->query ("delete from catalogs_modifications where id=?", array (
732   - $id
733   - ));
734   -}
735   -
736   -function deleteProductModifications ($product_id, $nopic = false)
737   -{
738   - IF ($nopic == false)
  886 + if (isset ($data['color2']))
  887 + {
  888 + $fields_values['color2'] = $data['color2'];
  889 + }
  890 +
  891 + if (isset ($data['rost']))
  892 + {
  893 + $fields_values['rost'] = $data['rost'];
  894 + }
  895 +
  896 + if (isset ($data['delete_pic']))
  897 + {
  898 + if ($data['update_id'] > 0)
  899 + {
  900 + $this->deleteModificationPics ($data['update_id']);
  901 + }
  902 +
  903 + $fields_values['pic'] = null;
  904 + $fields_values['pic_big'] = null;
  905 + }
  906 +
  907 + if ($upload['pic']['tmp_name'])
  908 + {
  909 + if ($data['update_id'] > 0)
  910 + {
  911 + $delete_pics = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? array (
  912 + 'pic'
  913 + ) : array (
  914 + 'pic',
  915 + 'pic_big'
  916 + );
  917 +
  918 + $this->deleteModificationPics ($data['update_id'], $delete_pics);
  919 + }
  920 +
  921 + $fields_values['pic'] = upload_ImageResize ($upload['pic'], array (
  922 + 'width' => "144",
  923 + 'height' => "144",
  924 + 'upload_path' => "./uploaded/pic/catalogs/modifications/"
  925 + ));
  926 +
  927 + $fields_values['pic_big'] = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? $upload['pic']['name'] : upload_ImageResize ($upload['pic'], array (
  928 + 'width' => "1000",
  929 + 'height' => "1000",
  930 + 'upload_path' => "./uploaded/pic/catalogs/modifications/big/"
  931 + ));
  932 + }
  933 +
  934 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='{$data['update_id']}'");
  935 + return $id;
  936 + }
  937 +
  938 + function deleteModification ($id)
739 939 {
740   - $sql = "
  940 + $this->deleteModificationPics ($id);
  941 + $this->db->query ("delete from catalogs_modifications where id=?", array (
  942 + $id
  943 + ));
  944 + }
  945 +
  946 + function deleteProductModifications ($product_id, $nopic = false)
  947 + {
  948 + IF ($nopic == false)
  949 + {
  950 + $sql = "
741 951 select *
742 952 from catalogs_modifications
743 953 where product_id=?";
744   - $res = $this->db->getAll ($sql, array (
  954 + $res = $this->db->getAll ($sql, array (
  955 + $product_id
  956 + ), DB_FETCHMODE_ASSOC);
  957 +
  958 + foreach ($res as $row)
  959 + {
  960 + $this->deleteModificationPics ($row['id']);
  961 + }
  962 + }
  963 +
  964 + $this->db->query ("
  965 + delete from catalogs_modifications
  966 + where product_id=?", array (
745 967 $product_id
  968 + ));
  969 + }
  970 +
  971 + function deleteModificationPics ($id, $pics = array('pic_big','pic'))
  972 + {
  973 + $sql = "select pic,pic_big from catalogs_modifications where id=?";
  974 +
  975 + $row = $this->db->getRow ($sql, array (
  976 + $id
746 977 ), DB_FETCHMODE_ASSOC);
747 978  
748   - foreach ($res as $row)
  979 + if (in_array ('pic', $pics))
749 980 {
750   - $this->deleteModificationPics ($row ['id']);
  981 + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/{$row['pic']}");
751 982 }
  983 +
  984 + // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}");
752 985 }
753   -
754   - $this->db->query ("
755   - delete from catalogs_modifications
756   - where product_id=?", array (
757   - $product_id
758   - ));
759   -}
760   -
761   -function deleteModificationPics ($id, $pics = array('pic_big','pic'))
762   -{
763   - $sql = "select pic,pic_big from catalogs_modifications where id=?";
764 986  
765   - $row = $this->db->getRow ($sql, array (
766   - $id
767   - ), DB_FETCHMODE_ASSOC);
768   -
769   - if (in_array ('pic', $pics))
  987 + // =================
  988 + // ==== PRODUCT ====
  989 + // =================
  990 +
  991 + function ProductClick ($id)
770 992 {
771   - @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/{$row['pic']}");
  993 + $this->db->query ("update catalogs_products set click=click+1 where id='$id'");
772 994 }
773   -
774   - // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}");
775   -}
776   -
777   -// =================
778   -// ==== PRODUCT ====
779   -// =================
780   -
781   - function ProductClick($id){
782   - $this->db->query("update catalogs_products set click=click+1 where id='$id'");
783   - }
784   -
785   -function SaveProduct ($data, $upload)
786   -{
787   - $table_name = "catalogs_products";
788   -
789   - if (trim (@$data['translit']) == "")
790   - $data['translit'] = translit ($data['name']);
791   -
792   - $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
793   - $id = ($data['update_id'] > 0) ? $data['update_id'] : $this->db->nextId ('mySequence_' . $table_name);
794   - $fields_values = array (
795   - 'id' => $id,
796   - 'rubric_id' => $data['rubric_id'],
797   - 'rubric_parent_id' => $this->getRubricParent ($data['rubric_id']),
798   - 'brend_id' => $data['brend_id'],
799   - 'name' => $data['name'],
800   - 'about' => $data['about'],
801   - 'text' => $data['text'],
802   - 'update_text' => (int)$data['update_text'],
803   - 'strnumber' => $data['strnumber'],
804   - 'cine' => $data['cine'],
805   - 'cine_last' => $data['cine_last'],
806   - 'mktime' => mktime (),
807   - 'meta_title' => $data['meta_title'],
808   - 'meta_description' => $data['meta_description'],
809   - 'meta_keywords' => $data['meta_keywords'],
810   - 'meta_about' => $data['meta_about'],
811   - 'active' => $data['active'],
812   - 'translit' => $data['translit']
813   - );
814   - if (isset ($data['is_cost2']))
815   - $fields_values['is_cost2'] = 1;
816   - else
817   - $fields_values['is_cost2'] = 0;
818   - if (isset ($data['cine2']))
819   - $fields_values['cine2'] = $data['cine2'];
820   - if (isset ($data['params']))
821   - $this->saveProductParams ($id, $data['params']);
822   - if (isset ($data['doc']))
823   - $fields_values['doc'] = $data['doc'];
824   - if (isset ($data['update_text']))
825   - $fields_values['update_text'] = $data['update_text'];
826   - if (isset ($data['video_code']))
827   - $fields_values['video_code'] = $data['video_code'];
828   - if (isset ($data['akcii_id']))
829   - $fields_values['akcii_id'] = $data['akcii_id'];
830   -
831   - if (isset ($data['translit']))
832   - $fields_values['translit'] = $data['translit'];
833   -
834   - if ($upload['pic']['tmp_name'])
835   - {
836   - $delete_pics = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? array (
837   - 'pic',
838   - 'pic2'
839   - ) : array (
840   - 'pic',
841   - 'pic2',
842   - 'pic_big'
  995 +
  996 + function SaveProduct ($data, $upload)
  997 + {
  998 + $table_name = "catalogs_products";
  999 +
  1000 + if (trim (@$data['translit']) == "")
  1001 + $data['translit'] = translit ($data['name']);
  1002 +
  1003 + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
  1004 + $id = ($data['update_id'] > 0) ? $data['update_id'] : $this->db->nextId ('mySequence_' . $table_name);
  1005 + $fields_values = array (
  1006 + 'id' => $id,
  1007 + 'rubric_id' => $data['rubric_id'],
  1008 + 'rubric_parent_id' => $this->getRubricParent ($data['rubric_id']),
  1009 + 'brend_id' => $data['brend_id'],
  1010 + 'name' => $data['name'],
  1011 + 'about' => $data['about'],
  1012 + 'text' => $data['text'],
  1013 + 'update_text' => (int) $data['update_text'],
  1014 + 'strnumber' => $data['strnumber'],
  1015 + 'cine' => $data['cine'],
  1016 + 'cine_last' => $data['cine_last'],
  1017 + 'mktime' => mktime (),
  1018 + 'meta_title' => $data['meta_title'],
  1019 + 'meta_description' => $data['meta_description'],
  1020 + 'meta_keywords' => $data['meta_keywords'],
  1021 + 'meta_about' => $data['meta_about'],
  1022 + 'active' => $data['active'],
  1023 + 'translit' => $data['translit']
843 1024 );
844   - $this->deleteProductPics ($id, $delete_pics);
845   - $fields_values['pic'] = upload_ImageResize ($upload['pic'], array (
  1025 + if (isset ($data['is_cost2']))
  1026 + $fields_values['is_cost2'] = 1;
  1027 + else
  1028 + $fields_values['is_cost2'] = 0;
  1029 + if (isset ($data['cine2']))
  1030 + $fields_values['cine2'] = $data['cine2'];
  1031 + if (isset ($data['params']))
  1032 + $this->saveProductParams ($id, $data['params']);
  1033 + if (isset ($data['doc']))
  1034 + $fields_values['doc'] = $data['doc'];
  1035 + if (isset ($data['update_text']))
  1036 + $fields_values['update_text'] = $data['update_text'];
  1037 + if (isset ($data['video_code']))
  1038 + $fields_values['video_code'] = $data['video_code'];
  1039 + if (isset ($data['akcii_id']))
  1040 + $fields_values['akcii_id'] = $data['akcii_id'];
  1041 +
  1042 + if (isset ($data['translit']))
  1043 + $fields_values['translit'] = $data['translit'];
  1044 +
  1045 + if ($upload['pic']['tmp_name'])
  1046 + {
  1047 + $delete_pics = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? array (
  1048 + 'pic',
  1049 + 'pic2'
  1050 + ) : array (
  1051 + 'pic',
  1052 + 'pic2',
  1053 + 'pic_big'
  1054 + );
  1055 + $this->deleteProductPics ($id, $delete_pics);
  1056 + $fields_values['pic'] = upload_ImageResize ($upload['pic'], array (
846 1057 'width' => "144",
847 1058 'height' => "144",
848 1059 'upload_path' => "./uploaded/pic/catalogs/products/"
... ... @@ -857,288 +1068,676 @@ function SaveProduct ($data, $upload)
857 1068 'height' => "1000",
858 1069 'upload_path' => "./uploaded/pic/catalogs/products/big/"
859 1070 ));
860   - }
  1071 + }
  1072 +
  1073 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='$id'");
  1074 + $this->save_keysProductsFilters ($id, $data);
  1075 + $this->save_keysProductsFilters2 ($id, $data);
  1076 + $this->save_keysProductsYears ($id, $data);
  1077 + // $this->save_keysProductsCities($id,$data);
  1078 + $this->save_keysProductsAkcii ($id, $data);
  1079 + $this->save_keysProductsSex ($id, $data);
861 1080  
862   - $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='$id'");
863   - $this->save_keysProductsFilters ($id, $data);
864   - $this->save_keysProductsFilters2 ($id, $data);
865   - $this->save_keysProductsYears ($id, $data);
866   - // $this->save_keysProductsCities($id,$data);
867   - $this->save_keysProductsAkcii ($id, $data);
868   - $this->save_keysProductsSex ($id, $data);
  1081 + return $id;
  1082 + }
869 1083  
870   - return $id;
871   -}
872   -
873   - function save_keysProductsSex($id,$data){
874   - $this->delete_keysProductsSex($id);
875   - if(!isset($data['sex']))return false;
876   - $table_name = "catalogs_keys_products_sex";
877   - foreach($data['sex'] as $sex){
878   - $this->db->autoExecute($table_name,array('product_id'=>$id,'sex'=>$sex,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
879   - }
880   - }
881   -
882   - function delete_keysProductsSex($id){
883   - $this->db->query("delete from catalogs_keys_products_sex where product_id=?",array($id));
884   - }
885   -
886   - function save_keysProductsFilters2($id,$data){
887   - $this->delete_keysProductsFilters2($id);
888   - if(!isset($data['filter2']))return false;
889   - $table_name = "catalogs_keys_products_filters2";
890   - foreach($data['filter2'] as $filter_id){
891   - $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
892   - }
893   - }
894   -
895   - function delete_keysProductsFilters2($id){
896   - $this->db->query("delete from catalogs_keys_products_filters2 where product_id=?",array($id));
897   - }
898   -
899   - function save_keysProductsFilters($id,$data){
900   - $this->delete_keysProductsFilters($id);
901   - if(!isset($data['filter']))return false;
902   - $table_name = "catalogs_keys_products_filters";
903   - foreach($data['filter'] as $filter_id){
904   - $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
905   - }
906   - }
907   -
908   - function delete_keysProductsFilters($id){
909   - $this->db->query("delete from catalogs_keys_products_filters where product_id=?",array($id));
910   - }
911   -
912   - function save_keysProductsYears($id,$data){
913   - $this->delete_keysProductsYears($id);
914   - if(!isset($data['years']))return false;
915   - $table_name = "catalogs_keys_products_years";
916   - foreach($data['years'] as $filter_id){
917   - $this->db->autoExecute($table_name,array('product_id'=>$id,'year_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT);
918   - }
919   - }
920   -
921   - function delete_keysProductsYears($id){
922   - $this->db->query("delete from catalogs_keys_products_years where product_id=?",array($id));
923   - }
924   -
925   - function save_keysProductsCities($id,$data){
926   - $this->delete_keysProductsCities($id);
927   - if(!isset($data['city']))return false;
928   - $table_name = "catalogs_keys_products_cities";
929   - foreach($data['city'] as $city_id){
930   - $this->db->autoExecute($table_name,array('product_id'=>$id,'city_id'=>$city_id),DB_AUTOQUERY_INSERT);
931   - }
932   - }
933   -
934   - function delete_keysProductsAkcii($id){
935   - $this->db->query("delete from catalogs_keys_products_akcii where product_id=?",array($id));
936   - }
937   -
938   - function save_keysProductsAkcii($id,$data){
939   - $this->delete_keysProductsAkcii($id);
940   - if(!isset($data['akcii']))return false;
941   - $table_name = "catalogs_keys_products_akcii";
942   - foreach($data['akcii'] as $rubric_id){
943   - $this->db->autoExecute($table_name,array('product_id'=>$id,'rubric_id'=>$rubric_id),DB_AUTOQUERY_INSERT);
944   - }
945   - }
946   -
947   - function delete_keysProductsCities($id){
948   - $this->db->query("delete from catalogs_keys_products_cities where product_id=?",array($id));
949   - }
  1084 + function save_keysProductsSex ($id, $data)
  1085 + {
  1086 + $this->delete_keysProductsSex ($id);
  1087 + if (! isset ($data['sex']))
  1088 + return false;
  1089 + $table_name = "catalogs_keys_products_sex";
  1090 + foreach ($data['sex'] as $sex)
  1091 + {
  1092 + $this->db->autoExecute ($table_name, array (
  1093 + 'product_id' => $id,
  1094 + 'sex' => $sex,
  1095 + 'rubric_id' => $data['rubric_id']
  1096 + ), DB_AUTOQUERY_INSERT);
  1097 + }
  1098 + }
  1099 +
  1100 + function delete_keysProductsSex ($id)
  1101 + {
  1102 + $this->db->query ("delete from catalogs_keys_products_sex where product_id=?", array (
  1103 + $id
  1104 + ));
  1105 + }
  1106 +
  1107 + function save_keysProductsFilters2 ($id, $data)
  1108 + {
  1109 + $this->delete_keysProductsFilters2 ($id);
  1110 + if (! isset ($data['filter2']))
  1111 + return false;
  1112 + $table_name = "catalogs_keys_products_filters2";
  1113 + foreach ($data['filter2'] as $filter_id)
  1114 + {
  1115 + $this->db->autoExecute ($table_name, array (
  1116 + 'product_id' => $id,
  1117 + 'filter_id' => $filter_id,
  1118 + 'rubric_id' => $data['rubric_id']
  1119 + ), DB_AUTOQUERY_INSERT);
  1120 + }
  1121 + }
  1122 +
  1123 + function delete_keysProductsFilters2 ($id)
  1124 + {
  1125 + $this->db->query ("delete from catalogs_keys_products_filters2 where product_id=?", array (
  1126 + $id
  1127 + ));
  1128 + }
  1129 +
  1130 + function save_keysProductsFilters ($id, $data)
  1131 + {
  1132 + $this->delete_keysProductsFilters ($id);
  1133 + if (! isset ($data['filter']))
  1134 + return false;
  1135 + $table_name = "catalogs_keys_products_filters";
  1136 + foreach ($data['filter'] as $filter_id)
  1137 + {
  1138 + $this->db->autoExecute ($table_name, array (
  1139 + 'product_id' => $id,
  1140 + 'filter_id' => $filter_id,
  1141 + 'rubric_id' => $data['rubric_id']
  1142 + ), DB_AUTOQUERY_INSERT);
  1143 + }
  1144 + }
  1145 +
  1146 + function delete_keysProductsFilters ($id)
  1147 + {
  1148 + $this->db->query ("delete from catalogs_keys_products_filters where product_id=?", array (
  1149 + $id
  1150 + ));
  1151 + }
  1152 +
  1153 + function save_keysProductsYears ($id, $data)
  1154 + {
  1155 + $this->delete_keysProductsYears ($id);
  1156 + if (! isset ($data['years']))
  1157 + return false;
  1158 + $table_name = "catalogs_keys_products_years";
  1159 + foreach ($data['years'] as $filter_id)
  1160 + {
  1161 + $this->db->autoExecute ($table_name, array (
  1162 + 'product_id' => $id,
  1163 + 'year_id' => $filter_id,
  1164 + 'rubric_id' => $data['rubric_id']
  1165 + ), DB_AUTOQUERY_INSERT);
  1166 + }
  1167 + }
  1168 +
  1169 + function delete_keysProductsYears ($id)
  1170 + {
  1171 + $this->db->query ("delete from catalogs_keys_products_years where product_id=?", array (
  1172 + $id
  1173 + ));
  1174 + }
  1175 +
  1176 + function save_keysProductsCities ($id, $data)
  1177 + {
  1178 + $this->delete_keysProductsCities ($id);
  1179 + if (! isset ($data['city']))
  1180 + return false;
  1181 + $table_name = "catalogs_keys_products_cities";
  1182 + foreach ($data['city'] as $city_id)
  1183 + {
  1184 + $this->db->autoExecute ($table_name, array (
  1185 + 'product_id' => $id,
  1186 + 'city_id' => $city_id
  1187 + ), DB_AUTOQUERY_INSERT);
  1188 + }
  1189 + }
  1190 +
  1191 + function delete_keysProductsAkcii ($id)
  1192 + {
  1193 + $this->db->query ("delete from catalogs_keys_products_akcii where product_id=?", array (
  1194 + $id
  1195 + ));
  1196 + }
  1197 +
  1198 + function save_keysProductsAkcii ($id, $data)
  1199 + {
  1200 + $this->delete_keysProductsAkcii ($id);
  1201 + if (! isset ($data['akcii']))
  1202 + return false;
  1203 + $table_name = "catalogs_keys_products_akcii";
  1204 + foreach ($data['akcii'] as $rubric_id)
  1205 + {
  1206 + $this->db->autoExecute ($table_name, array (
  1207 + 'product_id' => $id,
  1208 + 'rubric_id' => $rubric_id
  1209 + ), DB_AUTOQUERY_INSERT);
  1210 + }
  1211 + }
  1212 +
  1213 + function delete_keysProductsCities ($id)
  1214 + {
  1215 + $this->db->query ("delete from catalogs_keys_products_cities where product_id=?", array (
  1216 + $id
  1217 + ));
  1218 + }
  1219 +
  1220 + function saveProductSizeCine ($id, $data)
  1221 + {
  1222 + $this->db->query ("delete from catalogs_products_cine where product_id=?", array (
  1223 + $id
  1224 + ));
  1225 + foreach ($data['size'] as $key => $size)
  1226 + {
  1227 + $this->db->autoExecute ("catalogs_products_cine", array (
  1228 + 'product_id' => $id,
  1229 + 'size' => $size,
  1230 + 'cine' => $data['cine'][$key],
  1231 + 'metka' => $data['size_metka'][$key],
  1232 + 'n' => $key
  1233 + ), DB_AUTOQUERY_INSERT);
  1234 + }
  1235 + }
  1236 +
  1237 + function productsIsHits ($products, $hits, $tops, $akcii)
  1238 + {
  1239 + $sql = "update catalogs_products set active=?,top=?,akcii_id=? where id=?";
  1240 + foreach ($products as $id)
  1241 + {
  1242 + if (@in_array ($id, $hits))
  1243 + $hit = true;
  1244 + else
  1245 + $hit = false;
  1246 + if (@in_array ($id, $tops))
  1247 + $top = true;
  1248 + else
  1249 + $top = false;
  1250 + if (@in_array ($id, $akcii))
  1251 + $akcii = true;
  1252 + else
  1253 + $akcii = false;
  1254 + $this->db->query ($sql, array (
  1255 + $hit,
  1256 + $top,
  1257 + $akcii,
  1258 + $id
  1259 + ));
  1260 + }
  1261 + }
  1262 +
  1263 + function productsIsHits2 ($data, $hits)
  1264 + {
  1265 + $sql = "update catalogs_products set hit=?,hit_sort=? where id=?";
  1266 + foreach ($data['product_id'] as $key => $id)
  1267 + {
  1268 + if (@in_array ($id, $hits))
  1269 + $hit = true;
  1270 + else
  1271 + $hit = false;
  1272 + $this->db->query ($sql, array (
  1273 + $hit,
  1274 + $data['hit_sort'][$key],
  1275 + $id
  1276 + ));
  1277 + }
  1278 + }
  1279 +
  1280 + function viewProductsRubrics ($rubrics, $limit = 20)
  1281 + {
  1282 + $data = array ();
  1283 + foreach ($rubrics as $key => $rubric_id)
  1284 + {
  1285 + $data[$key]['rubric']['name'] = $this->getRubricName ($rubric_id);
  1286 + $data[$key]['rubric']['id'] = $rubric_id;
  1287 +
  1288 + $count = $this->db->getOne ("select count(*) from catalogs_products WHERE count_modifications>0 and rubric_id=?", array (
  1289 + $rubric_id
  1290 + ));
  1291 + $limit = 5;
  1292 + $round = ($count > $limit) ? rand (0, ($count - $limit)) : $limit;
  1293 + $sql = "select * from catalogs_products where count_modifications>0 and rubric_id=? order by id " . ((rand (1, 1000) % 2) ? "asc" : "desc") . " limit $round,$limit";
  1294 + $data[$key]['products'] = $this->db->getAll ($sql, array (
  1295 + $rubric_id
  1296 + ), DB_FETCHMODE_ASSOC);
  1297 + }
  1298 + /*
  1299 + * print"<pre>";
  1300 + * print_r($data);
  1301 + * print"</pre>";
  1302 + */
  1303 + $this->tpl->assign ('products', $data);
  1304 + }
  1305 +
  1306 + function seralizeFilter ($str)
  1307 + {
  1308 + $array = explode (';', iconv ('UTF-8', 'CP1251', $str));
  1309 + $filter = array ();
  1310 + foreach ($array as $key => $value)
  1311 + {
  1312 + $filter[substr ($value, 0, 1)][] = "'" . substr (str_replace (".", ",", $value), 1, strpos ($value, "_") - 1) . "'";
  1313 + }
  1314 + // print_r($filter);
  1315 + return $filter;
  1316 + }
  1317 +
  1318 + function seralizeSex ($str)
  1319 + {
  1320 + $sex = array ();
  1321 + $sex_num = array (
  1322 + 'male' => 1,
  1323 + 'female' => 2,
  1324 + 'child' => 3,
  1325 + 'unisex' => 4
  1326 + );
  1327 + $sex_row = explode (';', $str);
  1328 + foreach ($sex_row as $row)
  1329 + {
  1330 + $sex[] = $sex_num[$row];
  1331 + }
  1332 + return $sex;
  1333 + }
  1334 +
  1335 + // =================
  1336 + // ==== FILTER =====
  1337 + // =================
  1338 +
  1339 + /**
  1340 + * Ôèëüòðàöèÿ òîâàðîâ ïî êðèòåðèÿåì<br/>
  1341 + * Ìîæíî èñïîëüçîâàòü â êà÷åñòâå âûâîäà ñïèñêà ñâîéñòâ ôèëüòðîâ
  1342 + * @param array $setting
  1343 + * @return array òîâàðû/ñïèñêà ñâîéñòâ ôèëüòðîâ
  1344 + */
  1345 + function queryBuild (array $setting = array ())
  1346 + {
  1347 + Tools::ifNotExist ($setting, array (
  1348 + 'akcii' => true,
  1349 + 'sex' => true,
  1350 + ));
950 1351  
951   -
952   - function saveProductSizeCine($id,$data){
953   - $this->db->query("delete from catalogs_products_cine where product_id=?",array($id));
954   - foreach($data['size'] as $key=>$size){
955   - $this->db->autoExecute("catalogs_products_cine",array('product_id'=>$id,'size'=>$size,'cine'=>$data['cine'][$key],'metka'=>$data['size_metka'][$key],'n'=>$key),DB_AUTOQUERY_INSERT);
956   - }
957   - }
958   -
  1352 + $SQL = new SqlQuery();
  1353 + $SQL->select('
  1354 + catalogs_products.*, catalogs_products.name.as name,
  1355 + catalogs_brends.name as brend_name,
  1356 + catalogs_rubrics.list_name' . ($lang == 'ukr' ? '_ukr' : '') . ' as list_name,
  1357 + catalogs_rubrics.translit as rubric_translit,
  1358 + catalogs_keys_products_filters.*,
  1359 + catalogs_keys_products_filters2.*,
  1360 + catalogs_modifications.*
  1361 + ');
  1362 +
  1363 + $SQL->from('catalogs_products');
959 1364  
960   - function productsIsHits($products,$hits,$tops,$akcii){
961   - $sql = "update catalogs_products set active=?,top=?,akcii_id=? where id=?";
962   - foreach($products as $id){
963   - if(@in_array($id,$hits))$hit = true;
964   - else $hit = false;
965   - if(@in_array($id,$tops))$top = true;
966   - else $top = false;
967   - if(@in_array($id,$akcii))$akcii = true;
968   - else $akcii = false;
969   - $this->db->query($sql,array($hit,$top,$akcii, $id));
970   - }
971   - }
972   -
973   - function productsIsHits2($data,$hits){
974   - $sql = "update catalogs_products set hit=?,hit_sort=? where id=?";
975   - foreach($data['product_id'] as $key=>$id){
976   - if(@in_array($id,$hits))$hit = true;
977   - else $hit = false;
978   - $this->db->query($sql,array($hit,$data['hit_sort'][$key],$id));
979   - }
980   - }
981   -
982   - function viewProductsRubrics($rubrics,$limit=20){
983   - $data = array();
984   - foreach($rubrics as $key=>$rubric_id){
985   - $data[$key]['rubric']['name'] = $this->getRubricName($rubric_id);
986   - $data[$key]['rubric']['id'] = $rubric_id;
987   -
988   - $count = $this->db->getOne("select count(*) from catalogs_products WHERE count_modifications>0 and rubric_id=?",array($rubric_id));
989   - $limit = 5; $round = ($count>$limit) ? rand(0,($count-$limit)) : $limit;
990   - $sql = "select * from catalogs_products where count_modifications>0 and rubric_id=? order by id " . ((rand(1,1000)%2) ? "asc" : "desc") . " limit $round,$limit";
991   - $data[$key]['products'] = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC);
992   - }
993   - /* print"<pre>";
994   - print_r($data);
995   - print"</pre>"; */
996   - $this->tpl->assign('products',$data);
997   - }
998   -
999   - function seralizeFilter($str){
1000   - $array = explode(';',iconv('UTF-8','CP1251',$str));
1001   - $filter = array();
1002   - foreach($array as $key=>$value){
1003   - $filter[substr($value,0,1)][] = "'".substr(str_replace(".", ",", $value),1, strpos($value,"_")-1 )."'";
1004   - }
1005   - //print_r($filter);
1006   - return $filter;
1007   - }
1008   -
1009   - function seralizeSex($str){
1010   - $sex = array();
1011   - $sex_num = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
1012   - $sex_row = explode(';',$str);
1013   - foreach($sex_row as $row){
1014   - $sex[] = $sex_num[$row];
1015   - }
1016   - return $sex;
1017   - }
1018   -
  1365 + $SQL->innerJoin(
  1366 + 'catalogs_brends', NULL,
  1367 + 'catalogs_brends.id = catalogs_products.brend_id'
  1368 + );
1019 1369  
1020   - function viewProducts($params,$rubricsP = false,$count_modf = true,$lang='ru'){
1021   -
1022   -
1023   - //exit;
1024   - //print $params['filter_products'];
1025   -
1026   - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']);
1027   - $search = array();
1028   - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20;
1029   - if(isset($params['search_str']) && strlen($params['search_str'])>0){
1030   - $array_string = explode(" ",trim($params['search_str']));
1031   - foreach($array_string as $row){
1032   - $search[] = "(catalogs_products.name LIKE '%".$row."%' OR catalogs_products.text LIKE '%".$row." %' OR catalogs_rubrics.name LIKE '%".$row."%' OR catalogs_brends.name LIKE '%".$row."%' OR catalogs_modifications.code='".$row."')";
1033   - }
1034   - $search_string = array();
1035   - // $search_string[] = "catalogs_products.name like '%".mysql_real_escape_string($params['search_str'])."%'";
1036   - // $search_string[] = "catalogs_products.text like '%".mysql_real_escape_string($params['search_str'])."%'";
1037   - /* foreach($array_string as $str){
1038   - $search_string[] = "catalogs_products.name like '$str'";
1039   - $search_string[] = "catalogs_products.name like'% $str %'";
1040   - $search_string[] = "catalogs_products.name like'%$str %'";
1041   - $search_string[] = "catalogs_products.name like'% $str%'";
  1370 + $SQL->innerJoin(
  1371 + 'catalogs_rubrics', NULL,
  1372 + 'catalogs_rubrics.id=catalogs_products.rubric_id'
  1373 + );
1042 1374  
1043   - $search_string[] = "catalogs_products.text like '$str'";
1044   - $search_string[] = "catalogs_products.text like'% $str %'";
1045   - $search_string[] = "catalogs_products.text like'%$str %'";
1046   - $search_string[] = "catalogs_products.text like'% $str%'";
1047   - } */
1048   - //$search[] = "((" . implode(" OR ",$search_string) . ") OR ". sprintf("catalogs_modifications.code='%s'", mysql_real_escape_string($params['search_str'])).")";
1049   - }
1050   - // print_r($params);
1051   - if(isset($params['brendID']) && $params['brendID']>0)$search[] = sprintf("catalogs_products.brend_id='%d'",$params['brendID']);
1052   - if(isset($params['akciiID']) && $params['akciiID']>0)$search[] = sprintf("catalogs_products.akcii_id>'%d'",0);
1053   - if(isset($params['new']) && $params['new']>0)$search[] = sprintf("catalogs_products.active='%d'",$params['new']);
1054   - if(isset($params['top']) && $params['top']>0)$search[] = sprintf("catalogs_products.top='%d'",$params['top']);
1055   - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")";
1056   - if(isset($params['sex']) && strlen($params['sex'])>0){
1057   - $sex = $this->seralizeSex($params['sex']);
1058   - //print_r($sex);
  1375 + $SQL->innerJoin(
  1376 + 'catalogs_keys_products_filters', NULL,
  1377 + 'catalogs_keys_products_filters.product_id = catalogs_products.id'
  1378 + );
1059 1379  
1060   - // $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]);
  1380 + $SQL->innerJoin(
  1381 + 'catalogs_keys_products_filters2', NULL,
  1382 + 'catalogs_keys_products_filters2.product_id = catalogs_products.id'
  1383 + );
1061 1384  
1062   - $search[] = "s.sex IN (" . implode(",",$sex) . ")";
1063   - }
1064   - //if(isset($params['akcii']) && $params['akcii']>0)$search[] = sprintf("catalogs_products.hit='%d'",$params['akcii']);
1065   - if($count_modf==true)$search[] = "catalogs_products.count_modifications>0";
1066   - if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']) && !isset($params['what'])){
1067   - $search[] = ($rubricsP==true)?sprintf("(catalogs_products.rubric_id='%d')",$params['rubID']):sprintf("
1068   - (catalogs_products.rubric_parent_id='%d' ||
1069   - catalogs_products.rubric_id='%d' ||
1070   - catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') ||
1071   - catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d'))",$params['rubID'],$params['rubID'],$params['rubID'],$params['rubID']);
1072   - }
1073   -
1074   - /* if(isset($params['filterID'])){
1075   - //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']);
1076   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")";
1077   - }*/
  1385 + $SQL->innerJoin(
  1386 + 'catalogs_modifications', NULL,
  1387 + 'catalogs_modifications.product_id = catalogs_products.id
  1388 + AND catalogs_modifications.active = 1'
  1389 + );
  1390 +
  1391 + // àêöèè
  1392 + if ($setting['akcii'])
  1393 + {
  1394 + $SQL->select('catalogs_keys_products_akcii.*');
  1395 + $SQL->innerJoin(
  1396 + 'catalogs_keys_products_akcii', NULL,
  1397 + 'catalogs_keys_products_akcii.product_id = catalogs_products.id'
  1398 + );
  1399 + }
  1400 +
  1401 + // ïîë
  1402 + if ($setting['sex'])
  1403 + {
  1404 + $SQL->select('sex.*');
  1405 + $SQL->innerJoin(
  1406 + 'catalogs_keys_products_sex', 'sex',
  1407 + 'catalogs_keys_products_sex.product_id = catalogs_products.id
  1408 + AND sex.sex_id > 0'
  1409 + );
  1410 + }
  1411 +
  1412 + $SQL->where('catalogs_products.count_modifications > 0');
  1413 +
  1414 + // ===========================
  1415 + // ==== ðàçáîð ïàðàìåòðîâ ====
  1416 + // ===========================
  1417 +
  1418 + if (isset ($params['filter']) && count ($params['filter']) > 0)
  1419 + {
  1420 + // LIMIT
  1421 + if (isset ($_GET['perPage']) && $_GET['perPage'] > 0 && $_GET['perPage'] <= 100)
  1422 + {
  1423 + $perPage = $_GET['perPage'];
  1424 + }
  1425 + else
  1426 + {
  1427 + $perPage = 20;
  1428 + }
  1429 +
  1430 + $SQL->limit($perPage);
  1431 +
  1432 + // ÏÎÈÑÊ
  1433 + if (isset ($params['search_str']) && strlen ($params['search_str']) > 0)
  1434 + {
  1435 + $array_string = explode (' ', trim ($params['search_str']));
  1436 +
  1437 + foreach ($array_string as $word)
  1438 + {
  1439 + $SQL->where('(
  1440 + catalogs_products.name LIKE "%'.$word.'%"
  1441 + OR catalogs_products.text LIKE "%'.$word.'%"
  1442 + OR catalogs_rubrics.name LIKE "%'.$word.'%"
  1443 + OR catalogs_brends.name LIKE "%'.$word.'%"
  1444 + OR catalogs_modifications.code = "'.$word.'"
  1445 + )');
  1446 + }
  1447 + }
  1448 +
  1449 + // PARAM
  1450 +
  1451 + if (isset ($params['brendID']) && $params['brendID'] > 0)
  1452 + {
  1453 + $SQL->where( sprintf ("catalogs_products.brend_id='%d'", $params['brendID']));
  1454 + }
  1455 +
  1456 + if (isset ($params['akciiID']) && $params['akciiID'] > 0)
  1457 + {
  1458 + $SQL->where( sprintf ("catalogs_products.akcii_id>'%d'", 0));
  1459 + }
  1460 +
  1461 + if (isset ($params['new']) && $params['new'] > 0)
  1462 + {
  1463 + $SQL->where( sprintf ("catalogs_products.active='%d'", $params['new']));
  1464 + }
1078 1465  
1079   - if(isset($filter['f']) && count($filter['f'])>0){
1080   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")";
1081   - }
1082   - elseif(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($params['what'])){
1083   - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")";
1084   - }
1085   - if(isset($filter['g']) && count($filter['g'])>0){
1086   - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")";
1087   - }
1088   - if(isset($filter['s']) && count($filter['s'])>0){
1089   - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")";
1090   - }
1091   - if(isset($filter['r']) && count($filter['r'])>0){
1092   - $search[] = "m2.rost in (".implode(",",$filter['r']).")";
1093   - }
1094   -/* if(isset($params['yearID']) && $params['yearID']>0){
1095   - //$search[] = sprintf("catalogs_keys_products_years.year_id='%d'", $params['yearID']);
1096   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$params['yearID']).")";
1097   - }*/
1098   - if(isset($filter['y']) && $filter['y']>0){
1099   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
1100   - }
1101   - $sql = "select catalogs_rubrics.translit as rubric_translit,catalogs_products.*,catalogs_products.name".($lang=='ukr'?'':'')." as name,catalogs_brends.name as brend_name,catalogs_rubrics.list_name".($lang=='ukr'?'_ukr':'')." as list_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id ";
1102   - if(isset($params['akcii']) && $params['akcii']>0)$sql .= "RIGHT JOIN catalogs_keys_products_akcii ON catalogs_keys_products_akcii.product_id=catalogs_products.id ";
1103   - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1104   - elseif(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($params['what']))$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
  1466 + if (isset ($params['top']) && $params['top'] > 0)
  1467 + {
  1468 + $SQL->where( sprintf ("catalogs_products.top='%d'", $params['top']));
  1469 + }
  1470 +
  1471 + if (isset ($params['brend']) && strlen ($params['brend']) > 0)
  1472 + {
  1473 + $SQL->where( "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")");
  1474 + }
  1475 +
  1476 + if (isset ($params['sex']) && strlen ($params['sex']) > 0)
  1477 + {
  1478 + $sex = $this->seralizeSex ($params['sex']);
  1479 +
  1480 + $SQL->where( "s.sex IN (" . implode (",", $sex) . ")");
  1481 + }
  1482 +
  1483 + // ÕÇ
  1484 + if ($count_modf == true)
  1485 + {
  1486 + $SQL->where( "catalogs_products.count_modifications>0");
  1487 + }
1105 1488  
1106   - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id ";
  1489 + if (isset ($params['rubID']) && $params['rubID'] > 0
  1490 + && ! isset ($params['filter_products'])
  1491 + && ! isset ($params['what']))
  1492 + {
  1493 + $SQL->where( ($rubricsP == true) ? sprintf ("(catalogs_products.rubric_id='%d')", $params['rubID']) : sprintf ("
  1494 + (
  1495 + catalogs_products.rubric_parent_id='%d' ||
  1496 + catalogs_products.rubric_id='%d' ||
  1497 + catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') ||
  1498 + catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d')
  1499 + )",
  1500 + $params['rubID'],
  1501 + $params['rubID'],
  1502 + $params['rubID'],
  1503 + $params['rubID']
  1504 + ));
  1505 + }
  1506 +
  1507 + $filter = $this->seralizeFilter ($params['filter']);
  1508 +
  1509 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  1510 + {
  1511 + $SQL->where( "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")");
  1512 + }
  1513 + elseif (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($params['what']))
  1514 + {
  1515 + $SQL->where( "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")");
  1516 + }
  1517 +
  1518 + if (isset ($filter['g']) && count ($filter['g']) > 0)
  1519 + {
  1520 + $SQL->where( "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")");
  1521 + }
  1522 +
  1523 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  1524 + {
  1525 + $SQL->where( "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")");
  1526 + }
  1527 +
  1528 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  1529 + {
  1530 + $SQL->where( "m2.rost in (" . implode (",", $filter['r']) . ")");
  1531 + }
1107 1532  
1108   - //if(isset($params['filterID']) && $params['filterID']>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1109   -// if(isset($params['yearID']) && $params['yearID']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
1110   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
1111   - if(isset($params['search_str']) && strlen($params['search_str'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id ";}
1112   - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";}
1113   - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 ";}
1114   - if(isset($params['sex']) && strlen($params['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";}
  1533 + if (isset ($filter['y']) && $filter['y'] > 0)
  1534 + {
  1535 + $SQL->where( "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")");
  1536 + }
1115 1537  
1116   -
1117   - $sql .= "WHERE 1=1 ";
1118   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1119   - // if(isset($params['akcii']) && $params['akcii']>0){$sql .= " GROUP BY catalogs_keys_products_akcii.product_id ";}
1120   - //if(isset($params['search_str']) && strlen($params['search_str'])>0){}
1121   - $sql .= " GROUP BY catalogs_products.id ";
1122   - $sql .= "order by ";
1123   - if(isset($params['sort'])){
1124   - switch($params['sort']){
1125   - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break;
1126   - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break;
1127   - case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break;
1128   - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break;
1129   - default : $sql .= " catalogs_products.mktime desc";
1130   - }
1131   - }else $sql .= (!empty($params['top']))?" catalogs_rubrics.top desc":" catalogs_products.rating desc";
  1538 + // ==== SORT ====
1132 1539  
1133   - $pagerOptions = Array(
1134   - 'mode' => 'Sliding',
1135   - 'delta' => 5,
1136   - 'perPage' => $perPage,
1137   - 'linkClass'=>"link_class",
1138   - 'curPageLinkClassName'=>"link_class_active",
1139   - 'spacesBeforeSeparator' => 1,
1140   - 'spacesAfterSeparator' => 1
1141   - );
  1540 + if (isset ($params['sort']))
  1541 + {
  1542 + switch ($params['sort'])
  1543 + {
  1544 + case 'cine' :
  1545 +
  1546 + $SQL->orderBy('catalogs_products.cine '. ($_GET['order'] == 'asc' ? 'ASC' : 'DESC'));
  1547 + break;
  1548 +
  1549 + case 'click' :
  1550 +
  1551 + $SQL->orderBy('catalogs_products.click' . ($_GET['order'] == 'asc' ? 'ASC' : 'DESC'));
  1552 + break;
  1553 +
  1554 + case 'rating' :
  1555 +
  1556 + $SQL->orderBy('catalogs_products.rating' . ($_GET['order'] == 'asc' ? 'ASC' : 'DESC'));
  1557 + break;
  1558 +
  1559 + case 'hit' :
  1560 +
  1561 + $SQL->orderBy('catalogs_products.hit_sort ASC');
  1562 + break;
  1563 +
  1564 + default :
  1565 +
  1566 + $SQL->orderBy('catalogs_products.mktime DESC');
  1567 + }
  1568 + }
  1569 + else
  1570 + {
  1571 + $SQL->orderBy(! empty ($params['top']) ? 'catalogs_rubrics.top DESC' : 'catalogs_products.rating DESC');
  1572 + }
  1573 +
  1574 + // ==== GROUP ====
  1575 +
  1576 + $SQL->groupBy('catalogs_products.id');
  1577 + }
  1578 +
  1579 + return $this->db->getAll ($SQL->__toSting(), array (), DB_FETCHMODE_ASSOC);
  1580 + }
  1581 +
  1582 + function viewProducts ($params, $rubricsP = false, $count_modf = true, $lang = 'ru')
  1583 + {
  1584 +
  1585 + // exit;
  1586 + // print $params['filter_products'];
  1587 + if (isset ($params['filter']) && count ($params['filter']) > 0)
  1588 + $filter = $this->seralizeFilter ($params['filter']);
  1589 + $search = array ();
  1590 + if (isset ($_GET['perPage']) && $_GET['perPage'] > 0 && $_GET['perPage'] <= 100)
  1591 + $perPage = $_GET['perPage'];
  1592 + else
  1593 + $perPage = 20;
  1594 + if (isset ($params['search_str']) && strlen ($params['search_str']) > 0)
  1595 + {
  1596 + $array_string = explode (" ", trim ($params['search_str']));
  1597 + foreach ($array_string as $row)
  1598 + {
  1599 + $search[] = "(catalogs_products.name LIKE '%" . $row . "%' OR catalogs_products.text LIKE '%" . $row . " %' OR catalogs_rubrics.name LIKE '%" . $row . "%' OR catalogs_brends.name LIKE '%" . $row . "%' OR catalogs_modifications.code='" . $row . "')";
  1600 + }
  1601 + $search_string = array ();
  1602 + // $search_string[] = "catalogs_products.name like '%".mysql_real_escape_string($params['search_str'])."%'";
  1603 + // $search_string[] = "catalogs_products.text like '%".mysql_real_escape_string($params['search_str'])."%'";
  1604 + /*
  1605 + * foreach($array_string as $str){
  1606 + * $search_string[] = "catalogs_products.name like '$str'";
  1607 + * $search_string[] = "catalogs_products.name like'% $str %'";
  1608 + * $search_string[] = "catalogs_products.name like'%$str %'";
  1609 + * $search_string[] = "catalogs_products.name like'% $str%'";
  1610 + *
  1611 + * $search_string[] = "catalogs_products.text like '$str'";
  1612 + * $search_string[] = "catalogs_products.text like'% $str %'";
  1613 + * $search_string[] = "catalogs_products.text like'%$str %'";
  1614 + * $search_string[] = "catalogs_products.text like'% $str%'";
  1615 + * }
  1616 + */
  1617 + // $search[] = "((" . implode(" OR ",$search_string) . ") OR ". sprintf("catalogs_modifications.code='%s'", mysql_real_escape_string($params['search_str'])).")";
  1618 + }
  1619 + // print_r($params);
  1620 + if (isset ($params['brendID']) && $params['brendID'] > 0)
  1621 + $search[] = sprintf ("catalogs_products.brend_id='%d'", $params['brendID']);
  1622 + if (isset ($params['akciiID']) && $params['akciiID'] > 0)
  1623 + $search[] = sprintf ("catalogs_products.akcii_id>'%d'", 0);
  1624 + if (isset ($params['new']) && $params['new'] > 0)
  1625 + $search[] = sprintf ("catalogs_products.active='%d'", $params['new']);
  1626 + if (isset ($params['top']) && $params['top'] > 0)
  1627 + $search[] = sprintf ("catalogs_products.top='%d'", $params['top']);
  1628 + if (isset ($params['brend']) && strlen ($params['brend']) > 0)
  1629 + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")";
  1630 + if (isset ($params['sex']) && strlen ($params['sex']) > 0)
  1631 + {
  1632 + $sex = $this->seralizeSex ($params['sex']);
  1633 + // print_r($sex);
  1634 +
  1635 + // $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]);
  1636 +
  1637 + $search[] = "s.sex IN (" . implode (",", $sex) . ")";
  1638 + }
  1639 + // if(isset($params['akcii']) && $params['akcii']>0)$search[] = sprintf("catalogs_products.hit='%d'",$params['akcii']);
  1640 + if ($count_modf == true)
  1641 + $search[] = "catalogs_products.count_modifications>0";
  1642 + if (isset ($params['rubID']) && $params['rubID'] > 0 && ! isset ($params['filter_products']) && ! isset ($params['what']))
  1643 + {
  1644 + $search[] = ($rubricsP == true) ? sprintf ("(catalogs_products.rubric_id='%d')", $params['rubID']) : sprintf ("
  1645 + (catalogs_products.rubric_parent_id='%d' ||
  1646 + catalogs_products.rubric_id='%d' ||
  1647 + catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') ||
  1648 + catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d'))", $params['rubID'], $params['rubID'], $params['rubID'], $params['rubID']);
  1649 + }
  1650 +
  1651 + /*
  1652 + * if(isset($params['filterID'])){
  1653 + * //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']);
  1654 + * $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")";
  1655 + * }
  1656 + */
  1657 +
  1658 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  1659 + {
  1660 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  1661 + }
  1662 + elseif (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($params['what']))
  1663 + {
  1664 + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")";
  1665 + }
  1666 + if (isset ($filter['g']) && count ($filter['g']) > 0)
  1667 + {
  1668 + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")";
  1669 + }
  1670 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  1671 + {
  1672 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  1673 + }
  1674 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  1675 + {
  1676 + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  1677 + }
  1678 + /*
  1679 + * if(isset($params['yearID']) && $params['yearID']>0){
  1680 + * //$search[] = sprintf("catalogs_keys_products_years.year_id='%d'", $params['yearID']);
  1681 + * $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$params['yearID']).")";
  1682 + * }
  1683 + */
  1684 + if (isset ($filter['y']) && $filter['y'] > 0)
  1685 + {
  1686 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  1687 + }
  1688 + $sql = "
  1689 + SELECT catalogs_rubrics.translit as rubric_translit,catalogs_products.*,catalogs_products.name" . ($lang == 'ukr' ? '' : '') . " as name,catalogs_brends.name as brend_name,catalogs_rubrics.list_name" . ($lang == 'ukr' ? '_ukr' : '') . " as list_name
  1690 + FROM catalogs_products
  1691 + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  1692 + LEFT JOIN catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id
  1693 + RIGHT JOIN catalogs_keys_products_akcii ON catalogs_keys_products_akcii.product_id=catalogs_products.id
  1694 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  1695 + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id
  1696 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id
  1697 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id
  1698 + AND catalogs_modifications.active=1
  1699 + LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1
  1700 + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id
  1701 + WHERE 1=1
  1702 + ";
  1703 + if (count ($search))
  1704 + $sql .= "AND " . implode (" AND ", $search) . " ";
  1705 + // if(isset($params['akcii']) && $params['akcii']>0){$sql .= " GROUP BY catalogs_keys_products_akcii.product_id ";}
  1706 + // if(isset($params['search_str']) && strlen($params['search_str'])>0){}
  1707 + $sql .= " GROUP BY catalogs_products.id ";
  1708 + $sql .= "order by ";
  1709 + if (isset ($params['sort']))
  1710 + {
  1711 + switch ($params['sort'])
  1712 + {
  1713 + case 'cine' :
  1714 + $sql .= " catalogs_products.cine " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  1715 + break;
  1716 + case 'click' :
  1717 + $sql .= " catalogs_products.click " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  1718 + break;
  1719 + case 'rating' :
  1720 + $sql .= " catalogs_products.rating " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  1721 + break;
  1722 + case 'hit' :
  1723 + $sql .= " catalogs_products.hit_sort asc";
  1724 + break;
  1725 + default :
  1726 + $sql .= " catalogs_products.mktime desc";
  1727 + }
  1728 + }
  1729 + else
  1730 + $sql .= (! empty ($params['top'])) ? " catalogs_rubrics.top desc" : " catalogs_products.rating desc";
  1731 +
  1732 + $pagerOptions = Array (
  1733 + 'mode' => 'Sliding',
  1734 + 'delta' => 5,
  1735 + 'perPage' => $perPage,
  1736 + 'linkClass' => "link_class",
  1737 + 'curPageLinkClassName' => "link_class_active",
  1738 + 'spacesBeforeSeparator' => 1,
  1739 + 'spacesAfterSeparator' => 1
  1740 + );
1142 1741 // echo $sql;
1143 1742 // $sql="";
1144 1743 $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ());
... ... @@ -1160,2848 +1759,3765 @@ function SaveProduct ($data, $upload)
1160 1759 $res['data'][$i]['rating'] = @$res['data'][$i]['rating'] * 17;
1161 1760 }
1162 1761 }
1163   -
  1762 +
1164 1763 $this->tpl->assign ('productsData', $res);
1165 1764 return $res;
1166   - }
1167   -
1168   - function getFilterPh1($product_id,$lang = 'ru'){
1169   - $sql = "select ph1".($lang=='ukr'?'_ukr':'')." as ph1 from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where k.product_id=? AND f.ph1".($lang=='ukr'?'_ukr':'')."<>''";
1170   - return $this->db->getOne($sql,array($product_id));
1171   - }
1172   -
1173   - function getCineCurs($type_curs,$cine){
1174   - $curs = array();
1175   -
1176   - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah'));
1177   - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank'));
1178   - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd'));
1179   -
1180   - switch($type_curs){
1181   - case 'uah' :
1182   - $curs['uah'] = round($cine,2);
1183   - $curs['uah_bank'] = round(($cine/$usd)*$uah_bank,2);
1184   - $curs['usd'] = round($cine/$usd,2);
1185   - break;
1186   - case 'uah_bank' :
1187   - $curs['uah'] = round(($cine/$uah_bank)*$uah,2);
1188   - $curs['uah_bank'] = round($cine,2);
1189   - $curs['usd'] = round($cine/$uah_bank,2);
1190   - break;
1191   - case 'usd' :
1192   - $curs['uah'] = round($cine*$uah,2);
1193   - $curs['uah_bank'] = round($cine*$uah_bank,2);
1194   - $curs['usd'] = round($cine,2);
1195   - break;
1196   - }
1197   - return $curs;
1198   - }
1199   -
1200   - function viewProductsAkcii($rubric_id,$limit = 8){
1201   - // $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
1202   - // LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1203   - // LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
1204   - // WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 ";
1205   - // if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1206   - // $sql .= "order by RAND() LIMIT $limit";
1207   -
1208   - $search = array();
1209   - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']);
1210   - if(isset($filter['f']) && count($filter['f'])>0){
1211   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")";
1212   - }
1213   - if(isset($filter['g']) && count($filter['g'])>0){
1214   - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")";
1215   - }
1216   - if(isset($filter['s']) && count($filter['s'])>0){
1217   - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")";
1218   - }
1219   - if(isset($filter['y']) && $filter['y']>0){
1220   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
1221   - }
1222   -
1223   -
1224   - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")";
1225   -/* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
1226   - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
1227   - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]);
1228   - } */
1229   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
1230   - $sex = $this->seralizeSex($_GET['sex']);
1231   - $search[] = "catalogs_products.sex IN (" . implode(",",$sex) . ")";
1232   - }
1233   -
1234   - /*$sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_keys_products_akcii
1235   - left join catalogs_products on catalogs_products.id=catalogs_keys_products_akcii.product_id
1236   - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1237   - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";*/
1238   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
1239   - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1240   - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";
1241   - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1242   - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id ";
1243   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
1244   - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";}
1245   - //$sql .= "where catalogs_keys_products_akcii.rubric_id=? ";
1246   - $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 ";
1247   - if($rubric_id>0)$sql .="and catalogs_products.rubric_id='$rubric_id' ";
1248   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1249   - $sql .= "order by RAND()";
1250   - if($rubric_id==0){$sql .= " limit 8";}
1251   - $res = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1252   - //print_r($res);
1253   -for($i=0;$i<count($res);$i++){
1254   - $res[$i]['rating2'] = $res[$i]['rating'];
1255   - if( @$res[$i]['rating'] ) $res[$i]['rating'] = round( (@$res[$i]['rating'] / @$res[$i]['vote_num']), 0 );
1256   - else $res[$i]['rating'] = 0;
1257   - $res[$i]['rating'] = @$res[$i]['rating'] * 17;
1258   -}
1259   - $this->tpl->assign('products_akcii',$res);
1260   - }
  1765 + }
  1766 +
  1767 + function getFilterPh1 ($product_id, $lang = 'ru')
  1768 + {
  1769 + $sql = "select ph1" . ($lang == 'ukr' ? '_ukr' : '') . " as ph1 from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where k.product_id=? AND f.ph1" . ($lang == 'ukr' ? '_ukr' : '') . "<>''";
  1770 + return $this->db->getOne ($sql, array (
  1771 + $product_id
  1772 + ));
  1773 + }
  1774 +
  1775 + function getCineCurs ($type_curs, $cine)
  1776 + {
  1777 + $curs = array ();
  1778 +
  1779 + $uah = $this->db->getOne ("select curs from catalogs_curs where type=?", array (
  1780 + 'uah'
  1781 + ));
  1782 + $uah_bank = $this->db->getOne ("select curs from catalogs_curs where type=?", array (
  1783 + 'uah_bank'
  1784 + ));
  1785 + $usd = $this->db->getOne ("select curs from catalogs_curs where type=?", array (
  1786 + 'usd'
  1787 + ));
  1788 +
  1789 + switch ($type_curs)
  1790 + {
  1791 + case 'uah' :
  1792 + $curs['uah'] = round ($cine, 2);
  1793 + $curs['uah_bank'] = round (($cine / $usd) * $uah_bank, 2);
  1794 + $curs['usd'] = round ($cine / $usd, 2);
  1795 + break;
  1796 + case 'uah_bank' :
  1797 + $curs['uah'] = round (($cine / $uah_bank) * $uah, 2);
  1798 + $curs['uah_bank'] = round ($cine, 2);
  1799 + $curs['usd'] = round ($cine / $uah_bank, 2);
  1800 + break;
  1801 + case 'usd' :
  1802 + $curs['uah'] = round ($cine * $uah, 2);
  1803 + $curs['uah_bank'] = round ($cine * $uah_bank, 2);
  1804 + $curs['usd'] = round ($cine, 2);
  1805 + break;
  1806 + }
  1807 + return $curs;
  1808 + }
  1809 +
  1810 + function viewProductsAkcii ($rubric_id, $limit = 8)
  1811 + {
  1812 + // $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  1813 + // LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  1814 + // LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  1815 + // WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 ";
  1816 + // if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
  1817 + // $sql .= "order by RAND() LIMIT $limit";
  1818 + $search = array ();
  1819 + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
  1820 + $filter = $this->seralizeFilter ($_GET['filter']);
  1821 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  1822 + {
  1823 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  1824 + }
  1825 + if (isset ($filter['g']) && count ($filter['g']) > 0)
  1826 + {
  1827 + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")";
  1828 + }
  1829 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  1830 + {
  1831 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  1832 + }
  1833 + if (isset ($filter['y']) && $filter['y'] > 0)
  1834 + {
  1835 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  1836 + }
  1837 +
  1838 + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
  1839 + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
  1840 + /*
  1841 + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
  1842 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  1843 + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]);
  1844 + * }
  1845 + */
  1846 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  1847 + {
  1848 + $sex = $this->seralizeSex ($_GET['sex']);
  1849 + $search[] = "catalogs_products.sex IN (" . implode (",", $sex) . ")";
  1850 + }
  1851 +
  1852 + /*
  1853 + * $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_keys_products_akcii
  1854 + * left join catalogs_products on catalogs_products.id=catalogs_keys_products_akcii.product_id
  1855 + * LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  1856 + * LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";
  1857 + */
  1858 + $sql = "
  1859 + SELECT catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit
  1860 + FROM catalogs_products
  1861 + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  1862 + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  1863 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  1864 + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id
  1865 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id
  1866 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1
  1867 + WHERE catalogs_products.count_modifications>0
  1868 + AND catalogs_products.akcii_id>0
  1869 + ";
  1870 + if ($rubric_id > 0)
  1871 + $sql .= "and catalogs_products.rubric_id='$rubric_id' ";
  1872 + if (count ($search))
  1873 + $sql .= "AND " . implode (" AND ", $search) . " ";
  1874 + $sql .= "order by RAND()";
  1875 + if ($rubric_id == 0)
  1876 + {
  1877 + $sql .= " limit 8";
  1878 + }
  1879 + $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  1880 + // print_r($res);
  1881 + for ($i = 0; $i < count ($res); $i ++)
  1882 + {
  1883 + $res[$i]['rating2'] = $res[$i]['rating'];
  1884 + if (@$res[$i]['rating'])
  1885 + $res[$i]['rating'] = round ((@$res[$i]['rating'] / @$res[$i]['vote_num']), 0);
  1886 + else
  1887 + $res[$i]['rating'] = 0;
  1888 + $res[$i]['rating'] = @$res[$i]['rating'] * 17;
  1889 + }
  1890 + $this->tpl->assign ('products_akcii', $res);
  1891 + }
1261 1892  
1262   - function getProductsAkcii($limit = 6){
1263   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  1893 + function getProductsAkcii ($limit = 6)
  1894 + {
  1895 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
1264 1896 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1265   - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";
1266   - //$sql .= "where catalogs_keys_products_akcii.rubric_id=? ";
1267   - $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 ";
1268   - //if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1269   - $sql .= "order by RAND() limit $limit";
1270   - return $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1271   - }
1272   -
1273   - function viewProductsHitsAll2(){
1274   - if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20;
1275   - $sql = "select * from catalogs_products where hit=?";
1276   - $pagerOptions = Array(
1277   - 'mode' => 'Sliding',
1278   - 'delta' => 6,
1279   - 'perPage' => $perPage,
1280   - 'linkClass'=>"link_class",
1281   - 'curPageLinkClassName'=>"link_class_active",
1282   - 'spacesBeforeSeparator' => 1,
1283   - 'spacesAfterSeparator' => 1
1284   - );
1285   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array(true));
  1897 + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";
  1898 + // $sql .= "where catalogs_keys_products_akcii.rubric_id=? ";
  1899 + $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 ";
  1900 + // if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
  1901 + $sql .= "order by RAND() limit $limit";
  1902 + return $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  1903 + }
1286 1904  
1287   - $this->tpl->assign('productsData', $res);
1288   - }
  1905 + function viewProductsHitsAll2 ()
  1906 + {
  1907 + if (isset ($_GET['perPage']) && $_GET['perPage'] > 0 && $_GET['perPage'] <= 100)
  1908 + $perPage = $_GET['perPage'];
  1909 + else
  1910 + $perPage = 20;
  1911 + $sql = "select * from catalogs_products where hit=?";
  1912 + $pagerOptions = Array (
  1913 + 'mode' => 'Sliding',
  1914 + 'delta' => 6,
  1915 + 'perPage' => $perPage,
  1916 + 'linkClass' => "link_class",
  1917 + 'curPageLinkClassName' => "link_class_active",
  1918 + 'spacesBeforeSeparator' => 1,
  1919 + 'spacesAfterSeparator' => 1
  1920 + );
  1921 + $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array (
  1922 + true
  1923 + ));
  1924 +
  1925 + $this->tpl->assign ('productsData', $res);
  1926 + }
1289 1927  
1290   - function viewProductsActiveAll($params,$limit = 4,$curs = null){
1291   - $search = array();
1292   -
1293   - $sql = "
  1928 + function viewProductsActiveAll ($params, $limit = 4, $curs = null)
  1929 + {
  1930 + $search = array ();
  1931 +
  1932 + $sql = "
1294 1933 SELECT * FROM (
1295 1934 select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
1296 1935 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1297 1936 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
1298 1937 WHERE catalogs_products.active=? and catalogs_products.count_modifications>0 ";
1299   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1300   - $sql .= "ORDER BY RAND()) as T ";
1301   - $sql .= "Group By rubric_id ORDER BY RAND() LIMIT $limit";
1302   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
1303   - //print_r($res);
1304   - $this->tpl->assign('products_active',$res);
1305   - }
1306   -
1307   - function viewProductsActive($params,$limit = 4,$curs = null){
1308   - $search = array();
1309   - if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']))$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']);
1310   - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']);
1311   -
1312   - if(isset($filter['f']) && count($filter['f'])>0){
1313   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")";
1314   - }
1315   - if(isset($filter['g']) && count($filter['g'])>0){
1316   - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")";
1317   - }
1318   - if(isset($filter['s']) && count($filter['s'])>0){
1319   - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")";
1320   - }
1321   - if(isset($filter['y']) && $filter['y']>0){
1322   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
1323   - }
1324   - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){
1325   - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")";
1326   - }
1327   -
1328   - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")";
1329   -
1330   -/* if(isset($params['sex']) && strlen($params['sex'])>0){
1331   - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
1332   - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]);
1333   - } */
1334   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
1335   - $sex = $this->seralizeSex($_GET['sex']);
1336   - $search[] = "s.sex IN (" . implode(",",$sex) . ")";
1337   - }
1338   -
1339   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
1340   - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1341   - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";
1342   - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1343   - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id ";
1344   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
1345   - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";}
1346   - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f']))$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1347   - if(isset($params['sex']) && strlen($params['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";}
1348   -
1349   - $sql .= "WHERE catalogs_products.active=? and catalogs_products.count_modifications>0 ";
1350   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1351   - $sql .= "order by RAND() LIMIT $limit";
1352   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
1353   - //print_r($res);
1354   - $this->tpl->assign('products_active',$res);
1355   - }
1356   -
1357   - function viewProductsHits($params,$limit = 4,$curs = null){
1358   - $search = array();
1359   - if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']);
1360   -
1361   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
1362   - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1363   - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
1364   - WHERE catalogs_products.hit=? and catalogs_products.count_modifications>0 ";
1365   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1366   - $sql .= "order by ";
1367   - if(isset($params['sort'])){
1368   - switch($params['sort']){
1369   - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break;
1370   - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break;
1371   - case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break;
1372   - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break;
1373   - default : $sql .= " RAND()";
1374   - }
1375   - }else $sql .= " RAND()";
1376   - $sql .=" LIMIT $limit";
1377   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
1378   - //print_r($res);
1379   - $this->tpl->assign('products_hits',$res);
1380   - }
1381   -
1382   - function viewProductsTops($params,$limit = 4,$curs = null){
1383   - $search = array();
1384   - if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']))$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']);
1385   - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']);
1386   -
1387   - if(isset($filter['f']) && count($filter['f'])>0){
1388   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")";
1389   - }
1390   - if(isset($filter['g']) && count($filter['g'])>0){
1391   - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")";
1392   - }
1393   - if(isset($filter['s']) && count($filter['s'])>0){
1394   - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")";
1395   - }
1396   - if(isset($filter['y']) && $filter['y']>0){
1397   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
1398   - }
1399   - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){
1400   - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")";
1401   - }
1402   -
1403   - if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")";
1404   -
1405   - /*if(isset($params['sex']) && strlen($params['sex'])>0){
1406   - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
1407   - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]);
1408   - }*/
1409   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
1410   - $sex = $this->seralizeSex($_GET['sex']);
1411   - $search[] = "catalogs_products.sex IN (" . implode(",",$sex) . ")";
1412   - }
1413   -
1414   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
1415   - LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
1416   - LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";
1417   - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1418   - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id ";
1419   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
1420   - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";}
1421   - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f']))$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1422   -
1423   - $sql .= "WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 ";
1424   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1425   - // $sql .= "order by RAND()";
1426   - $sql .= "order by ";
1427   - if(isset($params['sort'])){
1428   - switch($params['sort']){
1429   - case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break;
1430   - case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break;
1431   - case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break;
1432   - case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break;
1433   - default : $sql .= " r.top desc";
1434   - }
1435   - }else $sql .= " r.top desc";
1436   - $sql .=" LIMIT $limit";
1437   - //print $sql;
1438   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
1439   - //print_r($res);
1440   - $this->tpl->assign('products_top',$res);
1441   - }
1442   -
1443   - function viewProductsTopOne(){
1444   - $count = $this->db->getOne("select count(*) from catalogs_products WHERE catalogs_products.header=?",array(true));
1445   - $limit = 1; $round = rand(0,($count-$limit));
1446   - $res = $this->db->getRow("select * from catalogs_products WHERE catalogs_products.header=? order by id " . ((rand(1,1000)%2) ? "asc" : "desc") . " LIMIT $round,$limit",array(true),DB_FETCHMODE_ASSOC);
1447   - $this->tpl->assign('products_top_one',$res);
1448   - }
1449   -
1450   - function viewProductsLast($limit = 1){
1451   - $search = array();
1452   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE catalogs_products.active=? ";
1453   - $sql .= "order by catalogs_products.mktime desc LIMIT $limit";
1454   - $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
1455   - $this->tpl->assign('products_last',$res);
1456   - }
1457   -
1458   - function viewProductsHitsAll($limit = 4){
1459   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE hit=? ";
1460   - $sql .= "order by mktime desc LIMIT $limit";
1461   - $products_hits = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC);
1462   - $this->tpl->assign('products_hits_all',$products_hits);
1463   - }
1464   -
1465   - function activeNull($rubric_id){
1466   - $sql = "update catalogs_products set active=? where rubric_id=?";
1467   - $this->db->query($sql,array(0,$rubric_id));
1468   - }
1469   -
1470   - function viewProductOne($id,&$row){
1471   -// $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b2 ON b2.id=p.brend_id left join catalogs_brends b ON b.name=b2.name and b.active=1 where p.id=?";
1472   - $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b ON b.id=p.brend_id where p.id=?";
1473   -
1474   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
1475   - $row['ph1'] = $this->getFilterPh1($row['id']);
1476   -
1477   - $row['rating2'] = $row['rating'];
1478   - if( @$row['rating'] ) $row['rating'] = round( (@$row['rating'] / @$row['vote_num']), 0 );
1479   - else $row['rating'] = 0;
1480   - $row['rating'] = @$row['rating'] * 17;
1481   - //print_r($row);
1482   - $this->tpl->assign('product',$row);
1483   - }
1484   -
1485   - function deleteCompareProduct(&$compare,$id){
1486   - foreach($compare as $key=>$_id){
1487   - if($_id == $id)unset($compare[$key]);
1488   - }
1489   - }
1490   -
1491   - function viewCompareProducts($compare){
1492   - $products = array();
1493   - $i = 0;
1494   - foreach($compare as $id){
1495   - $sql = "select p.* from catalogs_products p where p.id=?";
1496   - $products[$i] = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
1497   - $products[$i]['params'] = $this->getProductParams($id);
1498   - $i++;
1499   - } //print_r($products);
1500   - $this->tpl->assign('products',$products);
1501   - }
1502   -
1503   - function viewProductNembers($str_n){
1504   - $arr_id = explode(",",$str_n);
1505   - $products = array();
1506   - foreach($arr_id as $id){
1507   - $count = $this->db->getOne("select count(*) from catalogs_keys_products_filters where filter_id=?",array(trim($id)));
1508   - $limit = 1; $round = rand(0,($count-$limit)); //" LIMIT 0,$limit"
1509   - $sql = "select catalogs_rubrics.translit as rubric_translit,catalogs_rubrics.name as rubric, catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id=? and catalogs_products.count_modifications>0 order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") ; //. " LIMIT $round,$limit";
1510   - $row = $this->db->getRow($sql ,array(trim($id)),DB_FETCHMODE_ASSOC);
1511   - if(count($row)>0)$products[] = $row;
1512   - }
1513   -
1514   -// $products = $this->db->getAll("select catalogs_rubrics.translit as translit2,catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id in(".implode(',',$arr_id).") and catalogs_products.count_modifications>0 Group By catalogs_keys_products_filters.filter_id order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") ,array(),DB_FETCHMODE_ASSOC);
1515   - $this->tpl->assign('products_parent',$products);
1516   - }
1517   -
1518   - function getProductSizeCine($id,&$products){
1519   - $res = $this->db->getAll("select * from catalogs_products_cine where product_id=?",array($id),DB_FETCHMODE_ASSOC);
1520   - $i = 0;
1521   - foreach($res as $row){
1522   - $products['size_' . $row['n']] = $row['size'];
1523   - $products['cine_' . $row['n']] = $row['cine'];
1524   - $products['metka_' . $row['n']] = $row['metka'];
1525   - $products['id_cine_' . $row['n']] = $row['id'];
1526   - $i++;
1527   - } //print_r($products);
1528   - }
1529   - /*
1530   - function getProductCine($id,$curs = null){
1531   - $sql = "select cine from catalogs_products where id=?";
1532   - $row = $this->db->getOne($sql,array($id));
1533   - return $row;
1534   - }*/
1535   -
1536   - function getProductCine($id){
1537   - $sql = "select IF( catalogs_products.is_cost2 <1, catalogs_products.cine, catalogs_products.cine2 ) AS cine from catalogs_modifications left join catalogs_products on catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?";
1538   - return $this->db->getOne($sql,array($id));
1539   - }
1540   -
1541   - function viewProductCine($id){
1542   - $row = $this->db->getAll("select * from catalogs_products_cine where product_id=? and cine>0 Order By n ASC",array($id),DB_FETCHMODE_ASSOC);
1543   - $this->tpl->assign('product_cines',$row);
1544   - }
1545   -
1546   - function viewCatalogsCurs(){
1547   - $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah'));
1548   - $this->tpl->assign('curs_uah',$uah);
1549   - $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank'));
1550   - $this->tpl->assign('curs_uah_bank',$uah_bank);
1551   - $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd'));
1552   - $this->tpl->assign('curs_usd',$usd);
1553   - }
1554   -
1555   - function saveCurs($data){
1556   - $table_name = "catalogs_curs";
1557   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
1558   - foreach($data as $key=>$value){
1559   - $this->db->autoExecute($table_name,array('curs'=>$value),$DB_AUTOQUERY,"type='$key'");
1560   - }
1561   - }
1562   -
1563   - function viewVarCurs($curs){
1564   - $this->tpl->assign('curs',$curs);
1565   - }
1566   -
1567   - function viewBasketProducts($session_basket,$curs = null,$discount = 0){
1568   - $products = array(); $i = 0; $cineAll = 0;
1569   -// $sql = "select catalogs_products.* from catalogs_products where catalogs_products.id=?";
1570   -// $sql = "select catalogs_modifications.id,IF(catalogs_products.is_cost2<1,catalogs_products.cine,catalogs_products.cine2) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?";
1571   - $sql = "select catalogs_modifications.id,catalogs_modifications.sale,IF(catalogs_modifications.cine>0,catalogs_modifications.cine,catalogs_products.cine) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?";
1572   -
1573   - foreach($session_basket as $id){
1574   - $products_count = 1;
1575   - if(count($products)){
1576   - foreach($products as $key=>$value){
1577   - if($value['id']==$id){$products_count=$products[$key]['products_count']+$products_count;$products[$key]['products_count']=$products_count;$products[$key]['products_cine_all']=$products[$key]['cine']*$products_count;$cineAll = $cineAll+$products[$key]['cine'];}
1578   - }}
1579   - if($products_count==1){
1580   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
1581   - $products[$i] = $row;
1582   - $products[$i]['cine'] = round($products[$i]['cine'] - ($products[$i]['cine']*$products[$i]['sale']/100));
1583   -
1584   - $products[$i]['products_count']=$products_count;
1585   - $products[$i]['products_cine_all']=$products[$i]['cine']*$products_count;
1586   - $cineAll = $cineAll+$products[$i]['products_cine_all'];
1587   - $i++;
1588   - }
  1938 + if (count ($search))
  1939 + $sql .= "AND " . implode (" AND ", $search) . " ";
  1940 + $sql .= "ORDER BY RAND()) as T ";
  1941 + $sql .= "Group By rubric_id ORDER BY RAND() LIMIT $limit";
  1942 + $res = $this->db->getAll ($sql, array (
  1943 + true
  1944 + ), DB_FETCHMODE_ASSOC);
  1945 + // print_r($res);
  1946 + $this->tpl->assign ('products_active', $res);
  1947 + }
1589 1948  
1590   - }
1591   - /*print"<pre>";
1592   - print_r($products);
1593   - print"</pre>";*/
1594   - $this->tpl->assign('cineAll',$cineAll);
1595   - $this->tpl->assign('cineAll_discount',$cineAll - (($cineAll*$discount)/100));
1596   - $this->tpl->assign('basket_products',$products); //print_r($products);
1597   - }
1598   -
1599   -
1600   - function BasketUpload(&$session_basket,$proructs_count){
1601   -
1602   - // ========== ZLODEYEV ============
1603   -
1604   - foreach($proructs_count as $key=>$value){
1605   -
1606   - // ==== îáíîâëÿåì ====
1607   -
1608   - // Âûáèðàåì èíôî î òîâàðå
1609   - $sql4 = "SELECT * FROM catalogs_modifications as m
1610   - LEFT JOIN catalogs_products as p
1611   - ON p.id=m.product_id
1612   - WHERE m.id='".$key."' ";
1613   - $result4 = mysql_query($sql4) or die(mysql_error());
1614   - if (mysql_affected_rows()!=0) {
1615   - $item=mysql_fetch_assoc($result4);
1616   - }
  1949 + function viewProductsActive ($params, $limit = 4, $curs = null)
  1950 + {
  1951 + $search = array ();
  1952 + if (isset ($params['rubID']) && $params['rubID'] > 0 && ! isset ($params['filter_products']))
  1953 + $search[] = sprintf ("catalogs_products.rubric_id=%d", $params['rubID']);
  1954 + if (isset ($params['filter']) && count ($params['filter']) > 0)
  1955 + $filter = $this->seralizeFilter ($params['filter']);
  1956 +
  1957 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  1958 + {
  1959 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  1960 + }
  1961 + if (isset ($filter['g']) && count ($filter['g']) > 0)
  1962 + {
  1963 + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")";
  1964 + }
  1965 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  1966 + {
  1967 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  1968 + }
  1969 + if (isset ($filter['y']) && $filter['y'] > 0)
  1970 + {
  1971 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  1972 + }
  1973 + if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f']))
  1974 + {
  1975 + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")";
  1976 + }
1617 1977  
1618   - $f=0;
  1978 + if (isset ($params['brend']) && strlen ($params['brend']) > 0)
  1979 + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")";
  1980 +
  1981 + /*
  1982 + * if(isset($params['sex']) && strlen($params['sex'])>0){
  1983 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  1984 + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]);
  1985 + * }
  1986 + */
  1987 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  1988 + {
  1989 + $sex = $this->seralizeSex ($_GET['sex']);
  1990 + $search[] = "s.sex IN (" . implode (",", $sex) . ")";
  1991 + }
1619 1992  
1620   - if (isset($_SESSION['shopcart'])) {
  1993 + $sql = "
  1994 + SELECT catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit
  1995 + FROM catalogs_products
  1996 + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  1997 + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  1998 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  1999 + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id
  2000 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id
  2001 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1
  2002 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  2003 + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id
  2004 + WHERE catalogs_products.active=?
  2005 + AND catalogs_products.count_modifications>0
  2006 + ";
1621 2007  
1622   - foreach ($_SESSION['shopcart'] as $i => $cart) {
  2008 + if (count ($search))
  2009 + $sql .= "AND " . implode (" AND ", $search) . " ";
  2010 + $sql .= "order by RAND() LIMIT $limit";
  2011 + $res = $this->db->getAll ($sql, array (
  2012 + true
  2013 + ), DB_FETCHMODE_ASSOC);
  2014 + // print_r($res);
  2015 + $this->tpl->assign ('products_active', $res);
  2016 + }
1623 2017  
1624   -
1625   - if ($cart['code']!='' && $cart['code']==$key) {
1626   - $f=1;
1627   - $_SESSION['shopcart'][$i]['count']=$value;
1628   - $_SESSION['shopcart'][$i]['total']=$value*$_SESSION['shopcart'][$i]['price'];
1629   - if ($_SESSION['shopcart'][$i]['total']==0) {
1630   - unset($_SESSION['shopcart'][$i]);
1631   - }
  2018 + function viewProductsHits ($params, $limit = 4, $curs = null)
  2019 + {
  2020 + $search = array ();
  2021 + if (isset ($params['rubID']) && $params['rubID'] > 0)
  2022 + $search[] = sprintf ("catalogs_products.rubric_id=%d", $params['rubID']);
  2023 +
  2024 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  2025 + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  2026 + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  2027 + WHERE catalogs_products.hit=? and catalogs_products.count_modifications>0 ";
  2028 + if (count ($search))
  2029 + $sql .= "AND " . implode (" AND ", $search) . " ";
  2030 + $sql .= "order by ";
  2031 + if (isset ($params['sort']))
  2032 + {
  2033 + switch ($params['sort'])
  2034 + {
  2035 + case 'cine' :
  2036 + $sql .= " catalogs_products.cine " . (($_GET['order'] == 'asc') ? "asc" : "desc");
1632 2037 break;
1633   - }
  2038 + case 'click' :
  2039 + $sql .= " catalogs_products.click " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  2040 + break;
  2041 + case 'rating' :
  2042 + $sql .= " catalogs_products.rating " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  2043 + break;
  2044 + case 'hit' :
  2045 + $sql .= " catalogs_products.hit_sort asc";
  2046 + break;
  2047 + default :
  2048 + $sql .= " RAND()";
1634 2049 }
1635   - }
  2050 + }
  2051 + else
  2052 + $sql .= " RAND()";
  2053 + $sql .= " LIMIT $limit";
  2054 + $res = $this->db->getAll ($sql, array (
  2055 + true
  2056 + ), DB_FETCHMODE_ASSOC);
  2057 + // print_r($res);
  2058 + $this->tpl->assign ('products_hits', $res);
1636 2059 }
1637   -
1638   - // ========== ZLODEYEV ============
1639   -
1640   -
1641   - $session_basket = array();
1642   - foreach($proructs_count as $key=>$value){
1643   - for($i=0;$i<$value;$i++){
1644   - $session_basket[] = $key;
1645   - }
1646   - }
1647   - }
1648   -
1649   - function sendOrder($data){
1650   - $mail = new PHPMailer();
1651   - $mail->CharSet = "windows-1251";
1652   - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
1653   - $mail->FromName = $data['order_name'];
1654   - $mail->AddAddress("shop@eltrade.com.ua","shop");
1655   - $mail->Subject = "Îôîðìèòü çàêàç ñ ÝêñòðèìÑòèëü";
1656   - $title = Mail::str_rus("Îôîðìèòü çàêàç");
1657   - $msg = "";
1658   - foreach($data['product_id'] as $key=>$value){
1659   - $msg .= "ID: ".$value." ";
1660   - $msg .= "Íàçâàíèå: <b>".$data['product_name'][$key]."</b> ";
1661   - $msg .= "Öåíà çà îäèí: ".$data['product_cine'][$key]." ";
1662   - $msg .= "Êîëè÷åñòâî: ".$data['product_count'][$key]." ";
1663   - $msg .= "Çà âåñü òîâàð: ".$data['product_cine_all'][$key]." ";
1664   - $msg .= "<br>";
1665   - }
1666   - $msg .= "Îáùàÿ ñóìà: ".$data['cineAll'];
1667   - $msg .= "<br>";
1668   - /* $msg .= "Ñêèäêà: ".$data['discount']." %";
1669   - $msg .= "<br>"; */
1670   - $msg .= "Èòîãî ê îïëàòå: ".$data['cineAll_discount'];
1671   - $msg .= "<br><br><br>";
1672   - $msg .= "Êîíòàêòíûå äàííûå:";
1673   - $msg .= "<br>";
1674   - $msg .= "Èìÿ: ".$data['order_name'];
1675   - $msg .= "<br>";
1676   - $msg .= "Àäðåñ: ".$data['order_adress'];
1677   - $msg .= "<br>";
1678   - $msg .= "E-mail: ".$data['order_email'];
1679   - $msg .= "<br>";
1680   - $msg .= "Êîíòàêòíûé òåëåôîí: ".$data['order_phone'];
1681   -// $msg .= "<br>";
1682   -// $msg .= "Ìîáèëüíûé òåëåôîí: ".$data['order_phonemob'];
1683   - $msg .= "<br>";
1684   - $msg .= "Êîììåíòàðèé: ".$data['order_comment'];
1685   -// $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "vapila@vapila.kiev.ua";
1686   -// Mail::send("borisenko.pavel@gmail.com",$data['order_email'],$title,Mail::str_rus($msg));
1687   - $mail->MsgHTML($msg);
1688   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
1689   - $mail->ClearAddresses();
1690   - $mail->ClearAttachments();
1691   -
1692   - $this->sendOrderXML($data);
1693   - }
1694   -
1695   -
1696   - function sendOrderXML($data){
1697   -
1698   -
1699   -
1700   -$data['order_phone'] = str_replace("-","",$data['order_phone']);
1701   -$data['order_phone'] = str_replace(")","",$data['order_phone']);
1702   -$data['order_phone'] = str_replace("(","",$data['order_phone']);
1703   -$data['order_phone'] = str_replace(" ","",$data['order_phone']);
1704   -$ffffffff = substr($data['order_phone'],0,3);
1705   -if($ffffffff!="380")
1706   -$data['order_phone'] = "+38".$data['order_phone'];
1707   -
1708   -
1709   -
1710   - $mail = new PHPMailer();
1711   - $mail->CharSet = "windows-1251";
1712   - $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
1713   - $mail->FromName = $data['order_name'];
1714   - $mail->AddAddress("extremshop@portal.myoffice.biz.ua","extremshop");
1715   - $mail->Subject = "xml çàêàç ñ ÝêñòðèìÑòèëü";
1716   - $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
1717   - $xml = '<?xml version="1.0" encoding="windows-1251" ?>';
1718   - $xml .= '<Order orderNum="'.mktime().'">';
1719   - foreach($data['product_id'] as $key=>$value){
1720   - $xml .= "<OrderItem ID='".$data['product_code'][$key]."'>";
1721   - $xml .= "<ProductName>".$data['product_name2'][$key]."</ProductName>";
1722   - $xml .= "<Size>".$data['product_size'][$key]."</Size>";
1723   - $xml .= "<Color>".$data['product_color'][$key]."</Color>";
1724   - $xml .= "<Price>".$data['product_price'][$key]."</Price>";
1725   - $xml .= "<Count>".$data['product_count'][$key]."</Count>";
1726   - $xml .= "</OrderItem>";
1727   - }
1728   - $xml .= '<CustomerInfo>';
1729   - $xml .= '<Name>'.$data['order_name'].'</Name>';
1730   - $xml .= '<Mobile>'.$data['order_phone'].'</Mobile>';
1731   - $xml .= '<Email>'.$data['order_email'].'</Email>';
1732   - $xml .= '</CustomerInfo>';
1733   - $xml .= '<DeliveryInfo>';
1734   - $xml .= '<City>Óêðàèíà</City>';
1735   - $xml .= '<Address>'.$data['order_adress'].'</Address>';
1736   - $xml .= '<DeliveryType>Äîñòàâêà</DeliveryType>';
1737   - $xml .= '</DeliveryInfo>';
1738   - $xml .= '<Comment>'.$data['order_comment'].'</Comment>';
1739   - $xml .= '</Order>';
1740   - $tmpfname = tempnam("tmp", "FOO");
1741   - $handle = fopen($tmpfname, "w");
1742   - fwrite($handle, $xml);
1743   - $mail->AddAttachment($tmpfname, 'order.xml');
1744   - if(!$mail->Send()){echo "There has been a mail error sending to <br>";return false;}
1745   - fclose($handle);
1746   - unlink($tmpfname);
1747   - $mail->ClearAddresses();
1748   - $mail->ClearAttachments();
1749   - // Mail::send("borisenko.pavel@gmail.com",$order_email,"Order",Mail::str_rus($xml));
1750   - // Mail::send("andrey.belyy@gmail.com",$order_email,"Order",Mail::str_rus($xml));
1751   - }
1752   -
1753   - function saveOrder($data,$userID = 0){
1754   -
1755   - $table_name = "catalogs_orders";
1756   -
1757   - if(isset($data['update_id']) && $data['update_id']>0){
1758   - $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
1759   - $id = $data['update_id'];
1760   - $where = sprintf("id='%d'",$id);
1761   - } else {
1762   - $DB_AUTOQUERY = DB_AUTOQUERY_INSERT;
1763   - $id = $this->db->nextId('mySequence_'.$table_name);
1764   - $where = null;
1765   - }
1766   -
1767   -
1768   -
1769   -
1770   - $fields_values = array(
1771   - 'id'=>$id,
1772   - 'user_id'=>$userID,
1773   - 'name' => $data['order_name'],
1774   - 'email' => $data['order_email'],
1775   - 'adress' => $data['order_adress'],
1776   - //'phone' => phone_mobil($data['order_phone']),
1777   - 'phone' => $data['order_phone'],
1778   - 'comment' => $data['order_comment'],
1779   - 'delivery' => $data['delivery'],
1780   - 'total'=>$_SESSION['cart']['total'],
1781   - 'status' => '1',
1782   - 'mktime'=>mktime()
1783   - );
1784   - $DB_AUTOQUERY;
1785   -
1786   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,$where);
1787   -
1788   - if(isset($data['product_id'])){ $i=-1;
1789   - foreach($data['product_id'] as $key=>$value){ $i++;
1790   - $this->db->autoExecute("catalogs_orders_products",array(
1791   - 'order_id'=>$id,
1792   - 'product_id'=>$value,
1793   - 'product_cine_id'=>$_SESSION['cart'][$i]['price'],
1794   - 'count'=>$data['product_count'][$key])
1795   - ,DB_AUTOQUERY_INSERT);
1796   - }
1797   - }
1798   -
1799   -
1800   - }
1801   -
1802   - function deleteOrder($id){
1803   - $this->db->query("delete from catalogs_orders where id=?",array($id));
1804   - $this->db->query("delete from catalogs_orders_products where order_id=?",array($id));
1805   - }
1806   -
1807   - function updateOrder($data){
1808   - $table_name = "catalogs_orders";
1809   - $fields_values = array('name' => $data['order_name'],'email' => $data['order_email'],'adress' => $data['order_adress'],'phone' => $data['order_phone'],'comment' => $data['order_comment'],'mktime'=>mktime());
1810   - if(isset($data['order_active']))$fields_values['active'] = 1;
1811   - else $fields_values['active'] = 0;
1812   - $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,sprintf("id='%d'",$data['update_id']));
1813   - }
1814   -
1815   - function updateOrderProducts($data){
1816   - foreach($data['product_id'] as $key=>$value){
1817   - if($data['product_count'][$value]<1){$this->db->query("delete from catalogs_orders_products where order_id='{$data['order_id']}' AND product_id='$value'");}
1818   - else{$this->db->autoExecute("catalogs_orders_products",array('count'=>$data['product_count'][$value]),DB_AUTOQUERY_UPDATE,"order_id='{$data['order_id']}' AND product_id='$value'");}
1819   - }
1820   - }
1821   -
1822   - function viewOrder($id){
1823   - $row = $this->db->getRow("select * from catalogs_orders where id=?",array($id),DB_FETCHMODE_ASSOC);
1824   - $this->tpl->assign('order', $row);
1825   - }
1826   -
1827   - function viewOrderProducts($order_id){
1828   - $res = $this->db->getAll("select p.*,op.*,pr.name,pr.pic,pr.pic_big from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id Left join catalogs_products pr On pr.id=p.product_id where order_id=?",array($order_id),DB_FETCHMODE_ASSOC);
1829   - $sum = 0;
1830   - foreach($res as $key=>$row){
1831   - $sum = $sum + ($row['cine']*$row['count']);
1832   - $res[$key]['cine_all'] = ($row['cine']*$row['count']);
1833   - }
1834   - $discount = $this->db->getOne('select catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id where catalogs_orders.id=?',array($order_id));
1835   - $this->tpl->assign('cine', array('sum'=>$sum,'discount'=>$discount,'sum_discount'=>($sum - (($sum*$discount)/100)) ));
1836   - $this->tpl->assign('basket_products', $res);
1837   - }
1838   -
1839   - function viewOrders($params = array()){
1840   - $search = array();
1841   - if(isset($params['userID']) && $params['userID']>0)$search[] = sprintf("catalogs_orders.user_id='%d'",$params['userID']);
1842   - $sql = "select catalogs_orders.*,catalogs_users.login as user_login,catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id WHERE 1=1 ";
1843   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1844   - $sql .= " order by mktime desc";
1845   - $pagerOptions = Array(
1846   - 'mode' => 'Sliding',
1847   - 'delta' => 16,
1848   - 'perPage' => 50,
1849   - 'linkClass'=>"link_class",
1850   - 'curPageLinkClassName'=>"link_class_active",
1851   - 'spacesBeforeSeparator' => 1,
1852   - 'spacesAfterSeparator' => 1
1853   - );
1854   - $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
1855   - foreach($res['data'] as $key=>$value){
1856   - $res['data'][$key]['sum'] = $this->getOrderProductsSum($value['id']);
1857   - $res['data'][$key]['sum_discount'] = $res['data'][$key]['sum'] - (($res['data'][$key]['sum']*$value['discount'])/100);
1858   - }
1859   - $this->tpl->assign('ordersData', $res);
1860   - }
1861   -
1862   - function getOrderProductsSum($order_id){
1863   - $res = $this->db->getAll("select op.*,p.cine from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id where op.order_id=?",array($order_id),DB_FETCHMODE_ASSOC);
1864   - // print_r($res);
1865   - $sum = 0;
1866   - foreach($res as $row){
1867   - $sum = $sum + ($row['cine']*$row['count']);
1868   - }
1869   - return $sum;
1870   - }
1871   -
1872   - function SaveBrend($data,$upload){
1873   - $table_name = "catalogs_brends";
1874   - $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
1875   - $fields_values = array('rubric_id'=>$data['rubric_id'],'name'=>$data['brend'],'email'=>$data['email'],'text'=>$data['text_setka'],'youtube'=>$data['youtube'],'seo'=>$data['seo_text'],'sort'=>$data['sort'],'meta_title'=>$data['meta_title'],'meta_description'=>$data['meta_description'],'meta_keywords'=>$data['meta_keywords'],'active'=>$data['active'] ,'about'=>$data['about'],'link'=>$data['link'],'teh'=>$data['teh']);
1876   -
1877   - if(isset($data['delete_video']) && $data['delete_video']==1){
1878   - $this->deleteBrendPic($data['update_id']);
1879   - $fields_values['pic'] = null;
1880   - }
1881   - if($upload['pic']['tmp_name']){
1882   - if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic'));
1883   - $name_pic = mktime() . "." . substr(strrchr($_FILES['pic']['name'],"."),1);
1884   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/$name_pic";
1885   - move_uploaded_file($_FILES["pic"]["tmp_name"], $file_name);
1886   - chmod($file_name,"0777");
1887   - $fields_values['pic'] = $name_pic;
1888   - }
1889   -
1890   - if(isset($data['delete_pic_s']) && $data['delete_pic_s']==1){
1891   - $this->deleteBrendPic($data['update_id'],array('pic_s'));
1892   - $fields_values['pic_s'] = null;
1893   - }
1894   - if($upload['pic_s']['tmp_name']){
1895   - if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic_s'));
1896   - $name_pic = mktime() . "." . substr(strrchr($_FILES['pic_s']['name'],"."),1);
1897   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/$name_pic";
1898   - move_uploaded_file($_FILES["pic_s"]["tmp_name"], $file_name);
1899   - chmod($file_name,"0777");
1900   - $fields_values['pic_s'] = $name_pic;
1901   - }
1902   -
1903   -
1904   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
1905   - }
1906   -
1907   - function deleteBrendPic($id,$pics = array('pic','pic_s')){
1908   - $sql = "select " . implode(',',$pics) . " from catalogs_brends where id=?";
1909   - $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
1910   - if(isset($row['pic'])){
1911   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/{$row['pic']}";
1912   - @unlink($file_name);
1913   - }
1914   - if(isset($row['pic_s'])){
1915   - $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/{$row['pic_s']}";
1916   - @unlink($file_name);
1917   - }
1918   - }
1919   -
1920   - function viewBrends($type = false){
1921   - $sql = "select b.*,r.name as rubric from catalogs_brends b left join catalogs_rubrics r On r.id=b.rubric_id ";
1922   - if($type!=false)$sql .= "where b.type='$type'";
1923   - $sql .= " Order by b.name Asc";
1924   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1925   - $this->tpl->assign('brends',$row);
1926   - }
1927   -
1928   - function viewBrendsGroup($params = array()){
1929   - $search = array();
1930   - if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']);
1931   -
1932   - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){
1933   - $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")";
1934   - }
1935   -
1936   - if(isset($filter['y']) && $filter['y']>0){
1937   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
1938   - }
1939   -
1940   - if(isset($filter['f']) && count($filter['f'])>0){
1941   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")";
1942   - }
1943   -
1944   - if(isset($filter['g']) && count($filter['g'])>0){
1945   - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")";
1946   - }
1947   -
1948   - if(isset($filter['s']) && count($filter['s'])>0){
1949   - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")";
1950   - }
1951   - if(isset($filter['r']) && count($filter['r'])>0){
1952   - $search[] = "m2.rost in (".implode(",",$filter['r']).")";
1953   - }
1954   - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("catalogs_products.active='%d'",$_GET['new']);
1955   - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("catalogs_products.top='%d'",$_GET['top']);
1956   -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("catalogs_products.akcii_id>'%d'",0);
1957   - /*if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
1958   - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
1959   - $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]);
1960   - }*/
1961 2060  
1962   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
1963   - $sex = $this->seralizeSex($_GET['sex']);
1964   - $search[] = "s.sex IN (" . implode(",",$sex) . ")";
1965   - }
1966   -/*
1967   - $sql = "select * from catalogs_products ";
1968   - $sql .= "LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id ";
1969   - if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){
1970   - //$sql .= "LEFT JOIN catalogs_products ON catalogs_products.brend_id=catalogs_brends.id ";
1971   - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1972   - }
1973   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
1974   - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
1975   - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id ";
1976   -
1977   - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";}
1978   - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 ";}
1979   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";}
1980   - $sql .= "where catalogs_products.count_modifications>0 and catalogs_brends.id>0 ";
1981   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
1982   - if(isset($params['rubID']) && !isset($params['filter_products'])){
1983   - $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']);
1984   - $rubric_id = ($rubric_id==0)?$params['rubID']:$rubric_id;
1985   - $sql .= "and catalogs_products.rubric_id='".$rubric_id."'";
1986   - }
1987   - $sql .= " Group by catalogs_brends.name Order by catalogs_brends.name Asc";
1988   - // print $sql;
1989   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
1990   - $this->tpl->assign('brends',$row);
1991   - }
1992   -*/
1993   -
1994   - // ==== catalogs_products ====
1995   -
1996   - $sql = array ();
1997   - $sql[] = "select * from catalogs_products ";
1998   - $sql[] = "LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id ";
1999   -
2000   - if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f']))
2001   - {
2002   - //$sql .= "LEFT JOIN catalogs_products ON catalogs_products.brend_id=catalogs_brends.id ";
2003   - $sql[] = "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
2004   - }
2005   -
2006   - if (isset ($filter['y']) && $filter['y'] > 0)
  2061 + function viewProductsTops ($params, $limit = 4, $curs = null)
2007 2062 {
2008   - $sql[] = "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id ";
  2063 + $search = array ();
  2064 + if (isset ($params['rubID']) && $params['rubID'] > 0 && ! isset ($params['filter_products']))
  2065 + $search[] = sprintf ("catalogs_products.rubric_id=%d", $params['rubID']);
  2066 + if (isset ($params['filter']) && count ($params['filter']) > 0)
  2067 + $filter = $this->seralizeFilter ($params['filter']);
  2068 +
  2069 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  2070 + {
  2071 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  2072 + }
  2073 + if (isset ($filter['g']) && count ($filter['g']) > 0)
  2074 + {
  2075 + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")";
  2076 + }
  2077 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  2078 + {
  2079 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  2080 + }
  2081 + if (isset ($filter['y']) && $filter['y'] > 0)
  2082 + {
  2083 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  2084 + }
  2085 + if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f']))
  2086 + {
  2087 + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")";
  2088 + }
  2089 +
  2090 + if (isset ($params['brend']) && strlen ($params['brend']) > 0)
  2091 + $search[] = "catalogs_products.brend_id in(" . implode (",", $this->getBrendIDs_name ($params['brend'])) . ")";
  2092 +
  2093 + /*
  2094 + * if(isset($params['sex']) && strlen($params['sex'])>0){
  2095 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  2096 + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]);
  2097 + * }
  2098 + */
  2099 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  2100 + {
  2101 + $sex = $this->seralizeSex ($_GET['sex']);
  2102 + $search[] = "catalogs_products.sex IN (" . implode (",", $sex) . ")";
  2103 + }
  2104 +
  2105 + $sql = "
  2106 + SELECT catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit
  2107 + FROM catalogs_products
  2108 + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  2109 + LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  2110 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  2111 + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id
  2112 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id
  2113 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1
  2114 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  2115 + WHERE catalogs_products.top=?
  2116 + AND catalogs_products.count_modifications>0
  2117 + ";
  2118 +
  2119 + if (count ($search))
  2120 + $sql .= "AND " . implode (" AND ", $search) . " ";
  2121 + // $sql .= "order by RAND()";
  2122 + $sql .= "order by ";
  2123 + if (isset ($params['sort']))
  2124 + {
  2125 + switch ($params['sort'])
  2126 + {
  2127 + case 'cine' :
  2128 + $sql .= " catalogs_products.cine " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  2129 + break;
  2130 + case 'click' :
  2131 + $sql .= " catalogs_products.click " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  2132 + break;
  2133 + case 'rating' :
  2134 + $sql .= " catalogs_products.rating " . (($_GET['order'] == 'asc') ? "asc" : "desc");
  2135 + break;
  2136 + case 'hit' :
  2137 + $sql .= " catalogs_products.hit_sort asc";
  2138 + break;
  2139 + default :
  2140 + $sql .= " r.top desc";
  2141 + }
  2142 + }
  2143 + else
  2144 + $sql .= " r.top desc";
  2145 + $sql .= " LIMIT $limit";
  2146 + // print $sql;
  2147 + $res = $this->db->getAll ($sql, array (
  2148 + true
  2149 + ), DB_FETCHMODE_ASSOC);
  2150 + // print_r($res);
  2151 + $this->tpl->assign ('products_top', $res);
2009 2152 }
2010 2153  
2011   - if (isset ($filter['f']) && count ($filter['f']) > 0)
  2154 + function viewProductsTopOne ()
2012 2155 {
2013   - $sql[] = "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id ";
  2156 + $count = $this->db->getOne ("select count(*) from catalogs_products WHERE catalogs_products.header=?", array (
  2157 + true
  2158 + ));
  2159 + $limit = 1;
  2160 + $round = rand (0, ($count - $limit));
  2161 + $res = $this->db->getRow ("select * from catalogs_products WHERE catalogs_products.header=? order by id " . ((rand (1, 1000) % 2) ? "asc" : "desc") . " LIMIT $round,$limit", array (
  2162 + true
  2163 + ), DB_FETCHMODE_ASSOC);
  2164 + $this->tpl->assign ('products_top_one', $res);
2014 2165 }
2015 2166  
2016   - if (isset ($filter['g']) && count ($filter['g']) > 0)
  2167 + function viewProductsLast ($limit = 1)
2017 2168 {
2018   - $sql[] = "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id ";
  2169 + $search = array ();
  2170 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE catalogs_products.active=? ";
  2171 + $sql .= "order by catalogs_products.mktime desc LIMIT $limit";
  2172 + $res = $this->db->getAll ($sql, array (
  2173 + true
  2174 + ), DB_FETCHMODE_ASSOC);
  2175 + $this->tpl->assign ('products_last', $res);
2019 2176 }
2020 2177  
2021   - if (isset ($filter['s']) && count ($filter['s']) > 0)
  2178 + function viewProductsHitsAll ($limit = 4)
2022 2179 {
2023   - $sql[] = "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1 ";
  2180 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id WHERE hit=? ";
  2181 + $sql .= "order by mktime desc LIMIT $limit";
  2182 + $products_hits = $this->db->getAll ($sql, array (
  2183 + true
  2184 + ), DB_FETCHMODE_ASSOC);
  2185 + $this->tpl->assign ('products_hits_all', $products_hits);
2024 2186 }
2025 2187  
2026   - if (isset ($filter['r']) && count ($filter['r']) > 0)
  2188 + function activeNull ($rubric_id)
2027 2189 {
2028   - $sql[] = "LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1 ";
  2190 + $sql = "update catalogs_products set active=? where rubric_id=?";
  2191 + $this->db->query ($sql, array (
  2192 + 0,
  2193 + $rubric_id
  2194 + ));
2029 2195 }
2030 2196  
2031   - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  2197 + function viewProductOne ($id, &$row)
2032 2198 {
2033   - $sql[] = "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";
  2199 + // $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b2 ON b2.id=p.brend_id left join catalogs_brends b ON b.name=b2.name and b.active=1 where p.id=?";
  2200 + $sql = "select p.*,b.name as brend_name,b.text as brend_text,b.pic_s as brend_pic_s from catalogs_products p left join catalogs_brends b ON b.id=p.brend_id where p.id=?";
  2201 +
  2202 + $row = $this->db->getRow ($sql, array (
  2203 + $id
  2204 + ), DB_FETCHMODE_ASSOC);
  2205 + $row['ph1'] = $this->getFilterPh1 ($row['id']);
  2206 +
  2207 + $row['rating2'] = $row['rating'];
  2208 + if (@$row['rating'])
  2209 + $row['rating'] = round ((@$row['rating'] / @$row['vote_num']), 0);
  2210 + else
  2211 + $row['rating'] = 0;
  2212 + $row['rating'] = @$row['rating'] * 17;
  2213 + // print_r($row);
  2214 + $this->tpl->assign ('product', $row);
2034 2215 }
2035 2216  
2036   - $sql[] = "where catalogs_products.count_modifications > 0 and catalogs_brends.id > 0 ";
2037   -
2038   - if (count ($search))
  2217 + function deleteCompareProduct (&$compare, $id)
2039 2218 {
2040   - $sql[] = "AND " . implode(" AND ", $search) . " ";
  2219 + foreach ($compare as $key => $_id)
  2220 + {
  2221 + if ($_id == $id)
  2222 + unset ($compare[$key]);
  2223 + }
2041 2224 }
2042 2225  
2043   - if (isset ($params['rubID']) && ! isset ($params['filter_products']))
  2226 + function viewCompareProducts ($compare)
2044 2227 {
2045   - $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']);
2046   - $rubric_id = ($rubric_id == 0) ? $params['rubID'] : $rubric_id;
2047   - $sql[] = "and catalogs_products.rubric_id='".$rubric_id."'";
  2228 + $products = array ();
  2229 + $i = 0;
  2230 + foreach ($compare as $id)
  2231 + {
  2232 + $sql = "select p.* from catalogs_products p where p.id=?";
  2233 + $products[$i] = $this->db->getRow ($sql, array (
  2234 + $id
  2235 + ), DB_FETCHMODE_ASSOC);
  2236 + $products[$i]['params'] = $this->getProductParams ($id);
  2237 + $i ++;
  2238 + } // print_r($products);
  2239 + $this->tpl->assign ('products', $products);
2048 2240 }
2049 2241  
2050   - $sql[] = " Group by catalogs_brends.name Order by catalogs_brends.name Asc";
2051   -
2052   - if (count ($sql) > 4)
2053   - {
2054   - $row = $this->db->getAll(implode (' ', $sql), array(), DB_FETCHMODE_ASSOC);
2055   - }
2056   - else
  2242 + function viewProductNembers ($str_n)
2057 2243 {
2058   - // çíà÷èò ñòðàíèöà
2059   - $row = array ();
  2244 + $arr_id = explode (",", $str_n);
  2245 + $products = array ();
  2246 + foreach ($arr_id as $id)
  2247 + {
  2248 + $count = $this->db->getOne ("select count(*) from catalogs_keys_products_filters where filter_id=?", array (
  2249 + trim ($id)
  2250 + ));
  2251 + $limit = 1;
  2252 + $round = rand (0, ($count - $limit)); // " LIMIT 0,$limit"
  2253 + $sql = "select catalogs_rubrics.translit as rubric_translit,catalogs_rubrics.name as rubric, catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id=? and catalogs_products.count_modifications>0 order by catalogs_keys_products_filters.product_id " . ((rand (1, 1000) % 2) ? "asc" : "desc"); // . " LIMIT $round,$limit";
  2254 + $row = $this->db->getRow ($sql, array (
  2255 + trim ($id)
  2256 + ), DB_FETCHMODE_ASSOC);
  2257 + if (count ($row) > 0)
  2258 + $products[] = $row;
  2259 + }
  2260 +
  2261 + // $products = $this->db->getAll("select catalogs_rubrics.translit as translit2,catalogs_products.*,catalogs_keys_products_filters.filter_id as prd from catalogs_keys_products_filters Left Join catalogs_products ON catalogs_products.id=catalogs_keys_products_filters.product_id Left Join catalogs_rubrics ON catalogs_rubrics.id=catalogs_products.rubric_id where catalogs_keys_products_filters.filter_id in(".implode(',',$arr_id).") and catalogs_products.count_modifications>0 Group By catalogs_keys_products_filters.filter_id order by catalogs_keys_products_filters.product_id " . ((rand(1,1000)%2) ? "asc" : "desc") ,array(),DB_FETCHMODE_ASSOC);
  2262 + $this->tpl->assign ('products_parent', $products);
2060 2263 }
2061   - $this->tpl->assign('brends', $row);
2062   -
2063   -}
2064   -
2065   -// =====
2066   -
2067   - function viewBrendsActive(){
2068   - $sql = "select * from catalogs_brends where active=1 ";
2069   - $sql .= " Order by name Asc";
2070   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
2071   - $this->tpl->assign('brends_a',$row);
2072   - }
2073   -
2074   - function SaveCity($data){
2075   - $table_name = "catalogs_cities";
2076   - $DB_AUTOQUERY = (isset($data['update_id']) && $data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
2077   - $fields_values = array('name'=>$data['name']);
2078   - $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
2079   - return mysql_insert_id();
2080   - }
2081   -
2082   - function is_city($name){
2083   - return $this->db->getOne('select id from catalogs_cities where name=?',array($name));
2084   - }
2085   -
2086   - function viewCityMod($code){
2087   - $sql = "select c.name from catalogs_keys_products_cities k left join catalogs_cities c on c.id=k.city_id where k.mod_code=? and k.count>0";
2088   - $row = $this->db->getCol($sql,"name",array($code));
2089   - if(!count($row))return "";
2090   - if(count($row) == 1 && trim($row[0])==''){ return ""; }
2091   -
2092   - foreach($row as $key=>$value){if($value=="Èíòåðíåò ìàãàçèí" or $value=="Êèåâ(Îëèìïèéñêèé)" or $value=="Ëüâîâ" or trim($value)=="")unset($row[$key]);}
2093   -$row2 = array();
2094   -foreach($row as $key=>$value) if(trim($value)!='') $row2[] = $value;
2095   -$row = $row2;
2096   -
2097   - $l = array();
2098   - for($i=0;$i<count($row);$i++){
2099   - $key = 0;
2100   - for($i2=0;$i2<count($l);$i2++)
2101   - if($l[$i2]==$row[$i]) $key=1;
2102   - if($key==0) $l[]=$row[$i];
2103   - }
2104   - if(trim($_REQUEST['test2'])!='1')
2105   - { return implode(', ',$l);}
2106   - return implode(', ',$row);
2107   - }
2108   -
2109   - function viewCitiesProductID($id){
2110   - $sql = "select city_id from catalogs_keys_products_cities where product_id=?";
2111   - $row = $this->db->getCol($sql,"city_id",array($id));
2112   - $this->tpl->assign('product_cities',$row);
2113   - }
2114 2264  
2115   - function viewCities($type = false){
2116   - $sql = "select * from catalogs_cities ";
2117   - $sql .= " Order by name Asc";
2118   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
2119   - $this->tpl->assign('cities',$row);
2120   - }
2121   -
2122   - function viewCitiesProduct($id){
2123   - $sql = "select catalogs_cities.* from catalogs_keys_products_cities left join catalogs_cities on catalogs_cities.id=catalogs_keys_products_cities.city_id Where catalogs_keys_products_cities.product_id=?";
2124   - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
2125   - $this->tpl->assign('cities',$row);
2126   - }
2127   -
2128   - function viewCity($id){
2129   - $row = $this->db->getRow("select * from catalogs_cities where id=?",array($id),DB_FETCHMODE_ASSOC);
2130   - $this->tpl->assign('city', $row);
2131   - }
2132   -
2133   - function deleteCity($id){
2134   - $this->db->query("delete from catalogs_cities where id=?",array($id));
2135   - $this->delete_keysCitiesProduct($id);
2136   - }
2137   -
2138   - function delete_keysCitiesProduct($id){
2139   - $sql = "delete from catalogs_keys_products_cities where city_id=?";
2140   - $this->db->query($sql,array($id));
2141   - }
2142   -
2143   - function SaveYears($data){
2144   - $table_name = "catalogs_years";
2145   - foreach($data['filter'] as $key=>$name){
2146   - if(strlen($name)>0){
2147   - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";}
2148   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";}
2149   - $this->db->autoExecute($table_name,array('name'=>$name,'rubric_id'=>$data['rubric_id']),$DB_AUTOQUERY,$where);
2150   - }
2151   - }
2152   - }
2153   -
2154   - function viewYearsProduct($id){
2155   - $sql = "select y.* from catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id where k.product_id=?";
2156   - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
2157   - $this->tpl->assign('product_years',$row);
2158   - }
2159   -
2160   - function viewYearsProductID($id){
2161   - $sql = "select year_id from catalogs_keys_products_years where product_id=?";
2162   - $row = $this->db->getCol($sql,"year_id",array($id));
2163   - $this->tpl->assign('product_years',$row);
2164   - }
2165   -
2166   -function viewYears ($rubric_id, $filters = null)
2167   -{
2168   - $search = array ();
2169   -
2170   - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
2171   - $filter = $this->seralizeFilter ($_GET['filter']);
2172   -
2173   - if (isset ($filter['f']) && count ($filter['f']) > 0)
  2265 + function getProductSizeCine ($id, &$products)
2174 2266 {
2175   - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  2267 + $res = $this->db->getAll ("select * from catalogs_products_cine where product_id=?", array (
  2268 + $id
  2269 + ), DB_FETCHMODE_ASSOC);
  2270 + $i = 0;
  2271 + foreach ($res as $row)
  2272 + {
  2273 + $products['size_' . $row['n']] = $row['size'];
  2274 + $products['cine_' . $row['n']] = $row['cine'];
  2275 + $products['metka_' . $row['n']] = $row['metka'];
  2276 + $products['id_cine_' . $row['n']] = $row['id'];
  2277 + $i ++;
  2278 + } // print_r($products);
2176 2279 }
2177 2280  
2178   - if (isset ($filter['s']) && count ($filter['s']) > 0)
  2281 + /*
  2282 + * function getProductCine($id,$curs = null){
  2283 + * $sql = "select cine from catalogs_products where id=?";
  2284 + * $row = $this->db->getOne($sql,array($id));
  2285 + * return $row;
  2286 + * }
  2287 + */
  2288 + function getProductCine ($id)
2179 2289 {
2180   - $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  2290 + $sql = "select IF( catalogs_products.is_cost2 <1, catalogs_products.cine, catalogs_products.cine2 ) AS cine from catalogs_modifications left join catalogs_products on catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?";
  2291 + return $this->db->getOne ($sql, array (
  2292 + $id
  2293 + ));
2181 2294 }
2182   -
2183   - if (isset ($filter['r']) && count ($filter['r']) > 0)
  2295 +
  2296 + function viewProductCine ($id)
2184 2297 {
2185   - $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  2298 + $row = $this->db->getAll ("select * from catalogs_products_cine where product_id=? and cine>0 Order By n ASC", array (
  2299 + $id
  2300 + ), DB_FETCHMODE_ASSOC);
  2301 + $this->tpl->assign ('product_cines', $row);
2186 2302 }
2187 2303  
2188   - if (isset ($_GET['new']) && $_GET['new'] > 0)
2189   - $search[] = sprintf ("p.active='%d'", $_GET['new']);
2190   -
2191   - if (isset ($_GET['top']) && $_GET['top'] > 0)
2192   - $search[] = sprintf ("p.top='%d'", $_GET['top']);
2193   -
2194   - if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
2195   - $search[] = sprintf ("p.akcii_id>'%d'", 0);
2196   -
2197   - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
2198   - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
2199   -
2200   - /**
2201   - * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
2202   - * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
2203   - * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
2204   - * }
2205   - */
2206   - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  2304 + function viewCatalogsCurs ()
2207 2305 {
2208   - $sex = $this->seralizeSex ($_GET['sex']);
2209   - $search[] = "s.sex IN (" . implode (",", $sex) . ")";
  2306 + $uah = $this->db->getOne ("select curs from catalogs_curs where type=?", array (
  2307 + 'uah'
  2308 + ));
  2309 + $this->tpl->assign ('curs_uah', $uah);
  2310 + $uah_bank = $this->db->getOne ("select curs from catalogs_curs where type=?", array (
  2311 + 'uah_bank'
  2312 + ));
  2313 + $this->tpl->assign ('curs_uah_bank', $uah_bank);
  2314 + $usd = $this->db->getOne ("select curs from catalogs_curs where type=?", array (
  2315 + 'usd'
  2316 + ));
  2317 + $this->tpl->assign ('curs_usd', $usd);
2210 2318 }
2211 2319  
2212   - if (strlen ($filters) > 0 && ! isset ($filter['f']))
  2320 + function saveCurs ($data)
2213 2321 {
2214   - $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")";
  2322 + $table_name = "catalogs_curs";
  2323 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  2324 + foreach ($data as $key => $value)
  2325 + {
  2326 + $this->db->autoExecute ($table_name, array (
  2327 + 'curs' => $value
  2328 + ), $DB_AUTOQUERY, "type='$key'");
  2329 + }
2215 2330 }
2216 2331  
2217   - $sql = "select y.* from catalogs_products p, catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id ";
2218   -
2219   - if (isset ($filter['f']) && count ($filter['f']) > 0)
2220   - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id ";
2221   -
2222   - if (isset ($filter['s']) && count ($filter['s']) > 0)
  2332 + function viewVarCurs ($curs)
2223 2333 {
2224   - $sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 ";
  2334 + $this->tpl->assign ('curs', $curs);
2225 2335 }
2226 2336  
2227   - if (isset ($filter['r']) && count ($filter['r']) > 0)
  2337 + function viewBasketProducts ($session_basket, $curs = null, $discount = 0)
2228 2338 {
2229   - $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 ";
  2339 + $products = array ();
  2340 + $i = 0;
  2341 + $cineAll = 0;
  2342 + // $sql = "select catalogs_products.* from catalogs_products where catalogs_products.id=?";
  2343 + // $sql = "select catalogs_modifications.id,IF(catalogs_products.is_cost2<1,catalogs_products.cine,catalogs_products.cine2) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?";
  2344 + $sql = "select catalogs_modifications.id,catalogs_modifications.sale,IF(catalogs_modifications.cine>0,catalogs_modifications.cine,catalogs_products.cine) as cine,catalogs_products.name,catalogs_modifications.code,catalogs_modifications.size,catalogs_modifications.color,catalogs_modifications.pic,catalogs_modifications.pic_big from catalogs_modifications Left Join catalogs_products On catalogs_products.id=catalogs_modifications.product_id where catalogs_modifications.id=?";
  2345 +
  2346 + foreach ($session_basket as $id)
  2347 + {
  2348 + $products_count = 1;
  2349 + if (count ($products))
  2350 + {
  2351 + foreach ($products as $key => $value)
  2352 + {
  2353 + if ($value['id'] == $id)
  2354 + {
  2355 + $products_count = $products[$key]['products_count'] + $products_count;
  2356 + $products[$key]['products_count'] = $products_count;
  2357 + $products[$key]['products_cine_all'] = $products[$key]['cine'] * $products_count;
  2358 + $cineAll = $cineAll + $products[$key]['cine'];
  2359 + }
  2360 + }
  2361 + }
  2362 + if ($products_count == 1)
  2363 + {
  2364 + $row = $this->db->getRow ($sql, array (
  2365 + $id
  2366 + ), DB_FETCHMODE_ASSOC);
  2367 + $products[$i] = $row;
  2368 + $products[$i]['cine'] = round ($products[$i]['cine'] - ($products[$i]['cine'] * $products[$i]['sale'] / 100));
  2369 +
  2370 + $products[$i]['products_count'] = $products_count;
  2371 + $products[$i]['products_cine_all'] = $products[$i]['cine'] * $products_count;
  2372 + $cineAll = $cineAll + $products[$i]['products_cine_all'];
  2373 + $i ++;
  2374 + }
  2375 + }
  2376 + /*
  2377 + * print"<pre>";
  2378 + * print_r($products);
  2379 + * print"</pre>";
  2380 + */
  2381 + $this->tpl->assign ('cineAll', $cineAll);
  2382 + $this->tpl->assign ('cineAll_discount', $cineAll - (($cineAll * $discount) / 100));
  2383 + $this->tpl->assign ('basket_products', $products); // print_r($products);
2230 2384 }
2231 2385  
2232   - if (strlen ($filters) > 0 && ! isset ($filter['f']))
  2386 + function BasketUpload (&$session_basket, $proructs_count)
2233 2387 {
2234   - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id ";
  2388 +
  2389 + // ========== ZLODEYEV ============
  2390 + foreach ($proructs_count as $key => $value)
  2391 + {
  2392 +
  2393 + // ==== îáíîâëÿåì ====
  2394 +
  2395 + // Âûáèðàåì èíôî î òîâàðå
  2396 + $sql4 = "SELECT * FROM catalogs_modifications as m
  2397 + LEFT JOIN catalogs_products as p
  2398 + ON p.id=m.product_id
  2399 + WHERE m.id='" . $key . "' ";
  2400 + $result4 = mysql_query ($sql4) or die (mysql_error ());
  2401 + if (mysql_affected_rows () != 0)
  2402 + {
  2403 + $item = mysql_fetch_assoc ($result4);
  2404 + }
  2405 +
  2406 + $f = 0;
  2407 +
  2408 + if (isset ($_SESSION['shopcart']))
  2409 + {
  2410 +
  2411 + foreach ($_SESSION['shopcart'] as $i => $cart)
  2412 + {
  2413 +
  2414 + if ($cart['code'] != '' && $cart['code'] == $key)
  2415 + {
  2416 + $f = 1;
  2417 + $_SESSION['shopcart'][$i]['count'] = $value;
  2418 + $_SESSION['shopcart'][$i]['total'] = $value * $_SESSION['shopcart'][$i]['price'];
  2419 + if ($_SESSION['shopcart'][$i]['total'] == 0)
  2420 + {
  2421 + unset ($_SESSION['shopcart'][$i]);
  2422 + }
  2423 + break;
  2424 + }
  2425 + }
  2426 + }
  2427 + }
  2428 +
  2429 + // ========== ZLODEYEV ============
  2430 +
  2431 + $session_basket = array ();
  2432 + foreach ($proructs_count as $key => $value)
  2433 + {
  2434 + for ($i = 0; $i < $value; $i ++)
  2435 + {
  2436 + $session_basket[] = $key;
  2437 + }
  2438 + }
2235 2439 }
2236 2440  
2237   - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  2441 + function sendOrder ($data)
2238 2442 {
2239   - $sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";
  2443 + $mail = new PHPMailer ();
  2444 + $mail->CharSet = "windows-1251";
  2445 + $mail->From = (strlen ($data['order_email']) > 0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
  2446 + $mail->FromName = $data['order_name'];
  2447 + $mail->AddAddress ("shop@eltrade.com.ua", "shop");
  2448 + $mail->Subject = "Îôîðìèòü çàêàç ñ ÝêñòðèìÑòèëü";
  2449 + $title = Mail::str_rus ("Îôîðìèòü çàêàç");
  2450 + $msg = "";
  2451 + foreach ($data['product_id'] as $key => $value)
  2452 + {
  2453 + $msg .= "ID: " . $value . " ";
  2454 + $msg .= "Íàçâàíèå: <b>" . $data['product_name'][$key] . "</b> ";
  2455 + $msg .= "Öåíà çà îäèí: " . $data['product_cine'][$key] . " ";
  2456 + $msg .= "Êîëè÷åñòâî: " . $data['product_count'][$key] . " ";
  2457 + $msg .= "Çà âåñü òîâàð: " . $data['product_cine_all'][$key] . " ";
  2458 + $msg .= "<br>";
  2459 + }
  2460 + $msg .= "Îáùàÿ ñóìà: " . $data['cineAll'];
  2461 + $msg .= "<br>";
  2462 + /*
  2463 + * $msg .= "Ñêèäêà: ".$data['discount']." %";
  2464 + * $msg .= "<br>";
  2465 + */
  2466 + $msg .= "Èòîãî ê îïëàòå: " . $data['cineAll_discount'];
  2467 + $msg .= "<br><br><br>";
  2468 + $msg .= "Êîíòàêòíûå äàííûå:";
  2469 + $msg .= "<br>";
  2470 + $msg .= "Èìÿ: " . $data['order_name'];
  2471 + $msg .= "<br>";
  2472 + $msg .= "Àäðåñ: " . $data['order_adress'];
  2473 + $msg .= "<br>";
  2474 + $msg .= "E-mail: " . $data['order_email'];
  2475 + $msg .= "<br>";
  2476 + $msg .= "Êîíòàêòíûé òåëåôîí: " . $data['order_phone'];
  2477 + // $msg .= "<br>";
  2478 + // $msg .= "Ìîáèëüíûé òåëåôîí: ".$data['order_phonemob'];
  2479 + $msg .= "<br>";
  2480 + $msg .= "Êîììåíòàðèé: " . $data['order_comment'];
  2481 + // $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "vapila@vapila.kiev.ua";
  2482 + // Mail::send("borisenko.pavel@gmail.com",$data['order_email'],$title,Mail::str_rus($msg));
  2483 + $mail->MsgHTML ($msg);
  2484 + if (! $mail->Send ())
  2485 + {
  2486 + echo "There has been a mail error sending to <br>";
  2487 + return false;
  2488 + }
  2489 + $mail->ClearAddresses ();
  2490 + $mail->ClearAttachments ();
  2491 +
  2492 + $this->sendOrderXML ($data);
2240 2493 }
2241 2494  
2242   - $sql .= "where p.id=k.product_id and p.count_modifications>0 ";
2243   -
2244   - if ($filters == null)
2245   - $sql .= " and p.rubric_id='" . $rubric_id . "' ";
2246   -
2247   - if (count ($search))
2248   - $sql .= "AND " . implode (" AND ", $search) . " ";
2249   -
2250   - $sql .= " GROUP BY k.year_id order by y.name desc";
2251   -
2252   - // print $sql;
2253   - $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
2254   - $this->tpl->assign ('years', $row);
2255   -}
2256   -
2257   - function viewYearsAll($rubric_id){
2258   - $sql = "SELECT * FROM catalogs_years WHERE rubric_id=? ORDER BY id asc ";
2259   - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC);
2260   - $this->tpl->assign('years', $row);
2261   - }
2262   -
2263   - function viewSexProduct($id){
2264   - $sql = "select * from catalogs_keys_products_sex where product_id=?";
2265   - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
2266   - $this->tpl->assign('product_sex',$row);
2267   - }
2268   -
2269   - function viewSexProductID($id){
2270   - $sql = "select sex from catalogs_keys_products_sex where product_id=?";
2271   - $row = $this->db->getCol($sql,"sex",array($id));
2272   - $this->tpl->assign('product_sex',$row);
2273   - }
2274   -
2275   -function viewSex ($rubric_id, $filters = null, $lang = 'rus')
2276   -{
2277   - $search = array ();
2278   -
2279   - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
2280   - $filter = $this->seralizeFilter ($_GET['filter']);
2281   -
2282   - if (isset ($filter['f']) && count ($filter['f']) > 0)
  2495 + function sendOrderXML ($data)
2283 2496 {
2284   - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  2497 + $data['order_phone'] = str_replace ("-", "", $data['order_phone']);
  2498 + $data['order_phone'] = str_replace (")", "", $data['order_phone']);
  2499 + $data['order_phone'] = str_replace ("(", "", $data['order_phone']);
  2500 + $data['order_phone'] = str_replace (" ", "", $data['order_phone']);
  2501 + $ffffffff = substr ($data['order_phone'], 0, 3);
  2502 + if ($ffffffff != "380")
  2503 + $data['order_phone'] = "+38" . $data['order_phone'];
  2504 +
  2505 + $mail = new PHPMailer ();
  2506 + $mail->CharSet = "windows-1251";
  2507 + $mail->From = (strlen ($data['order_email']) > 0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
  2508 + $mail->FromName = $data['order_name'];
  2509 + $mail->AddAddress ("extremshop@portal.myoffice.biz.ua", "extremshop");
  2510 + $mail->Subject = "xml çàêàç ñ ÝêñòðèìÑòèëü";
  2511 + $order_email = (strlen ($data['order_email']) > 0) ? $data['order_email'] : "shopextremstyle2@gmail.com";
  2512 + $xml = '<?xml version="1.0" encoding="windows-1251" ?>';
  2513 + $xml .= '<Order orderNum="' . mktime () . '">';
  2514 + foreach ($data['product_id'] as $key => $value)
  2515 + {
  2516 + $xml .= "<OrderItem ID='" . $data['product_code'][$key] . "'>";
  2517 + $xml .= "<ProductName>" . $data['product_name2'][$key] . "</ProductName>";
  2518 + $xml .= "<Size>" . $data['product_size'][$key] . "</Size>";
  2519 + $xml .= "<Color>" . $data['product_color'][$key] . "</Color>";
  2520 + $xml .= "<Price>" . $data['product_price'][$key] . "</Price>";
  2521 + $xml .= "<Count>" . $data['product_count'][$key] . "</Count>";
  2522 + $xml .= "</OrderItem>";
  2523 + }
  2524 + $xml .= '<CustomerInfo>';
  2525 + $xml .= '<Name>' . $data['order_name'] . '</Name>';
  2526 + $xml .= '<Mobile>' . $data['order_phone'] . '</Mobile>';
  2527 + $xml .= '<Email>' . $data['order_email'] . '</Email>';
  2528 + $xml .= '</CustomerInfo>';
  2529 + $xml .= '<DeliveryInfo>';
  2530 + $xml .= '<City>Óêðàèíà</City>';
  2531 + $xml .= '<Address>' . $data['order_adress'] . '</Address>';
  2532 + $xml .= '<DeliveryType>Äîñòàâêà</DeliveryType>';
  2533 + $xml .= '</DeliveryInfo>';
  2534 + $xml .= '<Comment>' . $data['order_comment'] . '</Comment>';
  2535 + $xml .= '</Order>';
  2536 + $tmpfname = tempnam ("tmp", "FOO");
  2537 + $handle = fopen ($tmpfname, "w");
  2538 + fwrite ($handle, $xml);
  2539 + $mail->AddAttachment ($tmpfname, 'order.xml');
  2540 + if (! $mail->Send ())
  2541 + {
  2542 + echo "There has been a mail error sending to <br>";
  2543 + return false;
  2544 + }
  2545 + fclose ($handle);
  2546 + unlink ($tmpfname);
  2547 + $mail->ClearAddresses ();
  2548 + $mail->ClearAttachments ();
  2549 + // Mail::send("borisenko.pavel@gmail.com",$order_email,"Order",Mail::str_rus($xml));
  2550 + // Mail::send("andrey.belyy@gmail.com",$order_email,"Order",Mail::str_rus($xml));
2285 2551 }
2286   - if (isset ($filter['y']) && $filter['y'] > 0)
  2552 +
  2553 + function saveOrder ($data, $userID = 0)
2287 2554 {
2288   - $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  2555 + $table_name = "catalogs_orders";
  2556 +
  2557 + if (isset ($data['update_id']) && $data['update_id'] > 0)
  2558 + {
  2559 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  2560 + $id = $data['update_id'];
  2561 + $where = sprintf ("id='%d'", $id);
  2562 + }
  2563 + else
  2564 + {
  2565 + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT;
  2566 + $id = $this->db->nextId ('mySequence_' . $table_name);
  2567 + $where = null;
  2568 + }
  2569 +
  2570 + $fields_values = array (
  2571 + 'id' => $id,
  2572 + 'user_id' => $userID,
  2573 + 'name' => $data['order_name'],
  2574 + 'email' => $data['order_email'],
  2575 + 'adress' => $data['order_adress'],
  2576 + // 'phone' => phone_mobil($data['order_phone']),
  2577 + 'phone' => $data['order_phone'],
  2578 + 'comment' => $data['order_comment'],
  2579 + 'delivery' => $data['delivery'],
  2580 + 'total' => $_SESSION['cart']['total'],
  2581 + 'status' => '1',
  2582 + 'mktime' => mktime ()
  2583 + );
  2584 + $DB_AUTOQUERY;
  2585 +
  2586 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, $where);
  2587 +
  2588 + if (isset ($data['product_id']))
  2589 + {
  2590 + $i = - 1;
  2591 + foreach ($data['product_id'] as $key => $value)
  2592 + {
  2593 + $i ++;
  2594 + $this->db->autoExecute ("catalogs_orders_products", array (
  2595 + 'order_id' => $id,
  2596 + 'product_id' => $value,
  2597 + 'product_cine_id' => $_SESSION['cart'][$i]['price'],
  2598 + 'count' => $data['product_count'][$key]
  2599 + ), DB_AUTOQUERY_INSERT);
  2600 + }
  2601 + }
2289 2602 }
2290   - if (isset ($filter['s']) && count ($filter['s']) > 0)
  2603 +
  2604 + function deleteOrder ($id)
2291 2605 {
2292   - $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  2606 + $this->db->query ("delete from catalogs_orders where id=?", array (
  2607 + $id
  2608 + ));
  2609 + $this->db->query ("delete from catalogs_orders_products where order_id=?", array (
  2610 + $id
  2611 + ));
2293 2612 }
2294   - if (isset ($filter['r']) && count ($filter['r']) > 0)
  2613 +
  2614 + function updateOrder ($data)
2295 2615 {
2296   - $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  2616 + $table_name = "catalogs_orders";
  2617 + $fields_values = array (
  2618 + 'name' => $data['order_name'],
  2619 + 'email' => $data['order_email'],
  2620 + 'adress' => $data['order_adress'],
  2621 + 'phone' => $data['order_phone'],
  2622 + 'comment' => $data['order_comment'],
  2623 + 'mktime' => mktime ()
  2624 + );
  2625 + if (isset ($data['order_active']))
  2626 + $fields_values['active'] = 1;
  2627 + else
  2628 + $fields_values['active'] = 0;
  2629 + $this->db->autoExecute ($table_name, $fields_values, DB_AUTOQUERY_UPDATE, sprintf ("id='%d'", $data['update_id']));
2297 2630 }
2298   - if (isset ($_GET['new']) && $_GET['new'] > 0)
2299   - $search[] = sprintf ("p.active='%d'", $_GET['new']);
2300   - if (isset ($_GET['top']) && $_GET['top'] > 0)
2301   - $search[] = sprintf ("p.top='%d'", $_GET['top']);
2302   - if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
2303   - $search[] = sprintf ("p.akcii_id>'%d'", 0);
2304 2631  
2305   - if (strlen ($filters) > 0 && ! isset ($filter['f']))
  2632 + function updateOrderProducts ($data)
2306 2633 {
2307   - $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")";
  2634 + foreach ($data['product_id'] as $key => $value)
  2635 + {
  2636 + if ($data['product_count'][$value] < 1)
  2637 + {
  2638 + $this->db->query ("delete from catalogs_orders_products where order_id='{$data['order_id']}' AND product_id='$value'");
  2639 + }
  2640 + else
  2641 + {
  2642 + $this->db->autoExecute ("catalogs_orders_products", array (
  2643 + 'count' => $data['product_count'][$value]
  2644 + ), DB_AUTOQUERY_UPDATE, "order_id='{$data['order_id']}' AND product_id='$value'");
  2645 + }
  2646 + }
2308 2647 }
2309 2648  
2310   - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
2311   - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
2312   -
2313   - $sql = "select s.sex from catalogs_products p LEFT JOIN catalogs_keys_products_sex s ON s.product_id=p.id ";
2314   -
2315   - if (isset ($filter['f']) && count ($filter['f']) > 0)
2316   - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id ";
2317   - if (isset ($filter['y']) && $filter['y'] > 0)
2318   - $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id ";
2319   - if (isset ($filter['s']) && count ($filter['s']) > 0)
  2649 + function viewOrder ($id)
2320 2650 {
2321   - $sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=p.id and catalogs_modifications.active=1 ";
  2651 + $row = $this->db->getRow ("select * from catalogs_orders where id=?", array (
  2652 + $id
  2653 + ), DB_FETCHMODE_ASSOC);
  2654 + $this->tpl->assign ('order', $row);
2322 2655 }
2323   - if (isset ($filter['r']) && count ($filter['r']) > 0)
  2656 +
  2657 + function viewOrderProducts ($order_id)
2324 2658 {
2325   - $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 ";
  2659 + $res = $this->db->getAll ("select p.*,op.*,pr.name,pr.pic,pr.pic_big from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id Left join catalogs_products pr On pr.id=p.product_id where order_id=?", array (
  2660 + $order_id
  2661 + ), DB_FETCHMODE_ASSOC);
  2662 + $sum = 0;
  2663 + foreach ($res as $key => $row)
  2664 + {
  2665 + $sum = $sum + ($row['cine'] * $row['count']);
  2666 + $res[$key]['cine_all'] = ($row['cine'] * $row['count']);
  2667 + }
  2668 + $discount = $this->db->getOne ('select catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id where catalogs_orders.id=?', array (
  2669 + $order_id
  2670 + ));
  2671 + $this->tpl->assign ('cine', array (
  2672 + 'sum' => $sum,
  2673 + 'discount' => $discount,
  2674 + 'sum_discount' => ($sum - (($sum * $discount) / 100))
  2675 + ));
  2676 + $this->tpl->assign ('basket_products', $res);
2326 2677 }
2327   - if (strlen ($filters) > 0 && ! isset ($filter['f']))
  2678 +
  2679 + function viewOrders ($params = array())
2328 2680 {
2329   - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id ";
  2681 + $search = array ();
  2682 + if (isset ($params['userID']) && $params['userID'] > 0)
  2683 + $search[] = sprintf ("catalogs_orders.user_id='%d'", $params['userID']);
  2684 + $sql = "select catalogs_orders.*,catalogs_users.login as user_login,catalogs_users.discount from catalogs_orders Left join catalogs_users on catalogs_users.id=user_id WHERE 1=1 ";
  2685 + if (count ($search))
  2686 + $sql .= "AND " . implode (" AND ", $search) . " ";
  2687 + $sql .= " order by mktime desc";
  2688 + $pagerOptions = Array (
  2689 + 'mode' => 'Sliding',
  2690 + 'delta' => 16,
  2691 + 'perPage' => 50,
  2692 + 'linkClass' => "link_class",
  2693 + 'curPageLinkClassName' => "link_class_active",
  2694 + 'spacesBeforeSeparator' => 1,
  2695 + 'spacesAfterSeparator' => 1
  2696 + );
  2697 + $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ());
  2698 + foreach ($res['data'] as $key => $value)
  2699 + {
  2700 + $res['data'][$key]['sum'] = $this->getOrderProductsSum ($value['id']);
  2701 + $res['data'][$key]['sum_discount'] = $res['data'][$key]['sum'] - (($res['data'][$key]['sum'] * $value['discount']) / 100);
  2702 + }
  2703 + $this->tpl->assign ('ordersData', $res);
2330 2704 }
2331 2705  
2332   - $sql .= "where p.count_modifications>0
2333   - and s.sex < 4
2334   - and p.sex > 0
2335   - ";
2336   -
2337   - if ($filters == null)
2338   - $sql .= " and p.rubric_id='" . $rubric_id . "' ";
2339   - if (count ($search))
2340   - $sql .= "AND " . implode (" AND ", $search) . " ";
2341   -
2342   - $sql .= " GROUP BY s.sex";
2343   - // print $sql;
2344   - $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
2345   - // print_r($res);
2346   - $sex = array ();
2347   - if ($lang == 'ukr')
2348   - $arr = array (
2349   - 1 => array (
2350   - 'name' => "×îëîâ³÷èé",
2351   - 'link' => 'male'
2352   - ),
2353   - 2 => array (
2354   - 'name' => "Ƴíî÷èé",
2355   - 'link' => 'female'
2356   - ),
2357   - 3 => array (
2358   - 'name' => "Äèòÿ÷èé",
2359   - 'link' => 'child'
2360   - )
2361   - )
2362   - // 4=>array('name'=>"Óí³ñåêñ",'link'=>'unisex')
2363   - ;
2364   - else
2365   - $arr = array (
2366   - 1 => array (
2367   - 'name' => "Ìóæñêîé",
2368   - 'link' => 'male'
2369   - ),
2370   - 2 => array (
2371   - 'name' => "Æåíñêèé",
2372   - 'link' => 'female'
2373   - ),
2374   - 3 => array (
2375   - 'name' => "Äåòñêèé",
2376   - 'link' => 'child'
2377   - )
2378   - )
2379   - // 4=>array('name'=>"Óíèñåêñ",'link'=>'unisex')
2380   - ;
2381   -
2382   - foreach ($res as $row)
  2706 + function getOrderProductsSum ($order_id)
2383 2707 {
2384   - $sex[] = $arr[$row['sex']];
  2708 + $res = $this->db->getAll ("select op.*,p.cine from catalogs_orders_products op Left join catalogs_products_cine p On p.id=op.product_id where op.order_id=?", array (
  2709 + $order_id
  2710 + ), DB_FETCHMODE_ASSOC);
  2711 + // print_r($res);
  2712 + $sum = 0;
  2713 + foreach ($res as $row)
  2714 + {
  2715 + $sum = $sum + ($row['cine'] * $row['count']);
  2716 + }
  2717 + return $sum;
2385 2718 }
2386 2719  
2387   - if (isset ($_GET['s']))
2388   - print_r ($sex);
  2720 + function SaveBrend ($data, $upload)
  2721 + {
  2722 + $table_name = "catalogs_brends";
  2723 + $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
  2724 + $fields_values = array (
  2725 + 'rubric_id' => $data['rubric_id'],
  2726 + 'name' => $data['brend'],
  2727 + 'email' => $data['email'],
  2728 + 'text' => $data['text_setka'],
  2729 + 'youtube' => $data['youtube'],
  2730 + 'seo' => $data['seo_text'],
  2731 + 'sort' => $data['sort'],
  2732 + 'meta_title' => $data['meta_title'],
  2733 + 'meta_description' => $data['meta_description'],
  2734 + 'meta_keywords' => $data['meta_keywords'],
  2735 + 'active' => $data['active'],
  2736 + 'about' => $data['about'],
  2737 + 'link' => $data['link'],
  2738 + 'teh' => $data['teh']
  2739 + );
  2740 +
  2741 + if (isset ($data['delete_video']) && $data['delete_video'] == 1)
  2742 + {
  2743 + $this->deleteBrendPic ($data['update_id']);
  2744 + $fields_values['pic'] = null;
  2745 + }
  2746 + if ($upload['pic']['tmp_name'])
  2747 + {
  2748 + if ($data['update_id'] > 0)
  2749 + $this->deleteBrendPic ($data['update_id'], array (
  2750 + 'pic'
  2751 + ));
  2752 + $name_pic = mktime () . "." . substr (strrchr ($_FILES['pic']['name'], "."), 1);
  2753 + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/$name_pic";
  2754 + move_uploaded_file ($_FILES["pic"]["tmp_name"], $file_name);
  2755 + chmod ($file_name, "0777");
  2756 + $fields_values['pic'] = $name_pic;
  2757 + }
  2758 +
  2759 + if (isset ($data['delete_pic_s']) && $data['delete_pic_s'] == 1)
  2760 + {
  2761 + $this->deleteBrendPic ($data['update_id'], array (
  2762 + 'pic_s'
  2763 + ));
  2764 + $fields_values['pic_s'] = null;
  2765 + }
  2766 + if ($upload['pic_s']['tmp_name'])
  2767 + {
  2768 + if ($data['update_id'] > 0)
  2769 + $this->deleteBrendPic ($data['update_id'], array (
  2770 + 'pic_s'
  2771 + ));
  2772 + $name_pic = mktime () . "." . substr (strrchr ($_FILES['pic_s']['name'], "."), 1);
  2773 + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/$name_pic";
  2774 + move_uploaded_file ($_FILES["pic_s"]["tmp_name"], $file_name);
  2775 + chmod ($file_name, "0777");
  2776 + $fields_values['pic_s'] = $name_pic;
  2777 + }
  2778 +
  2779 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}");
  2780 + }
2389 2781  
2390   - $this->tpl->assign ('sex', $sex);
2391   -}
2392   -
2393   - function getYearsName_IDs($ids){
2394   - //$sql = "select name from catalogs_years where id in (".implode(",",$ids).") order by name";
2395   - //$row = $this->db->getCol($sql,"name",array());
2396   - //return implode(", ",$row);
2397   -
2398   - $name = array();
2399   - foreach($ids as $id){
2400   - $name[] = $this->db->getOne("select name from catalogs_years where id=$id",array());
2401   - }
2402   - return implode(", ",$name);
2403   - }
2404   -
2405   - function deleteYearsRubric_id($id){
2406   - $this->db->query("delete from catalogs_years where rubric_id=?",array($id));
2407   - $this->delete_keysYearsRubric($id);
2408   - }
2409   -
2410   - function delete_keysYearsRubric($id){
2411   - $sql = "delete from catalogs_keys_products_years where rubric_id=?";
2412   - $this->db->query($sql,array($id));
2413   - }
2414   -
2415   - function deleteYear($id){
2416   - $this->db->query("delete from catalogs_years where id=?",array($id));
2417   - $this->delete_keysYearsProduct($id);
2418   - }
2419   -
2420   - function delete_keysYearsProduct($id){
2421   - $sql = "delete from catalogs_keys_products_years where year_id=?";
2422   - $this->db->query($sql,array($id));
2423   - }
2424   -
2425   - function SaveFilters($data){
2426   - $table_name = "catalogs_filters";
2427   - foreach($data['filter'] as $key=>$name){
2428   - if(strlen($name)>0){
2429   - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";}
2430   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";}
2431   - $active = (isset($data['active'][$key])) ? 1 : 0;
2432   - $fields = array('name'=>$name,"name_ukr"=>$data['filter_ukr'][$key],'prefix'=>encodestring($name),'rubric_id'=>$data['rubric_id'],"ph1"=>$data['ph1'][$key],"ph1_ukr"=>$data['ph1_ukr'][$key],"sort"=>$data['sort'][$key],"active"=>$active);
2433   - if(isset($data['cat'][$key])){$fields['cat'] = $data['cat'][$key];}
2434   - $this->db->autoExecute($table_name,$fields,$DB_AUTOQUERY,$where);
2435   - }
2436   - }
2437   - }
2438   -
2439   - function viewFilterProduct($id){
2440   - $sql = "select f.* from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where f.active='0' and k.product_id=?";
2441   - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
2442   - $this->tpl->assign('product_filters',$row);
2443   - return $row;
2444   - }
2445   -
2446   - function viewFilterProductID($id){
2447   - $sql = "select filter_id from catalogs_keys_products_filters where product_id=?";
2448   - $row = $this->db->getCol($sql,"filter_id",array($id));
2449   - $this->tpl->assign('product_filters',$row);
2450   - }
2451   -
2452   - function deleteFilter($id){
2453   - $this->db->query("delete from catalogs_filters where id=?",array($id));
2454   - $this->delete_keysFilterProduct($id);
2455   - }
2456   -
2457   - function deleteFiltersRubric_id($rubric_id){
2458   - $this->db->query("delete from catalogs_filters where rubric_id=?",array($rubric_id));
2459   - $this->delete_keysFilterRubric($rubric_id);
2460   - }
2461   -
2462   - function delete_keysFilterProduct($id){
2463   - $sql = "delete from catalogs_keys_products_filters where filter_id=?";
2464   - $this->db->query($sql,array($id));
2465   - }
2466   -
2467   - function delete_keysFilterRubric($id){
2468   - $sql = "delete from catalogs_keys_products_filters where rubric_id=?";
2469   - $this->db->query($sql,array($id));
2470   - }
2471   -
2472   - function viewFilters($rubric_id,$all = false,$lang = 'ru'){
2473   - $search = array();
2474   - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']);
2475   - if(isset($filter['g']) && count($filter['g'])>0){
2476   - $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")";
2477   - }
2478   - if(isset($filter['y']) && $filter['y']>0){
2479   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
2480   - }
2481   -
2482   - if(isset($filter['s']) && count($filter['s'])>0){
2483   - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")";
2484   - }
2485   -
2486   - if(isset($filter['r']) && count($filter['r'])>0){
2487   - $search[] = "m2.rost in (".implode(",",$filter['r']).")";
2488   - }
2489   -
2490   - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']);
2491   - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']);
2492   -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0);
2493   -
2494   - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")";
2495   - /* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
2496   - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
2497   - $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
2498   - } */
2499   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
2500   - $sex = $this->seralizeSex($_GET['sex']);
2501   - $search[] = "s.sex IN (" . implode(",",$sex) . ")";
2502   - }
2503   - $sql = "select f.*,f.name".($lang=='ukr'?'_ukr':'')." as name,f.h1".($lang=='ukr'?'_ukr':'')." as h1 from catalogs_products p, catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id ";
2504   - if(isset($filter['g']) && count($filter['g'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=k.product_id ";
2505   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id ";
2506   - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 ";}
2507   - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 ";}
2508   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";}
2509   - $sql .= "where p.id=k.product_id and p.count_modifications>0 ";
2510   - //$sql = "select * from catalogs_filters where 1=1 ";
2511   - if($all == false)$sql .= "and f.active='0' ";
2512   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
2513   - $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc";
2514   - // print $sql;
2515   - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC);
2516   - $this->tpl->assign('filters', $row);
2517   - }
2518   -
2519   - function viewFiltersAll($rubric_id){
2520   - $row = $this->db->getAll("select * from catalogs_filters where rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC);
2521   - $this->tpl->assign('filters', $row);
2522   - }
2523   -
2524   - function getFiltersName_IDs($ids,$lang){
2525   - //$sql = "select name from catalogs_filters where id in (".implode(",",$ids).")";
2526   - //$row = $this->db->getCol($sql,"name",array());
2527   - $name = array();
2528   - foreach($ids as $id){
2529   - $row = $this->db->getRow("select h1".($lang=='ukr'?'_ukr':'')." as h1 from catalogs_filters where id=$id",array(),DB_FETCHMODE_ASSOC);
2530   - $name[] = ((strlen($row['h1'])>0) ? $row['h1'] : $row['name']);
2531   - }
2532   -
2533   - return implode(", ",$name);
2534   - }
2535   -
2536   - function getFilters2Name_IDs($ids){
2537   - //$sql = "select name from catalogs_filters where id in (".implode(",",$ids).")";
2538   - //$row = $this->db->getCol($sql,"name",array());
2539   - $name = array();
2540   - foreach($ids as $id){
2541   - $row = $this->db->getRow("select h1,name from catalogs_filters2 where id=$id",array(),DB_FETCHMODE_ASSOC);
2542   - $name[] = ((strlen($row['h1'])>0) ? $row['h1'] : $row['name']);
2543   - }
2544   -//print_r($name);
2545   - return implode(", ",$name);
2546   - }
2547   -
2548   - function SaveFilters2($data){
2549   - $table_name = "catalogs_filters2";
2550   - foreach($data['filter2'] as $key=>$name){
2551   - if(strlen($name)>0){
2552   - if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";}
2553   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";}
2554   - $active = (isset($data['active'][$key])) ? 1 : 0;
2555   - $this->db->autoExecute($table_name,array('name'=>$name,"name_ukr"=>$data['filter_ukr'][$key],'prefix'=>encodestring($name),'rubric_id'=>$data['rubric_id'],"sort"=>$data['sort'][$key],"active"=>$active),$DB_AUTOQUERY,$where);
2556   - }
2557   - }
2558   - }
2559   -
2560   - function viewFilterProductID2($id){
2561   - $sql = "select filter_id from catalogs_keys_products_filters2 where product_id=?";
2562   - $row = $this->db->getCol($sql,"filter_id",array($id));
2563   - $this->tpl->assign('product_filters2',$row);
2564   - }
2565   -
2566   - function deleteFilter2($id){
2567   - $this->db->query("delete from catalogs_filters2 where id=?",array($id));
2568   - $this->delete_keysFilterProduct2($id);
2569   - }
2570   -
2571   - function delete_keysFilterProduct2($id){
2572   - $sql = "delete from catalogs_keys_products_filters2 where filter_id=?";
2573   - $this->db->query($sql,array($id));
2574   - }
2575   -
2576   - function deleteFiltersRubric_id2($rubric_id){
2577   - $this->db->query("delete from catalogs_filters2 where rubric_id=?",array($rubric_id));
2578   - $this->delete_keysFilterRubric2($rubric_id);
2579   - }
2580   -
2581   - function delete_keysFilterRubric2($id){
2582   - $sql = "delete from catalogs_keys_products_filters2 where rubric_id=?";
2583   - $this->db->query($sql,array($id));
2584   - }
2585   -
2586   - function viewFilters2($rubric_id,$lang='ru'){
2587   - $search = array();
2588   - if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']);
2589   - if(isset($filter['f']) && count($filter['f'])>0){
2590   - $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")";
2591   - }
2592   - if(isset($filter['y']) && $filter['y']>0){
2593   - $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")";
2594   - }
2595   -
2596   - if(isset($filter['s']) && count($filter['s'])>0){
2597   - $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")";
2598   - }
2599   -
2600   - if(isset($filter['r']) && count($filter['r'])>0){
2601   - $search[] = "m2.rost in (".implode(",",$filter['r']).")";
2602   - }
2603   -
2604   - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']);
2605   - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']);
2606   -if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0);
2607   -
2608   - if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")";
2609   - /* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
2610   - $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
2611   - $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
2612   - } */
2613   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
2614   - $sex = $this->seralizeSex($_GET['sex']);
2615   - $search[] = "s.sex IN (" . implode(",",$sex) . ")";
2616   - }
2617   - $sql = "select f.*,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_products p, catalogs_keys_products_filters2 k LEFT JOIN catalogs_filters2 f ON f.id=k.filter_id ";
2618   - if(isset($filter['f']) && count($filter['f'])>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id ";
2619   - if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id ";
2620   - if(isset($filter['s']) && count($filter['s'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1 ";}
2621   - if(isset($filter['r']) && count($filter['r'])>0){$sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1 ";}
2622   - if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";}
2623   - $sql .= "where p.id=k.product_id and p.count_modifications>0 ";
2624   - //$sql = "select * from catalogs_filters where 1=1 ";
2625   - if($all == false)$sql .= "and f.active='0' ";
2626   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
2627   - $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc";
2628   - //print $sql;
2629   - $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC);
2630   -
2631   - // $row = $this->db->getAll("select *,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_filters2 f where f.active='0' and f.rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC);
2632   - $this->tpl->assign('filters2', $row);
2633   - }
2634   -
2635   - function getFiltersMod_IDs($ids){
2636   - $name = array();
2637   - foreach($ids as $id){
2638   - $name[] = $this->db->getOne("select size from catalogs_modifications where size=$id",array());
2639   - }
2640   - return implode(", ",$name);
2641   - }
2642   -
2643   - function viewFiltersMod ($rubric_id)
2644   -{
2645   - $search = array ();
  2782 + function deleteBrendPic ($id, $pics = array('pic','pic_s'))
  2783 + {
  2784 + $sql = "select " . implode (',', $pics) . " from catalogs_brends where id=?";
  2785 + $row = $this->db->getRow ($sql, array (
  2786 + $id
  2787 + ), DB_FETCHMODE_ASSOC);
  2788 + if (isset ($row['pic']))
  2789 + {
  2790 + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/{$row['pic']}";
  2791 + @unlink ($file_name);
  2792 + }
  2793 + if (isset ($row['pic_s']))
  2794 + {
  2795 + $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/{$row['pic_s']}";
  2796 + @unlink ($file_name);
  2797 + }
  2798 + }
2646 2799  
2647   - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
2648   - $filter = $this->seralizeFilter ($_GET['filter']);
  2800 + function viewBrends ($type = false)
  2801 + {
  2802 + $sql = "select b.*,r.name as rubric from catalogs_brends b left join catalogs_rubrics r On r.id=b.rubric_id ";
  2803 + if ($type != false)
  2804 + $sql .= "where b.type='$type'";
  2805 + $sql .= " Order by b.name Asc";
  2806 + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  2807 + $this->tpl->assign ('brends', $row);
  2808 + }
2649 2809  
2650   - if (isset ($filter['f']) && count ($filter['f']) > 0)
  2810 + function viewBrendsGroup ($params = array())
2651 2811 {
2652   - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  2812 + $search = array ();
  2813 + if (isset ($params['filter']) && count ($params['filter']) > 0)
  2814 + $filter = $this->seralizeFilter ($params['filter']);
  2815 +
  2816 + if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f']))
  2817 + {
  2818 + $search[] = "catalogs_keys_products_filters.filter_id in (" . $params['filter_products'] . ")";
  2819 + }
  2820 +
  2821 + if (isset ($filter['y']) && $filter['y'] > 0)
  2822 + {
  2823 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  2824 + }
  2825 +
  2826 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  2827 + {
  2828 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  2829 + }
  2830 +
  2831 + if (isset ($filter['g']) && count ($filter['g']) > 0)
  2832 + {
  2833 + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")";
  2834 + }
  2835 +
  2836 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  2837 + {
  2838 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  2839 + }
  2840 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  2841 + {
  2842 + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  2843 + }
  2844 + if (isset ($_GET['new']) && $_GET['new'] > 0)
  2845 + $search[] = sprintf ("catalogs_products.active='%d'", $_GET['new']);
  2846 + if (isset ($_GET['top']) && $_GET['top'] > 0)
  2847 + $search[] = sprintf ("catalogs_products.top='%d'", $_GET['top']);
  2848 + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
  2849 + $search[] = sprintf ("catalogs_products.akcii_id>'%d'", 0);
  2850 + /*
  2851 + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
  2852 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  2853 + * $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]);
  2854 + * }
  2855 + */
  2856 +
  2857 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  2858 + {
  2859 + $sex = $this->seralizeSex ($_GET['sex']);
  2860 + $search[] = "s.sex IN (" . implode (",", $sex) . ")";
  2861 + }
  2862 +
  2863 + // ==== catalogs_products ====
  2864 +
  2865 + $sql[] = "
  2866 + SELECT *
  2867 + FROM catalogs_products
  2868 + LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  2869 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  2870 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id
  2871 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id
  2872 + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=catalogs_products.id
  2873 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id and catalogs_modifications.active=1
  2874 + LEFT JOIN catalogs_modifications m2 ON m2.product_id=catalogs_products.id and m2.active=1
  2875 + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id
  2876 + WHERE catalogs_products.count_modifications > 0
  2877 + AND catalogs_brends.id > 0
  2878 + ";
  2879 +
  2880 + if (count ($search))
  2881 + {
  2882 + $sql[] = "AND " . implode (" AND ", $search) . " ";
  2883 + }
  2884 +
  2885 + if (isset ($params['rubID']) && ! isset ($params['filter_products']))
  2886 + {
  2887 + $rubric_id = $params['rubID']; // $this->getRubricParent($params['rubID']);
  2888 + $rubric_id = ($rubric_id == 0) ? $params['rubID'] : $rubric_id;
  2889 + $sql[] = "and catalogs_products.rubric_id='" . $rubric_id . "'";
  2890 + }
  2891 +
  2892 + $sql[] = " Group by catalogs_brends.name Order by catalogs_brends.name Asc";
  2893 +
  2894 + if (count ($sql) > 4)
  2895 + {
  2896 + $row = $this->db->getAll (implode (' ', $sql), array (), DB_FETCHMODE_ASSOC);
  2897 + }
  2898 + else
  2899 + {
  2900 + // çíà÷èò ñòðàíèöà
  2901 + $row = array ();
  2902 + }
  2903 + $this->tpl->assign ('brends', $row);
2653 2904 }
2654   -
2655   - if (isset ($filter['y']) && $filter['y'] > 0)
  2905 +
  2906 + // =====
  2907 +
  2908 + function viewBrendsActive ()
2656 2909 {
2657   - $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  2910 + $sql = "select * from catalogs_brends where active=1 ";
  2911 + $sql .= " Order by name Asc";
  2912 + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  2913 + $this->tpl->assign ('brends_a', $row);
2658 2914 }
2659   -
2660   - if (isset ($filter['r']) && count ($filter['r']) > 0)
  2915 +
  2916 + function SaveCity ($data)
2661 2917 {
2662   - $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  2918 + $table_name = "catalogs_cities";
  2919 + $DB_AUTOQUERY = (isset ($data['update_id']) && $data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
  2920 + $fields_values = array (
  2921 + 'name' => $data['name']
  2922 + );
  2923 + $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id={$data['update_id']}");
  2924 + return mysql_insert_id ();
2663 2925 }
2664 2926  
2665   - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
2666   - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
2667   - /*
2668   - * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
2669   - * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
2670   - * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
2671   - * }
2672   - */
2673   - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  2927 + function is_city ($name)
2674 2928 {
2675   - $sex = $this->seralizeSex ($_GET['sex']);
2676   - $search[] = "p.sex IN (" . implode (",", $sex) . ")";
  2929 + return $this->db->getOne ('select id from catalogs_cities where name=?', array (
  2930 + $name
  2931 + ));
2677 2932 }
2678 2933  
2679   - if (isset ($_GET['new']) && $_GET['new'] > 0)
2680   - $search[] = sprintf ("p.active='%d'", $_GET['new']);
  2934 + function viewCityMod ($code)
  2935 + {
  2936 + $sql = "select c.name from catalogs_keys_products_cities k left join catalogs_cities c on c.id=k.city_id where k.mod_code=? and k.count>0";
  2937 + $row = $this->db->getCol ($sql, "name", array (
  2938 + $code
  2939 + ));
  2940 + if (! count ($row))
  2941 + return "";
  2942 + if (count ($row) == 1 && trim ($row[0]) == '')
  2943 + {
  2944 + return "";
  2945 + }
  2946 +
  2947 + foreach ($row as $key => $value)
  2948 + {
  2949 + if ($value == "Èíòåðíåò ìàãàçèí" or $value == "Êèåâ(Îëèìïèéñêèé)" or $value == "Ëüâîâ" or trim ($value) == "")
  2950 + unset ($row[$key]);
  2951 + }
  2952 + $row2 = array ();
  2953 + foreach ($row as $key => $value)
  2954 + if (trim ($value) != '')
  2955 + $row2[] = $value;
  2956 + $row = $row2;
  2957 +
  2958 + $l = array ();
  2959 + for ($i = 0; $i < count ($row); $i ++)
  2960 + {
  2961 + $key = 0;
  2962 + for ($i2 = 0; $i2 < count ($l); $i2 ++)
  2963 + if ($l[$i2] == $row[$i])
  2964 + $key = 1;
  2965 + if ($key == 0)
  2966 + $l[] = $row[$i];
  2967 + }
  2968 + if (trim ($_REQUEST['test2']) != '1')
  2969 + {
  2970 + return implode (', ', $l);
  2971 + }
  2972 + return implode (', ', $row);
  2973 + }
2681 2974  
2682   - if (isset ($_GET['top']) && $_GET['top'] > 0)
2683   - $search[] = sprintf ("p.top='%d'", $_GET['top']);
  2975 + function viewCitiesProductID ($id)
  2976 + {
  2977 + $sql = "select city_id from catalogs_keys_products_cities where product_id=?";
  2978 + $row = $this->db->getCol ($sql, "city_id", array (
  2979 + $id
  2980 + ));
  2981 + $this->tpl->assign ('product_cities', $row);
  2982 + }
2684 2983  
2685   - if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
2686   - $search[] = sprintf ("p.akcii_id>'%d'", 0);
  2984 + function viewCities ($type = false)
  2985 + {
  2986 + $sql = "select * from catalogs_cities ";
  2987 + $sql .= " Order by name Asc";
  2988 + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  2989 + $this->tpl->assign ('cities', $row);
  2990 + }
2687 2991  
2688   - $sql = "select m.* from catalogs_modifications m,catalogs_products p ";
2689   - if (isset ($filter['f']) && count ($filter['f']) > 0)
2690   - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id ";
  2992 + function viewCitiesProduct ($id)
  2993 + {
  2994 + $sql = "select catalogs_cities.* from catalogs_keys_products_cities left join catalogs_cities on catalogs_cities.id=catalogs_keys_products_cities.city_id Where catalogs_keys_products_cities.product_id=?";
  2995 + $row = $this->db->getAll ($sql, array (
  2996 + $id
  2997 + ), DB_FETCHMODE_ASSOC);
  2998 + $this->tpl->assign ('cities', $row);
  2999 + }
2691 3000  
2692   - if (isset ($filter['y']) && $filter['y'] > 0)
2693   - $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id ";
  3001 + function viewCity ($id)
  3002 + {
  3003 + $row = $this->db->getRow ("select * from catalogs_cities where id=?", array (
  3004 + $id
  3005 + ), DB_FETCHMODE_ASSOC);
  3006 + $this->tpl->assign ('city', $row);
  3007 + }
2694 3008  
2695   - if (isset ($filter['r']) && count ($filter['r']) > 0)
  3009 + function deleteCity ($id)
2696 3010 {
2697   - $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 ";
  3011 + $this->db->query ("delete from catalogs_cities where id=?", array (
  3012 + $id
  3013 + ));
  3014 + $this->delete_keysCitiesProduct ($id);
2698 3015 }
2699 3016  
2700   - $sql .= "where m.size<>'' ";
  3017 + function delete_keysCitiesProduct ($id)
  3018 + {
  3019 + $sql = "delete from catalogs_keys_products_cities where city_id=?";
  3020 + $this->db->query ($sql, array (
  3021 + $id
  3022 + ));
  3023 + }
2701 3024  
2702   - if (count ($search))
2703   - $sql .= "AND " . implode (" AND ", $search) . " ";
  3025 + function SaveYears ($data)
  3026 + {
  3027 + $table_name = "catalogs_years";
  3028 + foreach ($data['filter'] as $key => $name)
  3029 + {
  3030 + if (strlen ($name) > 0)
  3031 + {
  3032 + if (isset ($data['update_id'][$key]) && $data['update_id'][$key] > 0)
  3033 + {
  3034 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  3035 + $where = "id='{$data['update_id'][$key]}'";
  3036 + }
  3037 + else
  3038 + {
  3039 + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT;
  3040 + $where = "";
  3041 + }
  3042 + $this->db->autoExecute ($table_name, array (
  3043 + 'name' => $name,
  3044 + 'rubric_id' => $data['rubric_id']
  3045 + ), $DB_AUTOQUERY, $where);
  3046 + }
  3047 + }
  3048 + }
2704 3049  
2705   - $sql .= "
2706   - and m.product_id=p.id
2707   - and m.active=1
2708   - and p.rubric_id=?
2709   - and p.count_modifications>0
2710   - and m.size > 0
2711   - GROUP BY m.size";
2712   - $row = $this->db->getAll ($sql, array (
2713   - $rubric_id
2714   - ), DB_FETCHMODE_ASSOC);
  3050 + function viewYearsProduct ($id)
  3051 + {
  3052 + $sql = "select y.* from catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id where k.product_id=?";
  3053 + $row = $this->db->getAll ($sql, array (
  3054 + $id
  3055 + ), DB_FETCHMODE_ASSOC);
  3056 + $this->tpl->assign ('product_years', $row);
  3057 + }
2715 3058  
2716   - if ($_GET['t'] == 1)
  3059 + function viewYearsProductID ($id)
2717 3060 {
2718   - print "<pre>";
2719   - print_r ($row);
2720   - print "</pre>";
  3061 + $sql = "select year_id from catalogs_keys_products_years where product_id=?";
  3062 + $row = $this->db->getCol ($sql, "year_id", array (
  3063 + $id
  3064 + ));
  3065 + $this->tpl->assign ('product_years', $row);
2721 3066 }
2722   -
2723   - $this->tpl->assign ('size', $row);
2724   -}
2725   -
2726   -function viewFiltersRost ($rubric_id)
2727   -{
2728   - $search = array ();
2729 3067  
2730   - if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
2731   - $filter = $this->seralizeFilter ($_GET['filter']);
  3068 + function viewYears ($rubric_id, $filters = null)
  3069 + {
  3070 + $search = array ();
  3071 +
  3072 + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
  3073 + $filter = $this->seralizeFilter ($_GET['filter']);
  3074 +
  3075 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  3076 + {
  3077 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  3078 + }
  3079 +
  3080 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  3081 + {
  3082 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  3083 + }
  3084 +
  3085 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  3086 + {
  3087 + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  3088 + }
  3089 +
  3090 + if (isset ($_GET['new']) && $_GET['new'] > 0)
  3091 + $search[] = sprintf ("p.active='%d'", $_GET['new']);
  3092 +
  3093 + if (isset ($_GET['top']) && $_GET['top'] > 0)
  3094 + $search[] = sprintf ("p.top='%d'", $_GET['top']);
  3095 +
  3096 + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
  3097 + $search[] = sprintf ("p.akcii_id>'%d'", 0);
  3098 +
  3099 + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
  3100 + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
  3101 +
  3102 + /**
  3103 + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
  3104 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  3105 + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
  3106 + * }
  3107 + */
  3108 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  3109 + {
  3110 + $sex = $this->seralizeSex ($_GET['sex']);
  3111 + $search[] = "s.sex IN (" . implode (",", $sex) . ")";
  3112 + }
  3113 +
  3114 + if (strlen ($filters) > 0 && ! isset ($filter['f']))
  3115 + {
  3116 + $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")";
  3117 + }
  3118 +
  3119 + $sql = "
  3120 + SELECT y.*
  3121 + FROM catalogs_products p, catalogs_keys_products_years k
  3122 + LEFT JOIN catalogs_years y ON y.id=k.year_id
  3123 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id
  3124 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1
  3125 + LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1
  3126 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id
  3127 + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id
  3128 + WHERE p.id=k.product_id
  3129 + AND p.count_modifications>0
  3130 + ";
  3131 +
  3132 + if ($filters == null)
  3133 + $sql .= " and p.rubric_id='" . $rubric_id . "' ";
  3134 +
  3135 + if (count ($search))
  3136 + $sql .= "AND " . implode (" AND ", $search) . " ";
  3137 +
  3138 + $sql .= " GROUP BY k.year_id order by y.name desc";
  3139 +
  3140 + // print $sql;
  3141 + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  3142 + $this->tpl->assign ('years', $row);
  3143 + }
2732 3144  
2733   - if (isset ($filter['f']) && count ($filter['f']) > 0)
  3145 + function viewYearsAll ($rubric_id)
2734 3146 {
2735   - $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  3147 + $sql = "SELECT * FROM catalogs_years WHERE rubric_id=? ORDER BY id asc ";
  3148 + $row = $this->db->getAll ($sql, array (
  3149 + $rubric_id
  3150 + ), DB_FETCHMODE_ASSOC);
  3151 + $this->tpl->assign ('years', $row);
2736 3152 }
2737 3153  
2738   - if (isset ($filter['y']) && $filter['y'] > 0)
  3154 + function viewSexProduct ($id)
2739 3155 {
2740   - $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  3156 + $sql = "select * from catalogs_keys_products_sex where product_id=?";
  3157 + $row = $this->db->getAll ($sql, array (
  3158 + $id
  3159 + ), DB_FETCHMODE_ASSOC);
  3160 + $this->tpl->assign ('product_sex', $row);
2741 3161 }
2742 3162  
2743   - if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
2744   - $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
2745   - /*
2746   - * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
2747   - * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
2748   - * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
2749   - * }
2750   - */
2751   - if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  3163 + function viewSexProductID ($id)
2752 3164 {
2753   - $sex = $this->seralizeSex ($_GET['sex']);
2754   - $search[] = "p.sex IN (" . implode (",", $sex) . ")";
  3165 + $sql = "select sex from catalogs_keys_products_sex where product_id=?";
  3166 + $row = $this->db->getCol ($sql, "sex", array (
  3167 + $id
  3168 + ));
  3169 + $this->tpl->assign ('product_sex', $row);
2755 3170 }
2756 3171  
2757   - $sql = "select m.* from catalogs_modifications m, catalogs_products p ";
  3172 + function viewSex ($rubric_id, $filters = null, $lang = 'rus')
  3173 + {
  3174 + $search = array ();
  3175 +
  3176 + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
  3177 + $filter = $this->seralizeFilter ($_GET['filter']);
  3178 +
  3179 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  3180 + {
  3181 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  3182 + }
  3183 + if (isset ($filter['y']) && $filter['y'] > 0)
  3184 + {
  3185 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  3186 + }
  3187 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  3188 + {
  3189 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  3190 + }
  3191 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  3192 + {
  3193 + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  3194 + }
  3195 + if (isset ($_GET['new']) && $_GET['new'] > 0)
  3196 + $search[] = sprintf ("p.active='%d'", $_GET['new']);
  3197 + if (isset ($_GET['top']) && $_GET['top'] > 0)
  3198 + $search[] = sprintf ("p.top='%d'", $_GET['top']);
  3199 + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
  3200 + $search[] = sprintf ("p.akcii_id>'%d'", 0);
  3201 +
  3202 + if (strlen ($filters) > 0 && ! isset ($filter['f']))
  3203 + {
  3204 + $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")";
  3205 + }
  3206 +
  3207 + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
  3208 + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
  3209 +
  3210 + $sql = "
  3211 + SELECT s.sex
  3212 + FROM catalogs_products p
  3213 + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=p.id
  3214 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id
  3215 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id
  3216 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=p.id and catalogs_modifications.active=1
  3217 + LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1
  3218 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id
  3219 + WHERE p.count_modifications>0
  3220 + AND s.sex < 4
  3221 + AND p.sex > 0
  3222 + ";
  3223 +
  3224 + if ($filters == null)
  3225 + $sql .= " and p.rubric_id='" . $rubric_id . "' ";
  3226 + if (count ($search))
  3227 + $sql .= "AND " . implode (" AND ", $search) . " ";
  3228 +
  3229 + $sql .= " GROUP BY s.sex";
  3230 + // print $sql;
  3231 + $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  3232 + // print_r($res);
  3233 + $sex = array ();
  3234 + if ($lang == 'ukr')
  3235 + $arr = array (
  3236 + 1 => array (
  3237 + 'name' => "×îëîâ³÷èé",
  3238 + 'link' => 'male'
  3239 + ),
  3240 + 2 => array (
  3241 + 'name' => "Ƴíî÷èé",
  3242 + 'link' => 'female'
  3243 + ),
  3244 + 3 => array (
  3245 + 'name' => "Äèòÿ÷èé",
  3246 + 'link' => 'child'
  3247 + )
  3248 + );
  3249 + // 4=>array('name'=>"Óí³ñåêñ",'link'=>'unisex')
  3250 +
  3251 + else
  3252 + $arr = array (
  3253 + 1 => array (
  3254 + 'name' => "Ìóæñêîé",
  3255 + 'link' => 'male'
  3256 + ),
  3257 + 2 => array (
  3258 + 'name' => "Æåíñêèé",
  3259 + 'link' => 'female'
  3260 + ),
  3261 + 3 => array (
  3262 + 'name' => "Äåòñêèé",
  3263 + 'link' => 'child'
  3264 + )
  3265 + );
  3266 + // 4=>array('name'=>"Óíèñåêñ",'link'=>'unisex')
  3267 +
  3268 +
  3269 + foreach ($res as $row)
  3270 + {
  3271 + $sex[] = $arr[$row['sex']];
  3272 + }
  3273 +
  3274 + if (isset ($_GET['s']))
  3275 + print_r ($sex);
  3276 +
  3277 + $this->tpl->assign ('sex', $sex);
  3278 + }
2758 3279  
2759   - if (isset ($filter['f']) && count ($filter['f']) > 0)
2760   - $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id ";
  3280 + function getYearsName_IDs ($ids)
  3281 + {
  3282 + // $sql = "select name from catalogs_years where id in (".implode(",",$ids).") order by name";
  3283 + // $row = $this->db->getCol($sql,"name",array());
  3284 + // return implode(", ",$row);
  3285 + $name = array ();
  3286 + foreach ($ids as $id)
  3287 + {
  3288 + $name[] = $this->db->getOne ("select name from catalogs_years where id=$id", array ());
  3289 + }
  3290 + return implode (", ", $name);
  3291 + }
2761 3292  
2762   - if (isset ($filter['y']) && $filter['y'] > 0)
2763   - $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id ";
  3293 + function deleteYearsRubric_id ($id)
  3294 + {
  3295 + $this->db->query ("delete from catalogs_years where rubric_id=?", array (
  3296 + $id
  3297 + ));
  3298 + $this->delete_keysYearsRubric ($id);
  3299 + }
2764 3300  
2765   - $sql .= "where m.rost<>'' ";
  3301 + function delete_keysYearsRubric ($id)
  3302 + {
  3303 + $sql = "delete from catalogs_keys_products_years where rubric_id=?";
  3304 + $this->db->query ($sql, array (
  3305 + $id
  3306 + ));
  3307 + }
2766 3308  
2767   - if (count ($search))
  3309 + function deleteYear ($id)
2768 3310 {
2769   - $sql .= "AND " . implode (" AND ", $search) . " ";
  3311 + $this->db->query ("delete from catalogs_years where id=?", array (
  3312 + $id
  3313 + ));
  3314 + $this->delete_keysYearsProduct ($id);
2770 3315 }
2771 3316  
2772   - $sql .= "
2773   - and m.product_id=p.id
2774   - and m.active=1
2775   - and p.rubric_id=?
2776   - and p.count_modifications>0
2777   - GROUP BY m.rost";
2778   - $row = $this->db->getAll ($sql, array (
2779   - $rubric_id
2780   - ), DB_FETCHMODE_ASSOC);
  3317 + function delete_keysYearsProduct ($id)
  3318 + {
  3319 + $sql = "delete from catalogs_keys_products_years where year_id=?";
  3320 + $this->db->query ($sql, array (
  3321 + $id
  3322 + ));
  3323 + }
2781 3324  
2782   - if ($_GET['t'] == 1)
  3325 + function SaveFilters ($data)
2783 3326 {
2784   - print "<pre>";
2785   - print_r ($row);
2786   - print "</pre>";
  3327 + $table_name = "catalogs_filters";
  3328 + foreach ($data['filter'] as $key => $name)
  3329 + {
  3330 + if (strlen ($name) > 0)
  3331 + {
  3332 + if (isset ($data['update_id'][$key]) && $data['update_id'][$key] > 0)
  3333 + {
  3334 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  3335 + $where = "id='{$data['update_id'][$key]}'";
  3336 + }
  3337 + else
  3338 + {
  3339 + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT;
  3340 + $where = "";
  3341 + }
  3342 + $active = (isset ($data['active'][$key])) ? 1 : 0;
  3343 + $fields = array (
  3344 + 'name' => $name,
  3345 + "name_ukr" => $data['filter_ukr'][$key],
  3346 + 'prefix' => encodestring ($name),
  3347 + 'rubric_id' => $data['rubric_id'],
  3348 + "ph1" => $data['ph1'][$key],
  3349 + "ph1_ukr" => $data['ph1_ukr'][$key],
  3350 + "sort" => $data['sort'][$key],
  3351 + "active" => $active
  3352 + );
  3353 + if (isset ($data['cat'][$key]))
  3354 + {
  3355 + $fields['cat'] = $data['cat'][$key];
  3356 + }
  3357 + $this->db->autoExecute ($table_name, $fields, $DB_AUTOQUERY, $where);
  3358 + }
  3359 + }
2787 3360 }
2788 3361  
2789   - $this->tpl->assign ('rost', $row);
2790   -}
2791   -
2792   - function viewRostProduct($id){
2793   - $sql = "select m.* from catalogs_modifications m where m.product_id=? GROUP BY m.rost";
2794   - $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
2795   - $this->tpl->assign('product_rost',$row);
2796   - }
2797   -
2798   - function viewFiltersInProducts($filter_products,$lang='ru'){
2799   - $search = array();
2800   - if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']);
2801   - if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']);
2802   - if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0);
2803   -
2804   - $sql ="select f.*,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_products p, catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where p.id=k.product_id AND f.id IN (".$filter_products.") and f.active='0' ";
2805   - if(count($search))$sql .= "AND " . implode(" AND ",$search) . " ";
2806   - $sql .= 'GROUP BY k.filter_id order by f.sort';
2807   - //print $sql;
2808   - $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
2809   - $this->tpl->assign('filters', $row);
2810   - }
2811   -
2812   - function viewBrend($id){
2813   - $row = $this->db->getRow("select * from catalogs_brends where id=?",array($id),DB_FETCHMODE_ASSOC);
2814   - $this->tpl->assign('brend', $row);
2815   - }
2816   -
2817   - function viewBrendName($name){
2818   - $name = iconv("utf-8", "windows-1251", $name);
2819   - $sql = "select * from catalogs_brends where name=? limit 1";
2820   - $row = $this->db->getRow($sql,array($name),DB_FETCHMODE_ASSOC);
2821   - $this->tpl->assign('brend_seo', $row);
2822   - return $row;
2823   - }
2824   -
2825   - function getBrendIDs_name($name){
2826   - $n = array();
2827   - $name_arr = explode(";",$name);
2828   - foreach($name_arr as $row){
2829   - $n[] = "'".$row."'";
2830   - }
2831   - //$name = iconv("utf-8", "windows-1251", $name);
2832   - $sql = "select id from catalogs_brends where name in (" . implode(",",$n) . ")";
2833   - //print $sql;
2834   - return $this->db->getCol($sql,"id",array());
2835   - }
2836   -
2837   - function viewBrendRubrics($name,$lang = 'ru'){
2838   - $name = iconv("utf-8", "windows-1251", $name);
2839   - $sql = "select r.name".(($lang=='ukr')?'_ukr':'')." as name,r.parent_id,r.translit,count(p.id) as c from catalogs_brends b
2840   - Left Join catalogs_rubrics r On r.id=b.rubric_id
2841   - Left Join catalogs_products p On p.brend_id=b.id AND p.count_modifications>0
2842   - where b.name=? and r.name<>'' Group by p.brend_id";
2843   - $res = $this->db->getAll($sql,array($name),DB_FETCHMODE_ASSOC);
2844   - $rubrics = array();
2845   - foreach($res as $row){
2846   - if($row['c']>0){
2847   - $rubrics[$this->getRubricName($row['parent_id'],$lang)][] = $row;
2848   - }
2849   - }
2850   - // print"<pre>";
2851   - // print_r($rubrics);
2852   - // print"</pre>";
2853   - $this->tpl->assign('brend_rubrics',$rubrics);
2854   - }
2855   -
2856   - function deleteBrend($id){
2857   - $this->db->query("delete from catalogs_brends where id=?",array($id));
2858   - }
2859   -
2860   - function viewAkciiProductID($id){
2861   - $sql = "select rubric_id from catalogs_keys_products_akcii where product_id=?";
2862   - $row = $this->db->getCol($sql,"rubric_id",array($id));
2863   - $this->tpl->assign('product_akcii',$row);
2864   - }
2865   -
2866   - function import_saveRubric($name,$parent_id){
2867   - $id = $this->db->getOne("select id from catalogs_rubrics where name=? and parent_id=?",array($name,$parent_id));
2868   - if( !$id ){
2869   - $this->db->autoExecute("catalogs_rubrics",array('name'=>$name,'translit'=>translit($name),'parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1)),DB_AUTOQUERY_INSERT);
2870   - return mysql_insert_id();
2871   - }
2872   - return $id;
2873   - }
2874   -
2875   - function import_saveBrend($name,$rubric_id){
2876   - //getRubricParent();
2877   - $id = $this->db->getOne("select id from catalogs_brends where name=? and rubric_id=?",array($name,$rubric_id));
2878   - if( !$id ){
2879   - $this->db->autoExecute("catalogs_brends",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT);
2880   - return mysql_insert_id();
2881   - }
2882   - return $id;
2883   - }
2884   -
2885   - function import_saveFilters2($rubric_id,$str){
2886   - if(!$str)return array();
2887   - $row_str = explode(",",trim($str));
2888   - $arr_id = array();
2889   - foreach($row_str as $str){
2890   - $name = trim($str);
2891   - $name_r = explode('=',$name);$name = $name_r[0]; $active = (isset($name_r[1])) ? 1 : 0;
2892   - $id = $this->db->getOne("select id from catalogs_filters2 where rubric_id=? and name=?",array($rubric_id,$name));
2893   - if( !$id ){
2894   - $this->db->autoExecute("catalogs_filters2",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_INSERT);
2895   - $id = mysql_insert_id();
2896   - }else{ $this->db->autoExecute("catalogs_filters2",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_UPDATE,"id=$id");}
2897   - $arr_id[] = $id;
2898   - }
2899   - return $arr_id;
2900   - }
2901   -
2902   - function import_saveFilters($rubric_id,$str){
2903   - if(!$str)return array();
2904   - $row_str = explode(",",trim($str));
2905   - $arr_id = array();
2906   - foreach($row_str as $str){
2907   - $name = trim($str);
2908   - $name_r = explode('=',$name);$name = $name_r[0]; $active = (isset($name_r[1])) ? 1 : 0;
2909   - $id = $this->db->getOne("select id from catalogs_filters where rubric_id=? and name=?",array($rubric_id,$name));
2910   - if( !$id ){
2911   - $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_INSERT);
2912   - $id = mysql_insert_id();
2913   - }else{ $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_UPDATE,"id=$id");}
2914   - $arr_id[] = $id;
2915   - }
2916   - return $arr_id;
2917   - }
2918   -
2919   - function import_saveYear($rubric_id,$name){
2920   - if(!$name)return false;
2921   - $id = $this->db->getOne("select id from catalogs_years where rubric_id=? and name=?",array($rubric_id,$name));
2922   - if( !$id ){
2923   - $this->db->autoExecute("catalogs_years",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT);
2924   - $id = mysql_insert_id();
2925   - }
2926   - return ($id)?array($id):array();
2927   - }
2928   -
2929   - function import_updateProductCine($product_id,$row,$line='',$mktime = 0){ // print"<pre>";print_r($row);print"</pre>";
2930   -
2931   - IF($product_id>0){
2932   - IF($row[3]>0){
2933   - if($row[2]<1){$cine=$row[1];$cine_last=0;}
2934   - else {$cine=$row[2];$cine_last=(($row[1]>0)?$row[1]:$row[2]);}
2935   - $this->db->autoExecute("catalogs_products",array('cine'=>$cine,'cine_last'=>$cine_last),DB_AUTOQUERY_UPDATE,"id='$product_id'");
2936   - }
2937   -
2938   -
2939   - $city = trim($row[4]);
2940   - if(!$city)$city = "Èíòåðíåò ìàãàçèí";
2941   - //echo "OK(1) - <br/>";
2942   - if(strlen($city)>0){ //print $city;
2943   - $city_id = $this->is_city($city);
2944   - //echo "OK(2) - <br/>";
2945   - if(!$city_id){$city_id = $this->SaveCity(array('name'=>$city));}
2946   - $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime));
2947   -
2948   - if($row[3]==0){
2949   -
2950   - }
2951   - else{
2952   - // $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime));
2953   - //echo "OK(3) - <br/>";
2954   - if($this->getKeysModificationCity($row[0], $city_id)){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "mod_code='".$row[0]."' and city_id='".$city_id."'";}
2955   - else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = null;}
2956   -
2957   - // if($this->getKeysModificationCityMktime_count($row[0], $city_id, $mktime)>0){$row[3]=1;}
2958   - //print $city_id .'--'.$where."<br>";
2959   - $fields = array('count'=>$row[3],'product_id'=>$product_id,'mod_code'=>$row[0],'city_id'=>$city_id,'mktime'=>$mktime);
2960   - $s = $this->db->autoExecute("catalogs_keys_products_cities",$fields,$DB_AUTOQUERY,$where);
2961   - if (PEAR::isError($s)) die($s->getMessage());
2962   - }}
2963   - //echo "OK(4) - <br/>";
2964   - $active = $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and count>0",array($row[0]));
2965   - //$active = true;
2966   - if($this->db->getOne("select count(*) from catalogs_modifications where code=?",array($row[0]))>0){
2967   - $this->db->autoExecute("catalogs_modifications",array('active'=>$active,'is_update'=>1,'prefix'=>$row[4]),DB_AUTOQUERY_UPDATE,"code='".$row[0]."'");
2968   - //echo "OK(5) - <br/>";
2969   - }else{
2970   - //echo "OK(6) - <br/>";
2971   - $this->saveCsvMod($line);
2972   - }
2973   - }
2974   - }
2975   -
2976   - function saveCsvMod($line){
2977   - echo "OK1 - <br/>";
2978   - $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv";
2979   - $handle = @fopen($tmpfname, "a");
2980   -// $row = explode(";",$line);
2981   -// File_FGetCSV::fputcsv($handle,$row,';');
2982   - echo "OK2 - <br/>";
2983   - echo $line;
2984   - echo "OK3 - <br/>";
2985   - fwrite($handle,$line);
2986   - fclose($handle);
2987   - }
2988   -
2989   - function getKeysModificationCity($code, $city_id){
2990   - return $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id));
2991   - }
2992   -
2993   - function getKeysModificationCity_count($code, $city_id){
2994   - return $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id));
2995   - }
2996   -
2997   - function getKeysModificationCityMktime_count($code, $city_id, $mktime){
2998   - $r = $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=? and mktime=?", array($code, $city_id, $mktime));
2999   - return $r;
3000   - }
3001   -
3002   - function getProductID($name){
3003   - $id = $this->db->getOne("select id from catalogs_products where name=?",array($name));
3004   - return $id;
3005   - }
3006   -
3007   -function getProductID_R ($name, $rubric_parent_id)
3008   -{
3009   - $id = $this->db->getOne ("select id from catalogs_products where name=? and rubric_id=?", array (
3010   - $name,
3011   - $rubric_parent_id
3012   - ));
3013   -
3014   - return $id;
3015   -}
3016   -
3017   - function getModificationActive($code){
3018   - return $this->db->getOne("select active from catalogs_modifications where code=?",array($code));
3019   - }
3020   -
3021   -function updateProduct_countModification ($product_id, $count)
3022   -{
3023   - $this->db->autoExecute ("catalogs_products", array (
  3362 + function viewFilterProduct ($id)
  3363 + {
  3364 + $sql = "select f.* from catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where f.active='0' and k.product_id=?";
  3365 + $row = $this->db->getAll ($sql, array (
  3366 + $id
  3367 + ), DB_FETCHMODE_ASSOC);
  3368 + $this->tpl->assign ('product_filters', $row);
  3369 + return $row;
  3370 + }
  3371 +
  3372 + function viewFilterProductID ($id)
  3373 + {
  3374 + $sql = "select filter_id from catalogs_keys_products_filters where product_id=?";
  3375 + $row = $this->db->getCol ($sql, "filter_id", array (
  3376 + $id
  3377 + ));
  3378 + $this->tpl->assign ('product_filters', $row);
  3379 + }
  3380 +
  3381 + function deleteFilter ($id)
  3382 + {
  3383 + $this->db->query ("delete from catalogs_filters where id=?", array (
  3384 + $id
  3385 + ));
  3386 + $this->delete_keysFilterProduct ($id);
  3387 + }
  3388 +
  3389 + function deleteFiltersRubric_id ($rubric_id)
  3390 + {
  3391 + $this->db->query ("delete from catalogs_filters where rubric_id=?", array (
  3392 + $rubric_id
  3393 + ));
  3394 + $this->delete_keysFilterRubric ($rubric_id);
  3395 + }
  3396 +
  3397 + function delete_keysFilterProduct ($id)
  3398 + {
  3399 + $sql = "delete from catalogs_keys_products_filters where filter_id=?";
  3400 + $this->db->query ($sql, array (
  3401 + $id
  3402 + ));
  3403 + }
  3404 +
  3405 + function delete_keysFilterRubric ($id)
  3406 + {
  3407 + $sql = "delete from catalogs_keys_products_filters where rubric_id=?";
  3408 + $this->db->query ($sql, array (
  3409 + $id
  3410 + ));
  3411 + }
  3412 +
  3413 + function viewFilters ($rubric_id, $all = false, $lang = 'ru')
  3414 + {
  3415 + $search = array ();
  3416 + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
  3417 + $filter = $this->seralizeFilter ($_GET['filter']);
  3418 + if (isset ($filter['g']) && count ($filter['g']) > 0)
  3419 + {
  3420 + $search[] = "catalogs_keys_products_filters2.filter_id in (" . implode (",", $filter['g']) . ")";
  3421 + }
  3422 + if (isset ($filter['y']) && $filter['y'] > 0)
  3423 + {
  3424 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  3425 + }
  3426 +
  3427 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  3428 + {
  3429 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  3430 + }
  3431 +
  3432 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  3433 + {
  3434 + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  3435 + }
  3436 +
  3437 + if (isset ($_GET['new']) && $_GET['new'] > 0)
  3438 + $search[] = sprintf ("p.active='%d'", $_GET['new']);
  3439 + if (isset ($_GET['top']) && $_GET['top'] > 0)
  3440 + $search[] = sprintf ("p.top='%d'", $_GET['top']);
  3441 + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
  3442 + $search[] = sprintf ("p.akcii_id>'%d'", 0);
  3443 +
  3444 + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
  3445 + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
  3446 + /*
  3447 + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
  3448 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  3449 + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
  3450 + * }
  3451 + */
  3452 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  3453 + {
  3454 + $sex = $this->seralizeSex ($_GET['sex']);
  3455 + $search[] = "s.sex IN (" . implode (",", $sex) . ")";
  3456 + }
  3457 + $sql = "
  3458 + SELECT f.*,f.name" . ($lang == 'ukr' ? '_ukr' : '') . " as name,f.h1" . ($lang == 'ukr' ? '_ukr' : '') . " as h1
  3459 + FROM catalogs_products p, catalogs_keys_products_filters k
  3460 + LEFT JOIN catalogs_filters f ON f.id=k.filter_id
  3461 + LEFT JOIN catalogs_keys_products_filters2 ON catalogs_keys_products_filters2.product_id=k.product_id
  3462 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id
  3463 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1
  3464 + LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1
  3465 + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id
  3466 + WHERE p.id=k.product_id
  3467 + AND p.count_modifications>0
  3468 + ";
  3469 + // $sql = "select * from catalogs_filters where 1=1 ";
  3470 + if ($all == false)
  3471 + $sql .= "and f.active='0' ";
  3472 + if (count ($search))
  3473 + $sql .= "AND " . implode (" AND ", $search) . " ";
  3474 + $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc";
  3475 + // print $sql;
  3476 + $row = $this->db->getAll ($sql, array (
  3477 + $rubric_id
  3478 + ), DB_FETCHMODE_ASSOC);
  3479 + $this->tpl->assign ('filters', $row);
  3480 + }
  3481 +
  3482 + function viewFiltersAll ($rubric_id)
  3483 + {
  3484 + $row = $this->db->getAll ("select * from catalogs_filters where rubric_id=? order by sort", array (
  3485 + $rubric_id
  3486 + ), DB_FETCHMODE_ASSOC);
  3487 + $this->tpl->assign ('filters', $row);
  3488 + }
  3489 +
  3490 + function getFiltersName_IDs ($ids, $lang)
  3491 + {
  3492 + // $sql = "select name from catalogs_filters where id in (".implode(",",$ids).")";
  3493 + // $row = $this->db->getCol($sql,"name",array());
  3494 + $name = array ();
  3495 + foreach ($ids as $id)
  3496 + {
  3497 + $row = $this->db->getRow ("select h1" . ($lang == 'ukr' ? '_ukr' : '') . " as h1 from catalogs_filters where id=$id", array (), DB_FETCHMODE_ASSOC);
  3498 + $name[] = ((strlen ($row['h1']) > 0) ? $row['h1'] : $row['name']);
  3499 + }
  3500 +
  3501 + return implode (", ", $name);
  3502 + }
  3503 +
  3504 + function getFilters2Name_IDs ($ids)
  3505 + {
  3506 + // $sql = "select name from catalogs_filters where id in (".implode(",",$ids).")";
  3507 + // $row = $this->db->getCol($sql,"name",array());
  3508 + $name = array ();
  3509 + foreach ($ids as $id)
  3510 + {
  3511 + $row = $this->db->getRow ("select h1,name from catalogs_filters2 where id=$id", array (), DB_FETCHMODE_ASSOC);
  3512 + $name[] = ((strlen ($row['h1']) > 0) ? $row['h1'] : $row['name']);
  3513 + }
  3514 + // print_r($name);
  3515 + return implode (", ", $name);
  3516 + }
  3517 +
  3518 + function SaveFilters2 ($data)
  3519 + {
  3520 + $table_name = "catalogs_filters2";
  3521 + foreach ($data['filter2'] as $key => $name)
  3522 + {
  3523 + if (strlen ($name) > 0)
  3524 + {
  3525 + if (isset ($data['update_id'][$key]) && $data['update_id'][$key] > 0)
  3526 + {
  3527 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  3528 + $where = "id='{$data['update_id'][$key]}'";
  3529 + }
  3530 + else
  3531 + {
  3532 + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT;
  3533 + $where = "";
  3534 + }
  3535 + $active = (isset ($data['active'][$key])) ? 1 : 0;
  3536 + $this->db->autoExecute ($table_name, array (
  3537 + 'name' => $name,
  3538 + "name_ukr" => $data['filter_ukr'][$key],
  3539 + 'prefix' => encodestring ($name),
  3540 + 'rubric_id' => $data['rubric_id'],
  3541 + "sort" => $data['sort'][$key],
  3542 + "active" => $active
  3543 + ), $DB_AUTOQUERY, $where);
  3544 + }
  3545 + }
  3546 + }
  3547 +
  3548 + function viewFilterProductID2 ($id)
  3549 + {
  3550 + $sql = "select filter_id from catalogs_keys_products_filters2 where product_id=?";
  3551 + $row = $this->db->getCol ($sql, "filter_id", array (
  3552 + $id
  3553 + ));
  3554 + $this->tpl->assign ('product_filters2', $row);
  3555 + }
  3556 +
  3557 + function deleteFilter2 ($id)
  3558 + {
  3559 + $this->db->query ("delete from catalogs_filters2 where id=?", array (
  3560 + $id
  3561 + ));
  3562 + $this->delete_keysFilterProduct2 ($id);
  3563 + }
  3564 +
  3565 + function delete_keysFilterProduct2 ($id)
  3566 + {
  3567 + $sql = "delete from catalogs_keys_products_filters2 where filter_id=?";
  3568 + $this->db->query ($sql, array (
  3569 + $id
  3570 + ));
  3571 + }
  3572 +
  3573 + function deleteFiltersRubric_id2 ($rubric_id)
  3574 + {
  3575 + $this->db->query ("delete from catalogs_filters2 where rubric_id=?", array (
  3576 + $rubric_id
  3577 + ));
  3578 + $this->delete_keysFilterRubric2 ($rubric_id);
  3579 + }
  3580 +
  3581 + function delete_keysFilterRubric2 ($id)
  3582 + {
  3583 + $sql = "delete from catalogs_keys_products_filters2 where rubric_id=?";
  3584 + $this->db->query ($sql, array (
  3585 + $id
  3586 + ));
  3587 + }
  3588 +
  3589 + function viewFilters2 ($rubric_id, $lang = 'ru')
  3590 + {
  3591 + $search = array ();
  3592 + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
  3593 + $filter = $this->seralizeFilter ($_GET['filter']);
  3594 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  3595 + {
  3596 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  3597 + }
  3598 + if (isset ($filter['y']) && $filter['y'] > 0)
  3599 + {
  3600 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  3601 + }
  3602 +
  3603 + if (isset ($filter['s']) && count ($filter['s']) > 0)
  3604 + {
  3605 + $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")";
  3606 + }
  3607 +
  3608 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  3609 + {
  3610 + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  3611 + }
  3612 +
  3613 + if (isset ($_GET['new']) && $_GET['new'] > 0)
  3614 + $search[] = sprintf ("p.active='%d'", $_GET['new']);
  3615 + if (isset ($_GET['top']) && $_GET['top'] > 0)
  3616 + $search[] = sprintf ("p.top='%d'", $_GET['top']);
  3617 + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
  3618 + $search[] = sprintf ("p.akcii_id>'%d'", 0);
  3619 +
  3620 + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
  3621 + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
  3622 + /*
  3623 + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
  3624 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  3625 + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
  3626 + * }
  3627 + */
  3628 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  3629 + {
  3630 + $sex = $this->seralizeSex ($_GET['sex']);
  3631 + $search[] = "s.sex IN (" . implode (",", $sex) . ")";
  3632 + }
  3633 + $sql = "
  3634 + SELECT f.*,f.name" . ($lang == 'ukr' ? '_ukr' : '') . " as name
  3635 + FROM catalogs_products p, catalogs_keys_products_filters2 k
  3636 + LEFT JOIN catalogs_filters2 f ON f.id=k.filter_id
  3637 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id
  3638 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id
  3639 + LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=k.product_id and catalogs_modifications.active=1
  3640 + LEFT JOIN catalogs_modifications m2 ON m2.product_id=k.product_id and m2.active=1
  3641 + LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id
  3642 + WHERE p.id=k.product_id
  3643 + AND p.count_modifications>0
  3644 + ";
  3645 + // $sql = "select * from catalogs_filters where 1=1 ";
  3646 + if ($all == false)
  3647 + $sql .= "and f.active='0' ";
  3648 + if (count ($search))
  3649 + $sql .= "AND " . implode (" AND ", $search) . " ";
  3650 + $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc";
  3651 + // print $sql;
  3652 + $row = $this->db->getAll ($sql, array (
  3653 + $rubric_id
  3654 + ), DB_FETCHMODE_ASSOC);
  3655 +
  3656 + // $row = $this->db->getAll("select *,f.name".($lang=='ukr'?'_ukr':'')." as name from catalogs_filters2 f where f.active='0' and f.rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC);
  3657 + $this->tpl->assign ('filters2', $row);
  3658 + }
  3659 +
  3660 + function getFiltersMod_IDs ($ids)
  3661 + {
  3662 + $name = array ();
  3663 + foreach ($ids as $id)
  3664 + {
  3665 + $name[] = $this->db->getOne ("select size from catalogs_modifications where size=$id", array ());
  3666 + }
  3667 + return implode (", ", $name);
  3668 + }
  3669 +
  3670 + function viewFiltersMod ($rubric_id)
  3671 + {
  3672 + $search = array ();
  3673 +
  3674 + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
  3675 + $filter = $this->seralizeFilter ($_GET['filter']);
  3676 +
  3677 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  3678 + {
  3679 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  3680 + }
  3681 +
  3682 + if (isset ($filter['y']) && $filter['y'] > 0)
  3683 + {
  3684 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  3685 + }
  3686 +
  3687 + if (isset ($filter['r']) && count ($filter['r']) > 0)
  3688 + {
  3689 + $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")";
  3690 + }
  3691 +
  3692 + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
  3693 + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
  3694 + /*
  3695 + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
  3696 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  3697 + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
  3698 + * }
  3699 + */
  3700 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  3701 + {
  3702 + $sex = $this->seralizeSex ($_GET['sex']);
  3703 + $search[] = "p.sex IN (" . implode (",", $sex) . ")";
  3704 + }
  3705 +
  3706 + if (isset ($_GET['new']) && $_GET['new'] > 0)
  3707 + $search[] = sprintf ("p.active='%d'", $_GET['new']);
  3708 +
  3709 + if (isset ($_GET['top']) && $_GET['top'] > 0)
  3710 + $search[] = sprintf ("p.top='%d'", $_GET['top']);
  3711 +
  3712 + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
  3713 + $search[] = sprintf ("p.akcii_id>'%d'", 0);
  3714 +
  3715 + $sql = "
  3716 + SELECT m.*
  3717 + FROM catalogs_modifications m,catalogs_products p
  3718 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id
  3719 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id
  3720 + LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1
  3721 + WHERE m.size<>''
  3722 + ";
  3723 +
  3724 + if (count ($search))
  3725 + $sql .= "AND " . implode (" AND ", $search) . " ";
  3726 +
  3727 + $sql .= "
  3728 + and m.product_id=p.id
  3729 + and m.active=1
  3730 + and p.rubric_id=?
  3731 + and p.count_modifications>0
  3732 + and m.size > 0
  3733 + GROUP BY m.size";
  3734 + $row = $this->db->getAll ($sql, array (
  3735 + $rubric_id
  3736 + ), DB_FETCHMODE_ASSOC);
  3737 +
  3738 + if ($_GET['t'] == 1)
  3739 + {
  3740 + print "<pre>";
  3741 + print_r ($row);
  3742 + print "</pre>";
  3743 + }
  3744 +
  3745 + $this->tpl->assign ('size', $row);
  3746 + }
  3747 +
  3748 + function viewFiltersRost ($rubric_id)
  3749 + {
  3750 + $search = array ();
  3751 +
  3752 + if (isset ($_GET['filter']) && count ($_GET['filter']) > 0)
  3753 + $filter = $this->seralizeFilter ($_GET['filter']);
  3754 +
  3755 + if (isset ($filter['f']) && count ($filter['f']) > 0)
  3756 + {
  3757 + $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")";
  3758 + }
  3759 +
  3760 + if (isset ($filter['y']) && $filter['y'] > 0)
  3761 + {
  3762 + $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")";
  3763 + }
  3764 +
  3765 + if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0)
  3766 + $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")";
  3767 + /*
  3768 + * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){
  3769 + * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4);
  3770 + * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]);
  3771 + * }
  3772 + */
  3773 + if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0)
  3774 + {
  3775 + $sex = $this->seralizeSex ($_GET['sex']);
  3776 + $search[] = "p.sex IN (" . implode (",", $sex) . ")";
  3777 + }
  3778 +
  3779 + $sql = "
  3780 + SELECT m.*
  3781 + FROM catalogs_modifications m, catalogs_products p
  3782 + LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id
  3783 + LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id
  3784 + WHERE m.rost > 0";
  3785 +
  3786 + if (count ($search))
  3787 + {
  3788 + $sql .= "AND " . implode (" AND ", $search) . " ";
  3789 + }
  3790 +
  3791 + $sql .= "
  3792 + AND m.product_id=p.id
  3793 + AND m.active=1
  3794 + AND p.rubric_id=?
  3795 + AND p.count_modifications>0
  3796 + GROUP BY m.rost
  3797 + ";
  3798 +
  3799 + $row = $this->db->getAll ($sql, array (
  3800 + $rubric_id
  3801 + ), DB_FETCHMODE_ASSOC);
  3802 +
  3803 + if ($_GET['t'] == 1)
  3804 + {
  3805 + print "<pre>";
  3806 + print_r ($row);
  3807 + print "</pre>";
  3808 + }
  3809 +
  3810 + $this->tpl->assign ('rost', $row);
  3811 + }
  3812 +
  3813 + function viewRostProduct ($id)
  3814 + {
  3815 + $sql = "select m.* from catalogs_modifications m where m.product_id=? GROUP BY m.rost";
  3816 + $row = $this->db->getAll ($sql, array (
  3817 + $id
  3818 + ), DB_FETCHMODE_ASSOC);
  3819 + $this->tpl->assign ('product_rost', $row);
  3820 + }
  3821 +
  3822 + function viewFiltersInProducts ($filter_products, $lang = 'ru')
  3823 + {
  3824 + $search = array ();
  3825 + if (isset ($_GET['new']) && $_GET['new'] > 0)
  3826 + $search[] = sprintf ("p.active='%d'", $_GET['new']);
  3827 + if (isset ($_GET['top']) && $_GET['top'] > 0)
  3828 + $search[] = sprintf ("p.top='%d'", $_GET['top']);
  3829 + if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0)
  3830 + $search[] = sprintf ("p.akcii_id>'%d'", 0);
  3831 +
  3832 + $sql = "select f.*,f.name" . ($lang == 'ukr' ? '_ukr' : '') . " as name from catalogs_products p, catalogs_keys_products_filters k LEFT JOIN catalogs_filters f ON f.id=k.filter_id where p.id=k.product_id AND f.id IN (" . $filter_products . ") and f.active='0' ";
  3833 + if (count ($search))
  3834 + $sql .= "AND " . implode (" AND ", $search) . " ";
  3835 + $sql .= 'GROUP BY k.filter_id order by f.sort';
  3836 + // print $sql;
  3837 + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  3838 + $this->tpl->assign ('filters', $row);
  3839 + }
  3840 +
  3841 + function viewBrend ($id)
  3842 + {
  3843 + $row = $this->db->getRow ("select * from catalogs_brends where id=?", array (
  3844 + $id
  3845 + ), DB_FETCHMODE_ASSOC);
  3846 + $this->tpl->assign ('brend', $row);
  3847 + }
  3848 +
  3849 + function viewBrendName ($name)
  3850 + {
  3851 + $name = iconv ("utf-8", "windows-1251", $name);
  3852 + $sql = "select * from catalogs_brends where name=? limit 1";
  3853 + $row = $this->db->getRow ($sql, array (
  3854 + $name
  3855 + ), DB_FETCHMODE_ASSOC);
  3856 + $this->tpl->assign ('brend_seo', $row);
  3857 + return $row;
  3858 + }
  3859 +
  3860 + function getBrendIDs_name ($name)
  3861 + {
  3862 + $n = array ();
  3863 + $name_arr = explode (";", $name);
  3864 + foreach ($name_arr as $row)
  3865 + {
  3866 + $n[] = "'" . $row . "'";
  3867 + }
  3868 + // $name = iconv("utf-8", "windows-1251", $name);
  3869 + $sql = "select id from catalogs_brends where name in (" . implode (",", $n) . ")";
  3870 + // print $sql;
  3871 + return $this->db->getCol ($sql, "id", array ());
  3872 + }
  3873 +
  3874 + function viewBrendRubrics ($name, $lang = 'ru')
  3875 + {
  3876 + $name = iconv ("utf-8", "windows-1251", $name);
  3877 + $sql = "
  3878 + SELECT r.name" . (($lang == 'ukr') ? '_ukr' : '') . " as name,r.parent_id,r.translit,count(p.id) as c
  3879 + FROM catalogs_brends b
  3880 + LEFT JOIN catalogs_rubrics r On r.id=b.rubric_id
  3881 + LEFT JOIN catalogs_products p On p.brend_id=b.id AND p.count_modifications>0
  3882 + WHERE b.name=?
  3883 + AND r.name<>''
  3884 + GROUP BY p.brend_id
  3885 + ";
  3886 + $res = $this->db->getAll ($sql, array (
  3887 + $name
  3888 + ), DB_FETCHMODE_ASSOC);
  3889 + $rubrics = array ();
  3890 + foreach ($res as $row)
  3891 + {
  3892 + if ($row['c'] > 0)
  3893 + {
  3894 + $rubrics[$this->getRubricName ($row['parent_id'], $lang)][] = $row;
  3895 + }
  3896 + }
  3897 + // print"<pre>";
  3898 + // print_r($rubrics);
  3899 + // print"</pre>";
  3900 + $this->tpl->assign ('brend_rubrics', $rubrics);
  3901 + }
  3902 +
  3903 + function deleteBrend ($id)
  3904 + {
  3905 + $this->db->query ("delete from catalogs_brends where id=?", array (
  3906 + $id
  3907 + ));
  3908 + }
  3909 +
  3910 + function viewAkciiProductID ($id)
  3911 + {
  3912 + $sql = "select rubric_id from catalogs_keys_products_akcii where product_id=?";
  3913 + $row = $this->db->getCol ($sql, "rubric_id", array (
  3914 + $id
  3915 + ));
  3916 + $this->tpl->assign ('product_akcii', $row);
  3917 + }
  3918 +
  3919 + function import_saveRubric ($name, $parent_id)
  3920 + {
  3921 + $id = $this->db->getOne ("select id from catalogs_rubrics where name=? and parent_id=?", array (
  3922 + $name,
  3923 + $parent_id
  3924 + ));
  3925 + if (! $id)
  3926 + {
  3927 + $this->db->autoExecute ("catalogs_rubrics", array (
  3928 + 'name' => $name,
  3929 + 'translit' => translit ($name),
  3930 + 'parent_id' => $parent_id,
  3931 + "level" => ($this->getLevelRubric ($parent_id) + 1)
  3932 + ), DB_AUTOQUERY_INSERT);
  3933 + return mysql_insert_id ();
  3934 + }
  3935 + return $id;
  3936 + }
  3937 +
  3938 + function import_saveBrend ($name, $rubric_id)
  3939 + {
  3940 + // getRubricParent();
  3941 + $id = $this->db->getOne ("select id from catalogs_brends where name=? and rubric_id=?", array (
  3942 + $name,
  3943 + $rubric_id
  3944 + ));
  3945 + if (! $id)
  3946 + {
  3947 + $this->db->autoExecute ("catalogs_brends", array (
  3948 + 'rubric_id' => $rubric_id,
  3949 + 'name' => $name
  3950 + ), DB_AUTOQUERY_INSERT);
  3951 + return mysql_insert_id ();
  3952 + }
  3953 + return $id;
  3954 + }
  3955 +
  3956 + function import_saveFilters2 ($rubric_id, $str)
  3957 + {
  3958 + if (! $str)
  3959 + return array ();
  3960 + $row_str = explode (",", trim ($str));
  3961 + $arr_id = array ();
  3962 + foreach ($row_str as $str)
  3963 + {
  3964 + $name = trim ($str);
  3965 + $name_r = explode ('=', $name);
  3966 + $name = $name_r[0];
  3967 + $active = (isset ($name_r[1])) ? 1 : 0;
  3968 + $id = $this->db->getOne ("select id from catalogs_filters2 where rubric_id=? and name=?", array (
  3969 + $rubric_id,
  3970 + $name
  3971 + ));
  3972 + if (! $id)
  3973 + {
  3974 + $this->db->autoExecute ("catalogs_filters2", array (
  3975 + 'rubric_id' => $rubric_id,
  3976 + 'name' => $name,
  3977 + 'prefix' => encodestring ($name),
  3978 + 'active' => $active
  3979 + ), DB_AUTOQUERY_INSERT);
  3980 + $id = mysql_insert_id ();
  3981 + }
  3982 + else
  3983 + {
  3984 + $this->db->autoExecute ("catalogs_filters2", array (
  3985 + 'rubric_id' => $rubric_id,
  3986 + 'name' => $name,
  3987 + 'prefix' => encodestring ($name),
  3988 + 'active' => $active
  3989 + ), DB_AUTOQUERY_UPDATE, "id=$id");
  3990 + }
  3991 + $arr_id[] = $id;
  3992 + }
  3993 + return $arr_id;
  3994 + }
  3995 +
  3996 + function import_saveFilters ($rubric_id, $str)
  3997 + {
  3998 + if (! $str)
  3999 + return array ();
  4000 + $row_str = explode (",", trim ($str));
  4001 + $arr_id = array ();
  4002 + foreach ($row_str as $str)
  4003 + {
  4004 + $name = trim ($str);
  4005 + $name_r = explode ('=', $name);
  4006 + $name = $name_r[0];
  4007 + $active = (isset ($name_r[1])) ? 1 : 0;
  4008 + $id = $this->db->getOne ("select id from catalogs_filters where rubric_id=? and name=?", array (
  4009 + $rubric_id,
  4010 + $name
  4011 + ));
  4012 + if (! $id)
  4013 + {
  4014 + $this->db->autoExecute ("catalogs_filters", array (
  4015 + 'rubric_id' => $rubric_id,
  4016 + 'name' => $name,
  4017 + 'prefix' => encodestring ($name),
  4018 + 'active' => $active
  4019 + ), DB_AUTOQUERY_INSERT);
  4020 + $id = mysql_insert_id ();
  4021 + }
  4022 + else
  4023 + {
  4024 + $this->db->autoExecute ("catalogs_filters", array (
  4025 + 'rubric_id' => $rubric_id,
  4026 + 'name' => $name,
  4027 + 'prefix' => encodestring ($name),
  4028 + 'active' => $active
  4029 + ), DB_AUTOQUERY_UPDATE, "id=$id");
  4030 + }
  4031 + $arr_id[] = $id;
  4032 + }
  4033 + return $arr_id;
  4034 + }
  4035 +
  4036 + function import_saveYear ($rubric_id, $name)
  4037 + {
  4038 + if (! $name)
  4039 + return false;
  4040 + $id = $this->db->getOne ("select id from catalogs_years where rubric_id=? and name=?", array (
  4041 + $rubric_id,
  4042 + $name
  4043 + ));
  4044 + if (! $id)
  4045 + {
  4046 + $this->db->autoExecute ("catalogs_years", array (
  4047 + 'rubric_id' => $rubric_id,
  4048 + 'name' => $name
  4049 + ), DB_AUTOQUERY_INSERT);
  4050 + $id = mysql_insert_id ();
  4051 + }
  4052 + return ($id) ? array (
  4053 + $id
  4054 + ) : array ();
  4055 + }
  4056 +
  4057 + function import_updateProductCine ($product_id, $row, $line = '', $mktime = 0)
  4058 + { // print"<pre>";print_r($row);print"</pre>";
  4059 + IF ($product_id > 0)
  4060 + {
  4061 + IF ($row[3] > 0)
  4062 + {
  4063 + if ($row[2] < 1)
  4064 + {
  4065 + $cine = $row[1];
  4066 + $cine_last = 0;
  4067 + }
  4068 + else
  4069 + {
  4070 + $cine = $row[2];
  4071 + $cine_last = (($row[1] > 0) ? $row[1] : $row[2]);
  4072 + }
  4073 + $this->db->autoExecute ("catalogs_products", array (
  4074 + 'cine' => $cine,
  4075 + 'cine_last' => $cine_last
  4076 + ), DB_AUTOQUERY_UPDATE, "id='$product_id'");
  4077 + }
  4078 +
  4079 + $city = trim ($row[4]);
  4080 + if (! $city)
  4081 + $city = "Èíòåðíåò ìàãàçèí";
  4082 + // echo "OK(1) - <br/>";
  4083 + if (strlen ($city) > 0)
  4084 + { // print $city;
  4085 + $city_id = $this->is_city ($city);
  4086 + // echo "OK(2) - <br/>";
  4087 + if (! $city_id)
  4088 + {
  4089 + $city_id = $this->SaveCity (array (
  4090 + 'name' => $city
  4091 + ));
  4092 + }
  4093 + $this->db->query ("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array (
  4094 + $product_id,
  4095 + $row[0],
  4096 + $mktime
  4097 + ));
  4098 +
  4099 + if ($row[3] == 0)
  4100 + {
  4101 + }
  4102 + else
  4103 + {
  4104 + // $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime<?", array($product_id,$row[0],$mktime));
  4105 + // echo "OK(3) - <br/>";
  4106 + if ($this->getKeysModificationCity ($row[0], $city_id))
  4107 + {
  4108 + $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;
  4109 + $where = "mod_code='" . $row[0] . "' and city_id='" . $city_id . "'";
  4110 + }
  4111 + else
  4112 + {
  4113 + $DB_AUTOQUERY = DB_AUTOQUERY_INSERT;
  4114 + $where = null;
  4115 + }
  4116 +
  4117 + // if($this->getKeysModificationCityMktime_count($row[0], $city_id, $mktime)>0){$row[3]=1;}
  4118 + // print $city_id .'--'.$where."<br>";
  4119 + $fields = array (
  4120 + 'count' => $row[3],
  4121 + 'product_id' => $product_id,
  4122 + 'mod_code' => $row[0],
  4123 + 'city_id' => $city_id,
  4124 + 'mktime' => $mktime
  4125 + );
  4126 + $s = $this->db->autoExecute ("catalogs_keys_products_cities", $fields, $DB_AUTOQUERY, $where);
  4127 + if (PEAR::isError ($s))
  4128 + die ($s->getMessage ());
  4129 + }
  4130 + }
  4131 + // echo "OK(4) - <br/>";
  4132 + $active = $this->db->getOne ("select count(*) from catalogs_keys_products_cities where mod_code=? and count>0", array (
  4133 + $row[0]
  4134 + ));
  4135 + // $active = true;
  4136 + if ($this->db->getOne ("select count(*) from catalogs_modifications where code=?", array (
  4137 + $row[0]
  4138 + )) > 0)
  4139 + {
  4140 + $this->db->autoExecute ("catalogs_modifications", array (
  4141 + 'active' => $active,
  4142 + 'is_update' => 1,
  4143 + 'prefix' => $row[4]
  4144 + ), DB_AUTOQUERY_UPDATE, "code='" . $row[0] . "'");
  4145 + // echo "OK(5) - <br/>";
  4146 + }
  4147 + else
  4148 + {
  4149 + // echo "OK(6) - <br/>";
  4150 + $this->saveCsvMod ($line);
  4151 + }
  4152 + }
  4153 + }
  4154 +
  4155 + function saveCsvMod ($line)
  4156 + {
  4157 + echo "OK1 - <br/>";
  4158 + $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv";
  4159 + $handle = @fopen ($tmpfname, "a");
  4160 + // $row = explode(";",$line);
  4161 + // File_FGetCSV::fputcsv($handle,$row,';');
  4162 + echo "OK2 - <br/>";
  4163 + echo $line;
  4164 + echo "OK3 - <br/>";
  4165 + fwrite ($handle, $line);
  4166 + fclose ($handle);
  4167 + }
  4168 +
  4169 + function getKeysModificationCity ($code, $city_id)
  4170 + {
  4171 + return $this->db->getOne ("select count(*) from catalogs_keys_products_cities where mod_code=? and city_id=?", array (
  4172 + $code,
  4173 + $city_id
  4174 + ));
  4175 + }
  4176 +
  4177 + function getKeysModificationCity_count ($code, $city_id)
  4178 + {
  4179 + return $this->db->getOne ("select count from catalogs_keys_products_cities where mod_code=? and city_id=?", array (
  4180 + $code,
  4181 + $city_id
  4182 + ));
  4183 + }
  4184 +
  4185 + function getKeysModificationCityMktime_count ($code, $city_id, $mktime)
  4186 + {
  4187 + $r = $this->db->getOne ("select count from catalogs_keys_products_cities where mod_code=? and city_id=? and mktime=?", array (
  4188 + $code,
  4189 + $city_id,
  4190 + $mktime
  4191 + ));
  4192 + return $r;
  4193 + }
  4194 +
  4195 + function getProductID ($name)
  4196 + {
  4197 + $id = $this->db->getOne ("select id from catalogs_products where name=?", array (
  4198 + $name
  4199 + ));
  4200 + return $id;
  4201 + }
  4202 +
  4203 + function getProductID_R ($name, $rubric_parent_id)
  4204 + {
  4205 + $id = $this->db->getOne ("select id from catalogs_products where name=? and rubric_id=?", array (
  4206 + $name,
  4207 + $rubric_parent_id
  4208 + ));
  4209 +
  4210 + return $id;
  4211 + }
  4212 +
  4213 + function getModificationActive ($code)
  4214 + {
  4215 + return $this->db->getOne ("select active from catalogs_modifications where code=?", array (
  4216 + $code
  4217 + ));
  4218 + }
  4219 +
  4220 + function updateProduct_countModification ($product_id, $count)
  4221 + {
  4222 + $this->db->autoExecute ("catalogs_products", array (
3024 4223 'count_modifications' => $count
3025   - ), DB_AUTOQUERY_UPDATE, "id='$product_id'");
3026   -}
3027   -
3028   - function updateProductModificationCountPrefix($product_id,$prefix = "+"){
3029   -// print $product_id;
3030   - $sql = "UPDATE catalogs_products SET count_modifications = count_modifications $prefix 1 WHERE id =?";
3031   - $this->db->query($sql,array($product_id));
3032   - }
3033   -
3034   - function exportCSV(){
3035   - $tmpfname = "tmp/price.csv";
3036   - $handle = fopen($tmpfname, "w");
3037   - // fwrite($handle, $xml);
3038   - $res = $this->db->getAll('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id',array());
3039   - foreach($res as $key=>$row){
3040   - $list = $row;
3041   - $mod_res = $this->db->getAll('select code,size,color,pic_big,active from catalogs_modifications where product_id=? Order by id',array($row[0]));
3042   - foreach($mod_res as $mod_row){$list[] = implode('=',$mod_row);}
3043   -
3044   - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0]));
3045   - $list[8]=implode(',',$f_row);
3046   -
3047   - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0]));
3048   - $list[9]=implode(',',$f_row);
3049   -
3050   - switch($list[10]){
3051   - case 1 : $list[10] = 'ìóæñêîé'; break;
3052   - case 2 : $list[10] = 'æåíñêèé'; break;
3053   - case 3 : $list[10] = 'äåòñêèé'; break;
3054   - case 4 : $list[10] = 'óíèñåêñ'; break;
3055   - default : $list[10] = 'ìóæñêîé'; break;
3056   - }
3057   -
3058   - $y_row = $this->db->getCol("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?",'name',array($list[0]));
3059   - $list[11]=implode(',',$y_row);
3060   -
3061   - $p_row = $this->db->getCol("select pic_big from catalogs_gallery where product_id=?",'pic_big',array($list[0]));
3062   - $list[20]=implode(',',$p_row);
3063   -
3064   - //print_r($list);exit;
3065   - $p_res = $this->db->getAll("select name,size,metka from catalogs_products_params where product_id=? order by id asc",array($list[0]));
3066   - $param = array();
3067   - foreach($p_res as $row_p){
3068   - $param[] = implode('*',$row_p);
3069   - }
3070   - $list[17] = implode('=',$param);
3071   -
3072   - unset($list[0]);unset($list[1]);
3073   -
3074   - File_FGetCSV::fputcsv($handle,$list,';');
3075   -
3076   -
3077   -
3078   - }
3079   -
3080   - fclose($handle);
3081   -
3082   - $params = array(
3083   - 'file' => $tmpfname,
3084   - 'contenttype' => 'application/xls',
3085   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'),
3086   - 'cache' => false
3087   - );
3088   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3089   - if ($error === true) {
3090   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3091   - }
3092   -
3093   - unlink($tmpfname);
3094   - }
3095   -
3096   - function exportCSVaktual(){
3097   - $tmpfname = "tmp/price.csv";
3098   - $handle = fopen($tmpfname, "w");
3099   - // fwrite($handle, $xml);
3100   - $res = $this->db->getAll('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id WHERE p.count_modifications>0',array());
3101   - foreach($res as $key=>$row){
3102   - $list = $row;
3103   - $mod_res = $this->db->getAll('select code,size,rost,color,pic_big,active from catalogs_modifications where product_id=? Order by id',array($row[0]));
3104   - foreach($mod_res as $mod_row){if(strlen($mod_row[2])>0)$mod_row[1] = $mod_row[1].'*'.$mod_row[2]; unset($mod_row[2]);$list[] = implode('=',$mod_row);}
3105   -
3106   - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0]));
3107   - $list[8]=implode(',',$f_row);
3108   -
3109   - $f_row = $this->db->getCol("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?",'name',array($list[0]));
3110   - $list[9]=implode(',',$f_row);
3111   -
3112   - switch($list[10]){
3113   - case 1 : $list[10] = 'ìóæñêîé'; break;
3114   - case 2 : $list[10] = 'æåíñêèé'; break;
3115   - case 3 : $list[10] = 'äåòñêèé'; break;
3116   - case 4 : $list[10] = 'óíèñåêñ'; break;
3117   - default : $list[10] = 'ìóæñêîé'; break;
3118   - }
3119   -
3120   - $y_row = $this->db->getCol("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?",'name',array($list[0]));
3121   - $list[11]=implode(',',$y_row);
3122   -
3123   - $p_row = $this->db->getCol("select pic_big from catalogs_gallery where product_id=?",'pic_big',array($list[0]));
3124   - $list[20]=implode(',',$p_row);
3125   -
3126   - //print_r($list);exit;
3127   - $p_res = $this->db->getAll("select name,size,metka from catalogs_products_params where product_id=? order by id asc",array($list[0]));
3128   - $param = array();
3129   - foreach($p_res as $row_p){
3130   - $param[] = implode('*',$row_p);
3131   - }
3132   - $list[17] = implode('=',$param);
3133   -
3134   - unset($list[0]);unset($list[1]);
3135   -
3136   - File_FGetCSV::fputcsv($handle,$list,';');
3137   -
3138   -
3139   -
3140   - }
3141   -
3142   - fclose($handle);
3143   -
3144   - $params = array(
3145   - 'file' => $tmpfname,
3146   - 'contenttype' => 'application/xls',
3147   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'),
3148   - 'cache' => false
3149   - );
3150   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3151   - if ($error === true) {
3152   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3153   - }
3154   -
3155   - unlink($tmpfname);
3156   - }
3157   -
3158   - function exportModCSV(){
3159   - $tmpfname = "tmp/price_mod.csv";
3160   - $handle = fopen($tmpfname, "w");
3161   - $res = $this->db->getAll('select m.code,p.cine,p.cine_last,m.active,null,m.prefix,m.is_update From catalogs_modifications m Left join catalogs_products p on p.id=m.product_id Order by m.id');
3162   - foreach($res as $key=>$row){
3163   - File_FGetCSV::fputcsv($handle,$row,';');
3164   - }
3165   - fclose($handle);
3166   - $params = array(
3167   - 'file' => $tmpfname,
3168   - 'contenttype' => 'application/xls',
3169   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'file_1.csv'),
3170   - 'cache' => false
3171   - );
3172   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3173   - if ($error === true) {
3174   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3175   - }
3176   -
3177   - unlink($tmpfname);
3178   - $this->db->autoExecute("catalogs_modifications",array('is_update'=>0),DB_AUTOQUERY_UPDATE);
3179   - }
3180   -
3181   - function exportUsersCSV(){
3182   - $tmpfname = "tmp/users.csv";
3183   - $handle = fopen($tmpfname, "w");
3184   -
3185   - $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,summary,u.birthday,c.card
  4224 + ), DB_AUTOQUERY_UPDATE, "id='$product_id'");
  4225 + }
  4226 +
  4227 + function updateProductModificationCountPrefix ($product_id, $prefix = "+")
  4228 + {
  4229 + // print $product_id;
  4230 + $sql = "UPDATE catalogs_products SET count_modifications = count_modifications $prefix 1 WHERE id =?";
  4231 + $this->db->query ($sql, array (
  4232 + $product_id
  4233 + ));
  4234 + }
  4235 +
  4236 + function exportCSV ()
  4237 + {
  4238 + $tmpfname = "tmp/price.csv";
  4239 + $handle = fopen ($tmpfname, "w");
  4240 + // fwrite($handle, $xml);
  4241 + $res = $this->db->getAll ('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id', array ());
  4242 + foreach ($res as $key => $row)
  4243 + {
  4244 + $list = $row;
  4245 + $mod_res = $this->db->getAll ('select code,size,color,pic_big,active from catalogs_modifications where product_id=? Order by id', array (
  4246 + $row[0]
  4247 + ));
  4248 + foreach ($mod_res as $mod_row)
  4249 + {
  4250 + $list[] = implode ('=', $mod_row);
  4251 + }
  4252 +
  4253 + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?", 'name', array (
  4254 + $list[0]
  4255 + ));
  4256 + $list[8] = implode (',', $f_row);
  4257 +
  4258 + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?", 'name', array (
  4259 + $list[0]
  4260 + ));
  4261 + $list[9] = implode (',', $f_row);
  4262 +
  4263 + switch ($list[10])
  4264 + {
  4265 + case 1 :
  4266 + $list[10] = 'ìóæñêîé';
  4267 + break;
  4268 + case 2 :
  4269 + $list[10] = 'æåíñêèé';
  4270 + break;
  4271 + case 3 :
  4272 + $list[10] = 'äåòñêèé';
  4273 + break;
  4274 + case 4 :
  4275 + $list[10] = 'óíèñåêñ';
  4276 + break;
  4277 + default :
  4278 + $list[10] = 'ìóæñêîé';
  4279 + break;
  4280 + }
  4281 +
  4282 + $y_row = $this->db->getCol ("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?", 'name', array (
  4283 + $list[0]
  4284 + ));
  4285 + $list[11] = implode (',', $y_row);
  4286 +
  4287 + $p_row = $this->db->getCol ("select pic_big from catalogs_gallery where product_id=?", 'pic_big', array (
  4288 + $list[0]
  4289 + ));
  4290 + $list[20] = implode (',', $p_row);
  4291 +
  4292 + // print_r($list);exit;
  4293 + $p_res = $this->db->getAll ("select name,size,metka from catalogs_products_params where product_id=? order by id asc", array (
  4294 + $list[0]
  4295 + ));
  4296 + $param = array ();
  4297 + foreach ($p_res as $row_p)
  4298 + {
  4299 + $param[] = implode ('*', $row_p);
  4300 + }
  4301 + $list[17] = implode ('=', $param);
  4302 +
  4303 + unset ($list[0]);
  4304 + unset ($list[1]);
  4305 +
  4306 + File_FGetCSV::fputcsv ($handle, $list, ';');
  4307 + }
  4308 +
  4309 + fclose ($handle);
  4310 +
  4311 + $params = array (
  4312 + 'file' => $tmpfname,
  4313 + 'contenttype' => 'application/xls',
  4314 + 'contentdisposition' => array (
  4315 + HTTP_DOWNLOAD_ATTACHMENT,
  4316 + 'price.csv'
  4317 + ),
  4318 + 'cache' => false
  4319 + );
  4320 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4321 + if ($error === true)
  4322 + {
  4323 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4324 + }
  4325 +
  4326 + unlink ($tmpfname);
  4327 + }
  4328 +
  4329 + function exportCSVaktual ()
  4330 + {
  4331 + $tmpfname = "tmp/price.csv";
  4332 + $handle = fopen ($tmpfname, "w");
  4333 + // fwrite($handle, $xml);
  4334 + $res = $this->db->getAll ('select p.id,p.rubric_id,r2.name,r.name,b.name as brend,p.name,p.about,p.text,null,null,p.sex,null,p.cine,p.cine_last,p.akcii_id,p.strnumber,p.active,null,p.video_code,p.pic_big,null from catalogs_products p left join catalogs_rubrics r on r.id=p.rubric_id left join catalogs_rubrics r2 on r2.id=p.rubric_parent_id left join catalogs_brends b on b.id=p.brend_id WHERE p.count_modifications>0', array ());
  4335 + foreach ($res as $key => $row)
  4336 + {
  4337 + $list = $row;
  4338 + $mod_res = $this->db->getAll ('select code,size,rost,color,pic_big,active from catalogs_modifications where product_id=? Order by id', array (
  4339 + $row[0]
  4340 + ));
  4341 + foreach ($mod_res as $mod_row)
  4342 + {
  4343 + if (strlen ($mod_row[2]) > 0)
  4344 + $mod_row[1] = $mod_row[1] . '*' . $mod_row[2];
  4345 + unset ($mod_row[2]);
  4346 + $list[] = implode ('=', $mod_row);
  4347 + }
  4348 +
  4349 + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters k Left Join catalogs_filters f ON f.id=k.filter_id where k.product_id=?", 'name', array (
  4350 + $list[0]
  4351 + ));
  4352 + $list[8] = implode (',', $f_row);
  4353 +
  4354 + $f_row = $this->db->getCol ("select f.name from catalogs_keys_products_filters2 k Left Join catalogs_filters2 f ON f.id=k.filter_id where k.product_id=?", 'name', array (
  4355 + $list[0]
  4356 + ));
  4357 + $list[9] = implode (',', $f_row);
  4358 +
  4359 + switch ($list[10])
  4360 + {
  4361 + case 1 :
  4362 + $list[10] = 'ìóæñêîé';
  4363 + break;
  4364 + case 2 :
  4365 + $list[10] = 'æåíñêèé';
  4366 + break;
  4367 + case 3 :
  4368 + $list[10] = 'äåòñêèé';
  4369 + break;
  4370 + case 4 :
  4371 + $list[10] = 'óíèñåêñ';
  4372 + break;
  4373 + default :
  4374 + $list[10] = 'ìóæñêîé';
  4375 + break;
  4376 + }
  4377 +
  4378 + $y_row = $this->db->getCol ("select y.name from catalogs_keys_products_years k Left Join catalogs_years y ON y.id=k.year_id where k.product_id=?", 'name', array (
  4379 + $list[0]
  4380 + ));
  4381 + $list[11] = implode (',', $y_row);
  4382 +
  4383 + $p_row = $this->db->getCol ("select pic_big from catalogs_gallery where product_id=?", 'pic_big', array (
  4384 + $list[0]
  4385 + ));
  4386 + $list[20] = implode (',', $p_row);
  4387 +
  4388 + // print_r($list);exit;
  4389 + $p_res = $this->db->getAll ("select name,size,metka from catalogs_products_params where product_id=? order by id asc", array (
  4390 + $list[0]
  4391 + ));
  4392 + $param = array ();
  4393 + foreach ($p_res as $row_p)
  4394 + {
  4395 + $param[] = implode ('*', $row_p);
  4396 + }
  4397 + $list[17] = implode ('=', $param);
  4398 +
  4399 + unset ($list[0]);
  4400 + unset ($list[1]);
  4401 +
  4402 + File_FGetCSV::fputcsv ($handle, $list, ';');
  4403 + }
  4404 +
  4405 + fclose ($handle);
  4406 +
  4407 + $params = array (
  4408 + 'file' => $tmpfname,
  4409 + 'contenttype' => 'application/xls',
  4410 + 'contentdisposition' => array (
  4411 + HTTP_DOWNLOAD_ATTACHMENT,
  4412 + 'price.csv'
  4413 + ),
  4414 + 'cache' => false
  4415 + );
  4416 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4417 + if ($error === true)
  4418 + {
  4419 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4420 + }
  4421 +
  4422 + unlink ($tmpfname);
  4423 + }
  4424 +
  4425 + function exportModCSV ()
  4426 + {
  4427 + $tmpfname = "tmp/price_mod.csv";
  4428 + $handle = fopen ($tmpfname, "w");
  4429 + $res = $this->db->getAll ('select m.code,p.cine,p.cine_last,m.active,null,m.prefix,m.is_update From catalogs_modifications m Left join catalogs_products p on p.id=m.product_id Order by m.id');
  4430 + foreach ($res as $key => $row)
  4431 + {
  4432 + File_FGetCSV::fputcsv ($handle, $row, ';');
  4433 + }
  4434 + fclose ($handle);
  4435 + $params = array (
  4436 + 'file' => $tmpfname,
  4437 + 'contenttype' => 'application/xls',
  4438 + 'contentdisposition' => array (
  4439 + HTTP_DOWNLOAD_ATTACHMENT,
  4440 + 'file_1.csv'
  4441 + ),
  4442 + 'cache' => false
  4443 + );
  4444 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4445 + if ($error === true)
  4446 + {
  4447 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4448 + }
  4449 +
  4450 + unlink ($tmpfname);
  4451 + $this->db->autoExecute ("catalogs_modifications", array (
  4452 + 'is_update' => 0
  4453 + ), DB_AUTOQUERY_UPDATE);
  4454 + }
  4455 +
  4456 + function exportUsersCSV ()
  4457 + {
  4458 + $tmpfname = "tmp/users.csv";
  4459 + $handle = fopen ($tmpfname, "w");
  4460 +
  4461 + $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,summary,u.birthday,c.card
3186 4462 FROM zlo_users AS u
3187 4463 LEFT JOIN card c ON c.user_id = u.id
3188 4464 LEFT JOIN zlo_users_group AS g ON u.group = g.id
3189 4465 LEFT JOIN (SELECT user_id AS order_user_id, sum( `total` ) AS `summary` FROM catalogs_orders group by user_id ) o
3190 4466 ON u.id = o.order_user_id
3191 4467 ";
3192   - $res = $this->db->getAll($sql);
3193   - foreach($res as $key=>$row){
3194   - File_FGetCSV::fputcsv($handle,$row,';');
3195   - }
3196   - fclose($handle);
3197   - $params = array(
3198   - 'file' => $tmpfname,
3199   - 'contenttype' => 'application/xls',
3200   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'users.csv'),
3201   - 'cache' => false
3202   - );
3203   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3204   - if ($error === true) {
3205   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3206   - }
3207   -
3208   - unlink($tmpfname);
3209   - }
3210   -
3211   - function exportUsersBirdthCSV(){
3212   - $tmpfname = "tmp/usersBirdth.csv";
3213   - $handle = fopen($tmpfname, "w");
3214   -
3215   - $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,u.birthday,c.card
  4468 + $res = $this->db->getAll ($sql);
  4469 + foreach ($res as $key => $row)
  4470 + {
  4471 + File_FGetCSV::fputcsv ($handle, $row, ';');
  4472 + }
  4473 + fclose ($handle);
  4474 + $params = array (
  4475 + 'file' => $tmpfname,
  4476 + 'contenttype' => 'application/xls',
  4477 + 'contentdisposition' => array (
  4478 + HTTP_DOWNLOAD_ATTACHMENT,
  4479 + 'users.csv'
  4480 + ),
  4481 + 'cache' => false
  4482 + );
  4483 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4484 + if ($error === true)
  4485 + {
  4486 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4487 + }
  4488 +
  4489 + unlink ($tmpfname);
  4490 + }
  4491 +
  4492 + function exportUsersBirdthCSV ()
  4493 + {
  4494 + $tmpfname = "tmp/usersBirdth.csv";
  4495 + $handle = fopen ($tmpfname, "w");
  4496 +
  4497 + $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,u.birthday,c.card
3216 4498 FROM zlo_users AS u
3217 4499 LEFT JOIN card c ON c.user_id = u.id
3218 4500 LEFT JOIN zlo_users_group AS g ON u.group = g.id
3219 4501 WHERE DAYOFMONTH(u.birthday) >= '19' AND DAYOFMONTH(u.birthday) <= '28' and MONTH(u.birthday) = '10'
3220 4502 ";
3221   - $res = $this->db->getAll($sql);
3222   - foreach($res as $key=>$row){
3223   - File_FGetCSV::fputcsv($handle,$row,';');
3224   - }
3225   - fclose($handle);
3226   - $params = array(
3227   - 'file' => $tmpfname,
3228   - 'contenttype' => 'application/xls',
3229   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'users.csv'),
3230   - 'cache' => false
3231   - );
3232   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3233   - if ($error === true) {
3234   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3235   - }
3236   -
3237   - unlink($tmpfname);
3238   - }
3239   -
3240   - function exportSeoF1CSV(){
3241   - $tmpfname = "tmp/seo_f1.csv";
3242   - $handle = fopen($tmpfname, "w");
3243   - $res = $this->db->getAll("select id,name,translit,name_h1 from catalogs_rubrics");
3244   - foreach($res as $key=>$row){
3245   - //$res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0]));
3246   - //foreach($res_b as $row_b){
3247   - $list = array();
3248   - $f_res = $this->db->getAll("select id,prefix,name from catalogs_filters where rubric_id=?",array($row[0]));
3249   - foreach($f_res as $f_row){
3250   - $list[0] = $row[0];
3251   - $list[1] = (strlen($row[3])>0) ? $row[3] : $row[1];
3252   - $list[2] = $f_row[2];
3253   - $list[3] = "http://extremstyle.ua/".$row[2]."-catalogs/filter;filter=f".$f_row[0]."_".$f_row[1]."/";
3254   - //$list[4] = $row_b[0];
3255   - File_FGetCSV::fputcsv($handle,$list,';');
3256   - }
3257   - //}
3258   - }
3259   -
3260   -
3261   - $res = $this->db->getAll("select id,name,translit,name_h1 from catalogs_rubrics");
3262   - foreach($res as $key=>$row){
3263   - //$res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0]));
3264   - //foreach($res_b as $row_b){
3265   - $list = array();
3266   - $f_res = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0]));
3267   - foreach($f_res as $f_row){
3268   - if(!strlen($f_row[0]))continue;
3269   - $list[0] = $row[0];
3270   - $list[1] = (strlen($row[3])>0) ? $row[3] : $row[1];
3271   - $list[2] = $f_row[0];
3272   - $list[3] = "http://extremstyle.ua/".$row[2]."-catalogs/filter;brend=".$f_row[0]."/";
3273   - //$list[4] = $row_b[0];
3274   - File_FGetCSV::fputcsv($handle,$list,';');
3275   - }
3276   - //}
3277   - }
3278   -
3279   -
3280   -
3281   - fclose($handle);
3282   - $params = array(
3283   - 'file' => $tmpfname,
3284   - 'contenttype' => 'application/xls',
3285   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'seo_f1.csv'),
3286   - 'cache' => false
3287   - );
3288   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3289   - if ($error === true) {
3290   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3291   - }
3292   -
3293   - unlink($tmpfname);
3294   - }
3295   -
3296   - function exportSeoCSV(){
3297   - $tmpfname = "tmp/seo.csv";
3298   - $handle = fopen($tmpfname, "w");
3299   - $res = $this->db->getAll('select p.id,p.rubric_id,r.name_h1,null,r.list_name,b.name,p.name,null,p.cine, r.translit,p.translit,r.name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id');
3300   - foreach($res as $key=>$row){
3301   - $row[3] = $this->getFilterPh1($row[0]);
3302   - if(!strlen($row[2]))$row[2] = $row[11];
3303   - $row[7] = "http://extremstyle.ua/".$row[9]."-catalogs/".$row[10]."-".$row[0]."/";
3304   - unset($row[9]);unset($row[10]);unset($row[11]);
3305   - File_FGetCSV::fputcsv($handle,$row,';');
3306   - }
3307   - fclose($handle);
3308   - $params = array(
3309   - 'file' => $tmpfname,
3310   - 'contenttype' => 'application/xls',
3311   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'seo.csv'),
3312   - 'cache' => false
3313   - );
3314   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3315   - if ($error === true) {
3316   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3317   - }
3318   -
3319   - unlink($tmpfname);
3320   - }
3321   -
3322   -
3323   - function exportProductsSeoCSV(){
3324   - $tmpfname = "tmp/products_seo.csv";
3325   - $handle = fopen($tmpfname, "w");
3326   - $res = $this->db->getAll('select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where b.name=?',array('Dakine'));
3327   - foreach($res as $key=>$row){
3328   - $vowels = array("'05","'06","'07","'08","'09","'10", "'11", "'12", "'13", "'14", "'15", "'16","2005","2006","2007","2008","2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016",);
3329   - $row[3] = $this->getFilterPh1($row[2]) .' '. str_replace($vowels, "", $row[3]);
3330   - $row[8] = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/";
3331   - unset($row[6]);unset($row[7]);
3332   - File_FGetCSV::fputcsv($handle,$row,';');
3333   - }
3334   - fclose($handle);
3335   - $params = array(
3336   - 'file' => $tmpfname,
3337   - 'contenttype' => 'application/xls',
3338   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'products_seo.csv'),
3339   - 'cache' => false
3340   - );
3341   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3342   - if ($error === true) {
3343   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3344   - }
3345   -
3346   - unlink($tmpfname);
3347   - }
3348   -
3349   - function exportProducts2SeoCSV(){
3350   - $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/cron/products_seo.csv";
3351   - $handle = fopen($tmpfname, "w");
3352   - $sql = 'select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id LEFT JOIN catalogs_keys_products_years ky ON ky.product_id=p.id LEFT JOIN catalogs_years y ON y.id=ky.year_id where p.count_modifications>0 and b.name=? and y.name in ("2013","2014","2015","2014-2015")';
3353   - $res = $this->db->getAll($sql,array('Dakine'));
3354   - foreach($res as $key=>$row){
3355   - $vowels = array("'05","'06","'07","'08","'09","'10", "'11", "'12", "'13", "'14", "'15", "'16","2005","2006","2007","2008","2009", "2010", "2011", "2012", "2013", "2014", "2015", "2016",);
3356   - $row[3] = $this->getFilterPh1($row[2]) .' '. str_replace($vowels, "", $row[3]);
3357   - $row[8] = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/";
3358   - unset($row[5]);unset($row[6]);unset($row[7]);
3359   - File_FGetCSV::fputcsv($handle,$row,';');
3360   - }
3361   - fclose($handle);
3362   -
3363   - }
3364   -
3365   - function exportProductsFeed(){
3366   - $tmpfname = "tmp/products_feed.csv";
3367   - $handle = fopen($tmpfname, "w");
3368   - $sql = 'select r.id,r.name,p.id,p.name,p.cine_last,r.translit,p.translit,r.list_name,p.pic,b.name,p.about,p.cine From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where p.count_modifications>0 and p.cine>0';
3369   - $res = $this->db->getAll($sql,array());
3370   - $list = array('ID','ID2','Item title','Destination URL','Image URL','Item subtitle','Item description','Item category','Price','Sale price','Contextual keywords','Item address');
3371   - File_FGetCSV::fputcsv($handle,$list,',');
3372   - foreach($res as $key=>$row){
3373   - $url = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/";
3374   - $image = "http://extremstyle.ua/uploaded/pic/catalogs/products/".$row[8];
3375   - $subtitle = $row[1].' '.$row[9];
3376   - $list = array(
3377   - $row[2],$row[2].'S',substr($row[3],0,12),$url,$image,substr($subtitle,0,12),"Ãàðàíòèÿ êà÷åñòâà",$row[1],round($row[11]).' UAH',round($row[4]).' UAH',$row[1].' '.$row[9],
3378   - );
3379   - //print_r($list);
3380   - unset($row[5]);unset($row[6]);unset($row[7]);
3381   - File_FGetCSV::fputcsv($handle,$list,',');
3382   - }
3383   - fclose($handle);
3384   - $params = array(
3385   - 'file' => $tmpfname,
3386   - 'contenttype' => 'application/xls',
3387   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'products_feed.csv'),
3388   - 'cache' => false
3389   - );
3390   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3391   - if ($error === true) {
3392   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3393   - }
3394   -
3395   - unlink($tmpfname);
3396   - }
3397   -
3398   - function exportOrdersCSV(){
3399   - $tmpfname = "tmp/orders.csv";
3400   - $handle = fopen($tmpfname, "w");
3401   - $res = $this->db->getAll('select o.id,o.name,o.email,o.adress,o.phone,o.total From catalogs_orders o LEFT JOIN zlo_users u ON u.id=o.user_id WHERE u.`group`=2 order by o.id desc');
3402   - foreach($res as $key=>$row){
3403   - $products = $this->db->getAll("select p.* from catalogs_orders_products op
  4503 + $res = $this->db->getAll ($sql);
  4504 + foreach ($res as $key => $row)
  4505 + {
  4506 + File_FGetCSV::fputcsv ($handle, $row, ';');
  4507 + }
  4508 + fclose ($handle);
  4509 + $params = array (
  4510 + 'file' => $tmpfname,
  4511 + 'contenttype' => 'application/xls',
  4512 + 'contentdisposition' => array (
  4513 + HTTP_DOWNLOAD_ATTACHMENT,
  4514 + 'users.csv'
  4515 + ),
  4516 + 'cache' => false
  4517 + );
  4518 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4519 + if ($error === true)
  4520 + {
  4521 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4522 + }
  4523 +
  4524 + unlink ($tmpfname);
  4525 + }
  4526 +
  4527 + function exportSeoF1CSV ()
  4528 + {
  4529 + $tmpfname = "tmp/seo_f1.csv";
  4530 + $handle = fopen ($tmpfname, "w");
  4531 + $res = $this->db->getAll ("select id,name,translit,name_h1 from catalogs_rubrics");
  4532 + foreach ($res as $key => $row)
  4533 + {
  4534 + // $res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0]));
  4535 + // foreach($res_b as $row_b){
  4536 + $list = array ();
  4537 + $f_res = $this->db->getAll ("select id,prefix,name from catalogs_filters where rubric_id=?", array (
  4538 + $row[0]
  4539 + ));
  4540 + foreach ($f_res as $f_row)
  4541 + {
  4542 + $list[0] = $row[0];
  4543 + $list[1] = (strlen ($row[3]) > 0) ? $row[3] : $row[1];
  4544 + $list[2] = $f_row[2];
  4545 + $list[3] = "http://extremstyle.ua/" . $row[2] . "-catalogs/filter;filter=f" . $f_row[0] . "_" . $f_row[1] . "/";
  4546 + // $list[4] = $row_b[0];
  4547 + File_FGetCSV::fputcsv ($handle, $list, ';');
  4548 + }
  4549 + // }
  4550 + }
  4551 +
  4552 + $res = $this->db->getAll ("select id,name,translit,name_h1 from catalogs_rubrics");
  4553 + foreach ($res as $key => $row)
  4554 + {
  4555 + // $res_b = $this->db->getAll("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id",array($row[0]));
  4556 + // foreach($res_b as $row_b){
  4557 + $list = array ();
  4558 + $f_res = $this->db->getAll ("select b.name from catalogs_products p left join catalogs_brends b on b.id=p.brend_id where p.rubric_id=? group by p.brend_id", array (
  4559 + $row[0]
  4560 + ));
  4561 + foreach ($f_res as $f_row)
  4562 + {
  4563 + if (! strlen ($f_row[0]))
  4564 + continue;
  4565 + $list[0] = $row[0];
  4566 + $list[1] = (strlen ($row[3]) > 0) ? $row[3] : $row[1];
  4567 + $list[2] = $f_row[0];
  4568 + $list[3] = "http://extremstyle.ua/" . $row[2] . "-catalogs/filter;brend=" . $f_row[0] . "/";
  4569 + // $list[4] = $row_b[0];
  4570 + File_FGetCSV::fputcsv ($handle, $list, ';');
  4571 + }
  4572 + // }
  4573 + }
  4574 +
  4575 + fclose ($handle);
  4576 + $params = array (
  4577 + 'file' => $tmpfname,
  4578 + 'contenttype' => 'application/xls',
  4579 + 'contentdisposition' => array (
  4580 + HTTP_DOWNLOAD_ATTACHMENT,
  4581 + 'seo_f1.csv'
  4582 + ),
  4583 + 'cache' => false
  4584 + );
  4585 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4586 + if ($error === true)
  4587 + {
  4588 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4589 + }
  4590 +
  4591 + unlink ($tmpfname);
  4592 + }
  4593 +
  4594 + function exportSeoCSV ()
  4595 + {
  4596 + $tmpfname = "tmp/seo.csv";
  4597 + $handle = fopen ($tmpfname, "w");
  4598 + $res = $this->db->getAll ('select p.id,p.rubric_id,r.name_h1,null,r.list_name,b.name,p.name,null,p.cine, r.translit,p.translit,r.name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id');
  4599 + foreach ($res as $key => $row)
  4600 + {
  4601 + $row[3] = $this->getFilterPh1 ($row[0]);
  4602 + if (! strlen ($row[2]))
  4603 + $row[2] = $row[11];
  4604 + $row[7] = "http://extremstyle.ua/" . $row[9] . "-catalogs/" . $row[10] . "-" . $row[0] . "/";
  4605 + unset ($row[9]);
  4606 + unset ($row[10]);
  4607 + unset ($row[11]);
  4608 + File_FGetCSV::fputcsv ($handle, $row, ';');
  4609 + }
  4610 + fclose ($handle);
  4611 + $params = array (
  4612 + 'file' => $tmpfname,
  4613 + 'contenttype' => 'application/xls',
  4614 + 'contentdisposition' => array (
  4615 + HTTP_DOWNLOAD_ATTACHMENT,
  4616 + 'seo.csv'
  4617 + ),
  4618 + 'cache' => false
  4619 + );
  4620 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4621 + if ($error === true)
  4622 + {
  4623 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4624 + }
  4625 +
  4626 + unlink ($tmpfname);
  4627 + }
  4628 +
  4629 + function exportProductsSeoCSV ()
  4630 + {
  4631 + $tmpfname = "tmp/products_seo.csv";
  4632 + $handle = fopen ($tmpfname, "w");
  4633 + $res = $this->db->getAll ('select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where b.name=?', array (
  4634 + 'Dakine'
  4635 + ));
  4636 + foreach ($res as $key => $row)
  4637 + {
  4638 + $vowels = array (
  4639 + "'05",
  4640 + "'06",
  4641 + "'07",
  4642 + "'08",
  4643 + "'09",
  4644 + "'10",
  4645 + "'11",
  4646 + "'12",
  4647 + "'13",
  4648 + "'14",
  4649 + "'15",
  4650 + "'16",
  4651 + "2005",
  4652 + "2006",
  4653 + "2007",
  4654 + "2008",
  4655 + "2009",
  4656 + "2010",
  4657 + "2011",
  4658 + "2012",
  4659 + "2013",
  4660 + "2014",
  4661 + "2015",
  4662 + "2016"
  4663 + );
  4664 + $row[3] = $this->getFilterPh1 ($row[2]) . ' ' . str_replace ($vowels, "", $row[3]);
  4665 + $row[8] = "http://extremstyle.ua/" . $row[5] . "-catalogs/" . $row[6] . "-" . $row[2] . "/";
  4666 + unset ($row[6]);
  4667 + unset ($row[7]);
  4668 + File_FGetCSV::fputcsv ($handle, $row, ';');
  4669 + }
  4670 + fclose ($handle);
  4671 + $params = array (
  4672 + 'file' => $tmpfname,
  4673 + 'contenttype' => 'application/xls',
  4674 + 'contentdisposition' => array (
  4675 + HTTP_DOWNLOAD_ATTACHMENT,
  4676 + 'products_seo.csv'
  4677 + ),
  4678 + 'cache' => false
  4679 + );
  4680 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4681 + if ($error === true)
  4682 + {
  4683 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4684 + }
  4685 +
  4686 + unlink ($tmpfname);
  4687 + }
  4688 +
  4689 + function exportProducts2SeoCSV ()
  4690 + {
  4691 + $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/cron/products_seo.csv";
  4692 + $handle = fopen ($tmpfname, "w");
  4693 + $sql = 'select r.id,r.name,p.id,p.name,p.cine,r.translit,p.translit,r.list_name From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id LEFT JOIN catalogs_keys_products_years ky ON ky.product_id=p.id LEFT JOIN catalogs_years y ON y.id=ky.year_id where p.count_modifications>0 and b.name=? and y.name in ("2013","2014","2015","2014-2015")';
  4694 + $res = $this->db->getAll ($sql, array (
  4695 + 'Dakine'
  4696 + ));
  4697 + foreach ($res as $key => $row)
  4698 + {
  4699 + $vowels = array (
  4700 + "'05",
  4701 + "'06",
  4702 + "'07",
  4703 + "'08",
  4704 + "'09",
  4705 + "'10",
  4706 + "'11",
  4707 + "'12",
  4708 + "'13",
  4709 + "'14",
  4710 + "'15",
  4711 + "'16",
  4712 + "2005",
  4713 + "2006",
  4714 + "2007",
  4715 + "2008",
  4716 + "2009",
  4717 + "2010",
  4718 + "2011",
  4719 + "2012",
  4720 + "2013",
  4721 + "2014",
  4722 + "2015",
  4723 + "2016"
  4724 + );
  4725 + $row[3] = $this->getFilterPh1 ($row[2]) . ' ' . str_replace ($vowels, "", $row[3]);
  4726 + $row[8] = "http://extremstyle.ua/" . $row[5] . "-catalogs/" . $row[6] . "-" . $row[2] . "/";
  4727 + unset ($row[5]);
  4728 + unset ($row[6]);
  4729 + unset ($row[7]);
  4730 + File_FGetCSV::fputcsv ($handle, $row, ';');
  4731 + }
  4732 + fclose ($handle);
  4733 + }
  4734 +
  4735 + function exportProductsFeed ()
  4736 + {
  4737 + $tmpfname = "tmp/products_feed.csv";
  4738 + $handle = fopen ($tmpfname, "w");
  4739 + $sql = 'select r.id,r.name,p.id,p.name,p.cine_last,r.translit,p.translit,r.list_name,p.pic,b.name,p.about,p.cine From catalogs_products p Left join catalogs_rubrics r on r.id=p.rubric_id Left join catalogs_brends b on b.id=p.brend_id where p.count_modifications>0 and p.cine>0';
  4740 + $res = $this->db->getAll ($sql, array ());
  4741 + $list = array (
  4742 + 'ID',
  4743 + 'ID2',
  4744 + 'Item title',
  4745 + 'Destination URL',
  4746 + 'Image URL',
  4747 + 'Item subtitle',
  4748 + 'Item description',
  4749 + 'Item category',
  4750 + 'Price',
  4751 + 'Sale price',
  4752 + 'Contextual keywords',
  4753 + 'Item address'
  4754 + );
  4755 + File_FGetCSV::fputcsv ($handle, $list, ',');
  4756 + foreach ($res as $key => $row)
  4757 + {
  4758 + $url = "http://extremstyle.ua/" . $row[5] . "-catalogs/" . $row[6] . "-" . $row[2] . "/";
  4759 + $image = "http://extremstyle.ua/uploaded/pic/catalogs/products/" . $row[8];
  4760 + $subtitle = $row[1] . ' ' . $row[9];
  4761 + $list = array (
  4762 + $row[2],
  4763 + $row[2] . 'S',
  4764 + substr ($row[3], 0, 12),
  4765 + $url,
  4766 + $image,
  4767 + substr ($subtitle, 0, 12),
  4768 + "Ãàðàíòèÿ êà÷åñòâà",
  4769 + $row[1],
  4770 + round ($row[11]) . ' UAH',
  4771 + round ($row[4]) . ' UAH',
  4772 + $row[1] . ' ' . $row[9]
  4773 + );
  4774 + // print_r($list);
  4775 + unset ($row[5]);
  4776 + unset ($row[6]);
  4777 + unset ($row[7]);
  4778 + File_FGetCSV::fputcsv ($handle, $list, ',');
  4779 + }
  4780 + fclose ($handle);
  4781 + $params = array (
  4782 + 'file' => $tmpfname,
  4783 + 'contenttype' => 'application/xls',
  4784 + 'contentdisposition' => array (
  4785 + HTTP_DOWNLOAD_ATTACHMENT,
  4786 + 'products_feed.csv'
  4787 + ),
  4788 + 'cache' => false
  4789 + );
  4790 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4791 + if ($error === true)
  4792 + {
  4793 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4794 + }
  4795 +
  4796 + unlink ($tmpfname);
  4797 + }
  4798 +
  4799 + function exportOrdersCSV ()
  4800 + {
  4801 + $tmpfname = "tmp/orders.csv";
  4802 + $handle = fopen ($tmpfname, "w");
  4803 + $res = $this->db->getAll ('select o.id,o.name,o.email,o.adress,o.phone,o.total From catalogs_orders o LEFT JOIN zlo_users u ON u.id=o.user_id WHERE u.`group`=2 order by o.id desc');
  4804 + foreach ($res as $key => $row)
  4805 + {
  4806 + $products = $this->db->getAll ("select p.* from catalogs_orders_products op
3404 4807 LEFT JOIN catalogs_modifications m ON m.code=op.code
3405 4808 LEFT JOIN catalogs_products p ON p.id=m.product_id
3406   - where op.order_id=? GROUP BY p.id",array($row[0]),DB_FETCHMODE_ASSOC);
3407   - $arr_products = array();
3408   - foreach($products as $p){
3409   - $arr_products[] = $p['name'];
3410   - }
3411   - $row[6] = implode(', ',$arr_products);
3412   - File_FGetCSV::fputcsv($handle,$row,';');
3413   - }
3414   - fclose($handle);
3415   - $params = array(
3416   - 'file' => $tmpfname,
3417   - 'contenttype' => 'application/xls',
3418   - 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'orders.csv'),
3419   - 'cache' => false
3420   - );
3421   - $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë
3422   - if ($error === true) {
3423   - //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
3424   - }
3425   -
3426   - unlink($tmpfname);
3427   - }
3428   -
3429   - function deleteProductParams($product_id){
3430   - $sql = "delete from catalogs_products_params where product_id=?";
3431   - $this->db->query($sql,array($product_id));
3432   - }
3433   -
3434   - function saveProductParams($product_id,$pruduct_params){
3435   - $this->deleteProductParams($product_id);
3436   - $array_params = explode("=",$pruduct_params);
3437   - foreach($array_params as $row){
3438   - $arr = explode('*',$row);
3439   - $this->db->autoExecute("catalogs_products_params",array('product_id'=>$product_id,'name'=>$arr[0],'size'=>$arr[1],'metka'=>$arr[2]),DB_AUTOQUERY_INSERT);
3440   - }
3441   - }
3442   -
3443   - function getProductParams($product_id){
3444   - $sql = "select * from catalogs_products_params where product_id=? order by id";
3445   - $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC);
3446   - return $row;
3447   - }
3448   -
3449   - function viewProductParams($product_id){
3450   - $this->tpl->assign('params',$this->getProductParams($product_id));
3451   - }
3452   -
3453   -/**
3454   - * íóæíî äëÿ ïðîñìîòðà ïîâòîðåíèå ñòðîê â ôàéëå èìïîðòà
3455   - */
3456   -function saveTmpProduct ($row, $product_id)
3457   -{
3458   - if ($product_id > 0)
  4809 + where op.order_id=? GROUP BY p.id", array (
  4810 + $row[0]
  4811 + ), DB_FETCHMODE_ASSOC);
  4812 + $arr_products = array ();
  4813 + foreach ($products as $p)
  4814 + {
  4815 + $arr_products[] = $p['name'];
  4816 + }
  4817 + $row[6] = implode (', ', $arr_products);
  4818 + File_FGetCSV::fputcsv ($handle, $row, ';');
  4819 + }
  4820 + fclose ($handle);
  4821 + $params = array (
  4822 + 'file' => $tmpfname,
  4823 + 'contenttype' => 'application/xls',
  4824 + 'contentdisposition' => array (
  4825 + HTTP_DOWNLOAD_ATTACHMENT,
  4826 + 'orders.csv'
  4827 + ),
  4828 + 'cache' => false
  4829 + );
  4830 + $error = HTTP_Download::staticSend ($params, false); // îòäà¸ì ôàéë
  4831 + if ($error === true)
  4832 + {
  4833 + // åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè
  4834 + }
  4835 +
  4836 + unlink ($tmpfname);
  4837 + }
  4838 +
  4839 + function deleteProductParams ($product_id)
  4840 + {
  4841 + $sql = "delete from catalogs_products_params where product_id=?";
  4842 + $this->db->query ($sql, array (
  4843 + $product_id
  4844 + ));
  4845 + }
  4846 +
  4847 + function saveProductParams ($product_id, $pruduct_params)
  4848 + {
  4849 + $this->deleteProductParams ($product_id);
  4850 + $array_params = explode ("=", $pruduct_params);
  4851 + foreach ($array_params as $row)
  4852 + {
  4853 + $arr = explode ('*', $row);
  4854 + $this->db->autoExecute ("catalogs_products_params", array (
  4855 + 'product_id' => $product_id,
  4856 + 'name' => $arr[0],
  4857 + 'size' => $arr[1],
  4858 + 'metka' => $arr[2]
  4859 + ), DB_AUTOQUERY_INSERT);
  4860 + }
  4861 + }
  4862 +
  4863 + function getProductParams ($product_id)
  4864 + {
  4865 + $sql = "select * from catalogs_products_params where product_id=? order by id";
  4866 + $row = $this->db->getAll ($sql, array (
  4867 + $product_id
  4868 + ), DB_FETCHMODE_ASSOC);
  4869 + return $row;
  4870 + }
  4871 +
  4872 + function viewProductParams ($product_id)
  4873 + {
  4874 + $this->tpl->assign ('params', $this->getProductParams ($product_id));
  4875 + }
  4876 +
  4877 + /**
  4878 + * íóæíî äëÿ ïðîñìîòðà ïîâòîðåíèå ñòðîê â ôàéëå èìïîðòà
  4879 + */
  4880 +
  4881 + function saveTmpProduct ($row, $product_id)
  4882 + {
  4883 + if ($product_id > 0)
  4884 + {
  4885 + $this->db->autoExecute ("catalogs_tmp_products", array (
  4886 + 'name' => $row[3],
  4887 + 'product_id' => $product_id
  4888 + ), DB_AUTOQUERY_INSERT);
  4889 + }
  4890 + }
  4891 +
  4892 + function clearTmpProduct ()
  4893 + {
  4894 + $sql = "TRUNCATE TABLE catalogs_tmp_products";
  4895 + $this->db->query ($sql, array ());
  4896 + }
  4897 +
  4898 + function viewTmpProducts ()
  4899 + {
  4900 + $sql = "
  4901 + SELECT count( name ) AS cn, name
  4902 + FROM catalogs_tmp_products
  4903 + GROUP BY name
  4904 + ORDER BY name";
  4905 + $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  4906 + $this->tpl->assign ('list', $row);
  4907 + $this->tpl->assign ('list_total', $this->db->getOne ("
  4908 + select count(*)
  4909 + from catalogs_tmp_products
  4910 + "));
  4911 + }
  4912 +
  4913 + function deleteGalleryProduct ($id)
  4914 + {
  4915 + $sql = "select * from catalogs_gallery where product_id=?";
  4916 + $res = $this->db->getAll ($sql, array (
  4917 + $id
  4918 + ), DB_FETCHMODE_ASSOC);
  4919 + foreach ($res as $row)
  4920 + {
  4921 + @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/gallery/{$row['pic']}");
  4922 + $this->db->query ("delete from catalogs_gallery where id=?", array (
  4923 + $row['id']
  4924 + ));
  4925 + }
  4926 + }
  4927 +
  4928 + function saveGalleryPics ($product_id, $pruduct_gallery_pics)
  4929 + {
  4930 + $this->deleteGalleryProduct ($product_id);
  4931 + if (strlen ($pruduct_gallery_pics) > 0)
  4932 + {
  4933 + $arr = explode (",", $pruduct_gallery_pics);
  4934 + foreach ($arr as $pic)
  4935 + {
  4936 + $pic = trim ($pic);
  4937 + $id = $this->db->nextId ('mySequence_catalogs_gallery');
  4938 + $fields_values = array (
  4939 + 'id' => $id,
  4940 + 'name' => $pic,
  4941 + 'product_id' => $product_id
  4942 + );
  4943 + $upload['pic'] = array (
  4944 + 'tmp_name' => "./uploaded/pic/catalogs/products/big/$pic",
  4945 + 'name' => $pic
  4946 + );
  4947 + $fields_values['pic'] = upload_ImageResize ($upload['pic'], array (
  4948 + 'width' => "100",
  4949 + 'height' => "100",
  4950 + 'upload_path' => "./uploaded/pic/catalogs/products/gallery/"
  4951 + ));
  4952 + $fields_values['pic_big'] = $pic;
  4953 +
  4954 + $this->db->autoExecute ("catalogs_gallery", $fields_values, DB_AUTOQUERY_INSERT);
  4955 + }
  4956 + }
  4957 + }
  4958 +
  4959 + function importCSV ($upload)
3459 4960 {
3460   - $this->db->autoExecute ("catalogs_tmp_products", array (
3461   - 'name' => $row [3],
3462   - 'product_id' => $product_id
3463   - ), DB_AUTOQUERY_INSERT);
  4961 + error_reporting (0);
  4962 +
  4963 + if ($upload['file']['name'] == "file_1.csv")
  4964 + {
  4965 + print "Îøèáêà! Ôàéë öåí!";
  4966 + exit ();
  4967 + }
  4968 +
  4969 + // $arr_line = file($upload['file']['tmp_name']);
  4970 + $f = fopen ($upload['file']['tmp_name'], "r") or die ("Îøèáêà!");
  4971 +
  4972 + // print"<pre>";
  4973 +
  4974 + $this->clearTmpProduct ();
  4975 +
  4976 + for ($i = 0; $row_line = File_FGetCSV::fgetcsv ($f, 15000, ";"); $i ++)
  4977 + {
  4978 + // foreach($arr_line as $line){
  4979 + // $row_line = fgetcsv(";",$line);
  4980 + $rubric_id = $this->import_saveRubric ($row_line[0], 0);
  4981 + $rubric_parent_id = $this->import_saveRubric ($row_line[1], $rubric_id);
  4982 + $brend_id = $this->import_saveBrend ($row_line[2], $rubric_parent_id);
  4983 + $pruduct_name = trim ($row_line[3]);
  4984 + $pruduct_about = trim ($row_line[4]);
  4985 + $pruduct_text = trim ($row_line[5]);
  4986 + $sex = explode (',', $row_line[8]);
  4987 + $pruduct_sex = array ();
  4988 +
  4989 + foreach ($sex as $s)
  4990 + {
  4991 + switch (trim ($s))
  4992 + {
  4993 + case 'ìóæñêîé' :
  4994 + $pruduct_sex[] = 1;
  4995 + break;
  4996 + case 'æåíñêèé' :
  4997 + $pruduct_sex[] = 2;
  4998 + break;
  4999 + case 'äåòñêèé' :
  5000 + $pruduct_sex[] = 3;
  5001 + break;
  5002 + case 'óíèñåêñ' :
  5003 + $pruduct_sex[] = 4;
  5004 + break;
  5005 + default :
  5006 + $pruduct_sex[] = array ();
  5007 + break;
  5008 + }
  5009 + }
  5010 +
  5011 + $pruduct_date = trim ($row_line[9]);
  5012 + $pruduct_cine = trim ($row_line[10]);
  5013 + $pruduct_cine_last = trim ($row_line[11]);
  5014 +
  5015 + if ($pruduct_cine < 1)
  5016 + {
  5017 + $pruduct_cine = $pruduct_cine_last;
  5018 + $pruduct_cine_last = 0;
  5019 + }
  5020 +
  5021 + $pruduct_akcii_id = trim ($row_line[12]);
  5022 + $pruduct_strnumber = trim ($row_line[13]);
  5023 + $pruduct_active = trim ($row_line[14]);
  5024 + $pruduct_params = trim ($row_line[15]);
  5025 + $pruduct_pic_tmp = trim ($row_line[17]);
  5026 + $pruduct_gallery_pics = trim ($row_line[18]);
  5027 + $pruduct_video = trim ($row_line[16]);
  5028 + $pruduct_update_id = $this->getProductID_R ($pruduct_name, $rubric_parent_id);
  5029 +
  5030 + if ($pruduct_update_id > 0)
  5031 + {
  5032 + $row_product = $this->db->getRow ('
  5033 + select update_text, about, text
  5034 + from catalogs_products
  5035 + where id=?', array (
  5036 + $pruduct_update_id
  5037 + ), DB_FETCHMODE_ASSOC);
  5038 +
  5039 + // íå îáíîâëÿòü ïðè èìïîðòå?
  5040 + // 0 - îáíîâëÿòü
  5041 + // 1 - íå îáíîâëÿòü
  5042 + if ($row_product['update_text'] == 1)
  5043 + {
  5044 + // about - ukr
  5045 + $pruduct_about = $row_product['about'];
  5046 +
  5047 + // text - ru
  5048 + $pruduct_text = $row_product['text'];
  5049 + }
  5050 + }
  5051 +
  5052 + $upload_pruduct = (strlen ($pruduct_pic_tmp) > 0 && is_file ("./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp")) ? array (
  5053 + 'pic' => array (
  5054 + 'tmp_name' => "./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp",
  5055 + 'name' => $pruduct_pic_tmp,
  5056 + 'big' => true
  5057 + )
  5058 + ) : null;
  5059 +
  5060 + $product_id = $this->saveProduct (array (
  5061 + 'rubric_id' => $rubric_parent_id,
  5062 + 'rubric_parent_id' => $rubric_parent_id,
  5063 + 'brend_id' => $brend_id,
  5064 + 'name' => $pruduct_name,
  5065 + 'about' => $pruduct_about,
  5066 + 'update_text' => isset ($row_product['update_text']) ? $row_product['update_text'] : 0,
  5067 + 'text' => $pruduct_text,
  5068 + 'video_code' => $pruduct_video,
  5069 + 'sex' => $pruduct_sex,
  5070 + 'date' => $pruduct_date,
  5071 + 'cine' => $pruduct_cine,
  5072 + 'cine_last' => $pruduct_cine_last,
  5073 + 'akcii_id' => $pruduct_akcii_id,
  5074 + 'strnumber' => $pruduct_strnumber,
  5075 + 'active' => $pruduct_active,
  5076 + 'meta_title' => $pruduct_name,
  5077 + 'meta_description' => $pruduct_name,
  5078 + 'meta_keywords' => $pruduct_name,
  5079 + 'meta_about' => $pruduct_name,
  5080 + 'filter' => $this->import_saveFilters ($rubric_parent_id, $row_line[6]),
  5081 + 'filter2' => $this->import_saveFilters2 ($rubric_parent_id, $row_line[7]),
  5082 + 'years' => $this->import_saveYear ($rubric_parent_id, $pruduct_date),
  5083 + 'akcii' => array (),
  5084 + 'update_id' => $pruduct_update_id
  5085 + ), $upload_pruduct);
  5086 +
  5087 + // print $pruduct_update_id;exit;
  5088 + $this->saveProductParams ($product_id, $pruduct_params);
  5089 + $this->saveGalleryPics ($product_id, $pruduct_gallery_pics);
  5090 + // íå óäàëÿåì !
  5091 + // $this->deleteProductModifications ($product_id, true);
  5092 + $m_i = 0;
  5093 +
  5094 + for ($i = 19; $i < count ($row_line); $i ++)
  5095 + {
  5096 + $arr_mod = trim ($row_line[$i]);
  5097 +
  5098 + if (strlen ($arr_mod) > 0)
  5099 + {
  5100 + $row_mod = explode ("=", $arr_mod);
  5101 +
  5102 + $upload_mod = (strlen ($row_mod[3]) > 0 && is_file ("./uploaded/pic/catalogs/modifications/big/" . $row_mod[3])) ? array (
  5103 + 'pic' => array (
  5104 + 'tmp_name' => "./uploaded/pic/catalogs/modifications/big/" . $row_mod[3],
  5105 + 'name' => $row_mod[3],
  5106 + 'big' => true
  5107 + )
  5108 + ) : null;
  5109 +
  5110 + $size_mod = explode ("*", $row_mod[1]);
  5111 + $rost = (isset ($size_mod[1])) ? $size_mod[1] : '';
  5112 +
  5113 + // íàõîäèì modifications_id
  5114 + $modifications_id = $this->getModification ($product_id, $row_mod[0]);
  5115 +
  5116 + // ñîõðàíÿåì
  5117 + $this->SaveModification (array (
  5118 + 'product_id' => $product_id,
  5119 + 'code' => $row_mod[0],
  5120 + 'size' => $size_mod[0],
  5121 + 'rost' => $rost,
  5122 + 'color' => $row_mod[2],
  5123 + 'active' => $row_mod[4],
  5124 + 'update_id' => (int) $modifications_id
  5125 + ), $upload_mod);
  5126 +
  5127 + if ($row_mod[4] > 0)
  5128 + {
  5129 + $m_i ++;
  5130 + }
  5131 + }
  5132 + }
  5133 +
  5134 + $this->updateProduct_countModification ($product_id, $m_i);
  5135 +
  5136 + // $this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]);
  5137 + // $strnumber = $this->getProductID($row_line[3]); $this->save_keysProductsFilters($id,$data);
  5138 + // print_r($row_line);
  5139 +
  5140 + $this->saveTmpProduct ($row_line, $product_id);
  5141 + if (($i % 30) == 0)
  5142 + {
  5143 + sleep (1);
  5144 + }
  5145 + }
  5146 + // print"</pre>";
3464 5147 }
3465   -}
3466   -
3467   -function clearTmpProduct ()
3468   -{
3469   - $sql = "TRUNCATE TABLE catalogs_tmp_products";
3470   - $this->db->query ($sql, array ());
3471   -}
3472   -
3473   -function viewTmpProducts ()
3474   -{
3475   - $sql = "
3476   - SELECT count( name ) AS cn, name
3477   - FROM catalogs_tmp_products
3478   - GROUP BY name
3479   - ORDER BY name";
3480   - $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
3481   - $this->tpl->assign ('list', $row);
3482   - $this->tpl->assign ('list_total', $this->db->getOne ("
3483   - select count(*)
3484   - from catalogs_tmp_products
3485   - "));
3486   -}
3487   -
3488   - function deleteGalleryProduct($id){
3489   - $sql = "select * from catalogs_gallery where product_id=?";
3490   - $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
3491   - foreach($res as $row){
3492   - @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/gallery/{$row['pic']}");
3493   - $this->db->query("delete from catalogs_gallery where id=?",array($row['id']));
  5148 +
  5149 + function importCSV_cine ($upload)
  5150 + {
  5151 + if ($upload['file']['name'] != "file_1.csv")
  5152 + {
  5153 + print "Îøèáêà! Òîëüêî file_1.csv";
  5154 + exit ();
3494 5155 }
3495   - }
3496   -
3497   - function saveGalleryPics($product_id,$pruduct_gallery_pics){
3498   - $this->deleteGalleryProduct($product_id);
3499   - if(strlen($pruduct_gallery_pics)>0){
3500   - $arr = explode(",",$pruduct_gallery_pics);
3501   - foreach($arr as $pic){
3502   - $pic = trim($pic);
3503   - $id = $this->db->nextId('mySequence_catalogs_gallery');
3504   - $fields_values = array('id'=>$id,'name' => $pic,'product_id' => $product_id);
3505   - $upload['pic'] = array('tmp_name'=>"./uploaded/pic/catalogs/products/big/$pic",'name'=>$pic);
3506   - $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"100",'height'=>"100",'upload_path'=>"./uploaded/pic/catalogs/products/gallery/"));
3507   - $fields_values['pic_big'] = $pic;
3508   -
3509   - $this->db->autoExecute("catalogs_gallery",$fields_values,DB_AUTOQUERY_INSERT);
  5156 +
  5157 + $arr_line = file ($upload['file']['tmp_name']);
  5158 +
  5159 + // print"<pre>";
  5160 + $i = 0;
  5161 + $mktime = mktime ();
  5162 + foreach ($arr_line as $line)
  5163 + {
  5164 + $row_line = explode (";", $line);
  5165 + $this->import_updateProductCine ($this->getModificationProduct_id ($row_line[0]), $row_line, $line, $mktime);
  5166 +
  5167 + if (($i % 30) == 0)
  5168 + {
  5169 + sleep (1);
  5170 + }
  5171 +
  5172 + $i ++;
3510 5173 }
  5174 + }
  5175 +
  5176 + function loadCSV_cine ($upload)
  5177 + {
  5178 + if ($upload['file']['name'] != "file_1.csv")
  5179 + {
  5180 + print "Îøèáêà! Òîëüêî file_1.csv";
  5181 + exit ();
3511 5182 }
3512   - }
3513   -
3514   - function importCSV ($upload)
3515   - {
3516   - error_reporting (0);
3517   -
3518   - if ($upload['file']['name'] == "file_1.csv")
3519   - {
3520   - print "Îøèáêà! Ôàéë öåí!";
3521   - exit ();
3522   - }
3523   -
3524   - // $arr_line = file($upload['file']['tmp_name']);
3525   - $f = fopen ($upload['file']['tmp_name'], "r") or die ("Îøèáêà!");
3526   -
3527   - // print"<pre>";
3528   -
3529   - $this->clearTmpProduct();
3530   -
3531   - for ($i = 0; $row_line = File_FGetCSV::fgetcsv ($f, 15000, ";"); $i ++)
3532   - {
3533   - // foreach($arr_line as $line){
3534   - // $row_line = fgetcsv(";",$line);
3535   - $rubric_id = $this->import_saveRubric ($row_line [0], 0);
3536   - $rubric_parent_id = $this->import_saveRubric ($row_line [1], $rubric_id);
3537   - $brend_id = $this->import_saveBrend ($row_line [2], $rubric_parent_id);
3538   - $pruduct_name = trim ($row_line [3]);
3539   - $pruduct_about = trim ($row_line [4]);
3540   - $pruduct_text = trim ($row_line [5]);
3541   - $sex = explode (',', $row_line [8]);
3542   - $pruduct_sex = array ();
3543   -
3544   - foreach ($sex as $s)
3545   - {
3546   - switch (trim ($s))
3547   - {
3548   - case 'ìóæñêîé' :
3549   - $pruduct_sex [] = 1;
3550   - break;
3551   - case 'æåíñêèé' :
3552   - $pruduct_sex [] = 2;
3553   - break;
3554   - case 'äåòñêèé' :
3555   - $pruduct_sex [] = 3;
3556   - break;
3557   - case 'óíèñåêñ' :
3558   - $pruduct_sex [] = 4;
3559   - break;
3560   - default :
3561   - $pruduct_sex [] = array ();
3562   - break;
3563   - }
3564   - }
3565   -
3566   - $pruduct_date = trim ($row_line [9]);
3567   - $pruduct_cine = trim ($row_line [10]);
3568   - $pruduct_cine_last = trim ($row_line [11]);
3569   -
3570   - if ($pruduct_cine < 1)
3571   - {
3572   - $pruduct_cine = $pruduct_cine_last;
3573   - $pruduct_cine_last = 0;
3574   - }
3575   -
3576   - $pruduct_akcii_id = trim ($row_line [12]);
3577   - $pruduct_strnumber = trim ($row_line [13]);
3578   - $pruduct_active = trim ($row_line [14]);
3579   - $pruduct_params = trim ($row_line [15]);
3580   - $pruduct_pic_tmp = trim ($row_line [17]);
3581   - $pruduct_gallery_pics = trim ($row_line [18]);
3582   - $pruduct_video = trim ($row_line [16]);
3583   - $pruduct_update_id = $this->getProductID_R ($pruduct_name, $rubric_parent_id);
3584   -
3585   - if ($pruduct_update_id > 0)
3586   - {
3587   - $row_product = $this->db->getRow ('
3588   - select update_text, about, text
3589   - from catalogs_products
3590   - where id=?', array (
3591   - $pruduct_update_id
3592   - ),
3593   - DB_FETCHMODE_ASSOC
3594   - );
3595   -
3596   - // íå îáíîâëÿòü ïðè èìïîðòå?
3597   - // 0 - îáíîâëÿòü
3598   - // 1 - íå îáíîâëÿòü
3599   - if ($row_product['update_text'] == 1)
3600   - {
3601   - // about - ukr
3602   - $pruduct_about = $row_product['about'];
3603   -
3604   - // text - ru
3605   - $pruduct_text = $row_product['text'];
3606   - }
3607   - }
3608   -
3609   - $upload_pruduct = (strlen ($pruduct_pic_tmp) > 0 && is_file ("./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp")) ? array (
3610   - 'pic' => array (
3611   - 'tmp_name' => "./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp",
3612   - 'name' => $pruduct_pic_tmp,
3613   - 'big' => true
3614   - )
3615   - ) : null;
3616   -
3617   - $product_id = $this->saveProduct (array (
3618   - 'rubric_id' => $rubric_parent_id,
3619   - 'rubric_parent_id' => $rubric_parent_id,
3620   - 'brend_id' => $brend_id,
3621   - 'name' => $pruduct_name,
3622   - 'about' => $pruduct_about,
3623   - 'update_text' => isset ($row_product['update_text']) ? $row_product['update_text'] : 0,
3624   - 'text' => $pruduct_text,
3625   - 'video_code' => $pruduct_video,
3626   - 'sex' => $pruduct_sex,
3627   - 'date' => $pruduct_date,
3628   - 'cine' => $pruduct_cine,
3629   - 'cine_last' => $pruduct_cine_last,
3630   - 'akcii_id' => $pruduct_akcii_id,
3631   - 'strnumber' => $pruduct_strnumber,
3632   - 'active' => $pruduct_active,
3633   - 'meta_title' => $pruduct_name,
3634   - 'meta_description' => $pruduct_name,
3635   - 'meta_keywords' => $pruduct_name,
3636   - 'meta_about' => $pruduct_name,
3637   - 'filter' => $this->import_saveFilters ($rubric_parent_id, $row_line [6]),
3638   - 'filter2' => $this->import_saveFilters2 ($rubric_parent_id, $row_line [7]),
3639   - 'years' => $this->import_saveYear ($rubric_parent_id, $pruduct_date),
3640   - 'akcii' => array (),
3641   - 'update_id' => $pruduct_update_id
3642   - ), $upload_pruduct);
3643   -
3644   - // print $pruduct_update_id;exit;
3645   - $this->saveProductParams ($product_id, $pruduct_params);
3646   - $this->saveGalleryPics ($product_id, $pruduct_gallery_pics);
3647   - // íå óäàëÿåì !
3648   - //$this->deleteProductModifications ($product_id, true);
3649   - $m_i = 0;
3650   -
3651   - for ($i = 19; $i < count ($row_line); $i ++)
3652   - {
3653   - $arr_mod = trim ($row_line [$i]);
3654   -
3655   - if (strlen ($arr_mod) > 0)
3656   - {
3657   - $row_mod = explode ("=", $arr_mod);
3658   -
3659   - $upload_mod = (strlen ($row_mod [3]) > 0 && is_file ("./uploaded/pic/catalogs/modifications/big/" . $row_mod [3])) ? array (
3660   - 'pic' => array (
3661   - 'tmp_name' => "./uploaded/pic/catalogs/modifications/big/" . $row_mod [3],
3662   - 'name' => $row_mod [3],
3663   - 'big' => true
3664   - )
3665   - ) : null;
3666   -
3667   - $size_mod = explode ("*", $row_mod [1]);
3668   - $rost = (isset ($size_mod [1])) ? $size_mod [1] : '';
3669   -
3670   - // íàõîäèì modifications_id
3671   - $modifications_id = $this->getModification($product_id, $row_mod[0]);
3672   -
3673   - // ñîõðàíÿåì
3674   - $this->SaveModification (array (
3675   - 'product_id' => $product_id,
3676   - 'code' => $row_mod [0],
3677   - 'size' => $size_mod [0],
3678   - 'rost' => $rost,
3679   - 'color' => $row_mod [2],
3680   - 'active' => $row_mod [4],
3681   - 'update_id' => (int)$modifications_id
3682   - ), $upload_mod);
3683   -
3684   - if ($row_mod[4] > 0)
3685   - {
3686   - $m_i ++;
3687   - }
3688   - }
3689   - }
3690   -
3691   - $this->updateProduct_countModification ($product_id, $m_i);
3692   -
3693   - // $this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]);
3694   - // $strnumber = $this->getProductID($row_line[3]); $this->save_keysProductsFilters($id,$data);
3695   - // print_r($row_line);
3696   -
3697   - $this->saveTmpProduct ($row_line, $product_id);
3698   - if (($i % 30) == 0)
3699   - {
3700   - sleep (1);
3701   - }
3702   - }
3703   - // print"</pre>";
3704   - }
3705   -
3706   - function importCSV_cine ($upload)
3707   - {
3708   - if ($upload['file']['name'] != "file_1.csv")
3709   - {
3710   - print "Îøèáêà! Òîëüêî file_1.csv";
3711   - exit;
3712   - }
3713   -
3714   - $arr_line = file ($upload['file']['tmp_name']);
3715   -
3716   - //print"<pre>";
3717   - $i = 0;
3718   - $mktime = mktime();
3719   - foreach ($arr_line as $line)
3720   - {
3721   - $row_line = explode (";", $line);
3722   - $this->import_updateProductCine($this->getModificationProduct_id ($row_line[0]), $row_line, $line, $mktime);
3723   -
3724   - if (($i % 30) == 0)
3725   - {
3726   - sleep (1);
3727   - }
3728   -
3729   - $i++;
3730   - }
3731   -}
3732   -
3733   -function loadCSV_cine($upload)
3734   -{
3735   - if ($upload['file']['name'] != "file_1.csv")
  5183 +
  5184 + $file = $_SERVER['DOCUMENT_ROOT'] . "/cron/file_1.csv";
  5185 +
  5186 + // echo $file;
  5187 + // exit;
  5188 +
  5189 + move_uploaded_file ($upload['file']['tmp_name'], $file);
  5190 + }
  5191 +
  5192 + function is_loadCSV_cine ()
3736 5193 {
3737   - print "Îøèáêà! Òîëüêî file_1.csv";
3738   - exit;
  5194 + $is = is_file ($_SERVER['DOCUMENT_ROOT'] . '/cron/file_1.csv');
  5195 + $this->tpl->assign ('is', $is);
3739 5196 }
3740 5197  
3741   - $file = $_SERVER['DOCUMENT_ROOT'] . "/cron/file_1.csv";
3742   -
3743   - //echo $file;
3744   - //exit;
3745   -
3746   - move_uploaded_file ($upload['file']['tmp_name'], $file);
3747   -}
3748   -
3749   -function is_loadCSV_cine()
3750   -{
3751   - $is = is_file($_SERVER['DOCUMENT_ROOT'] . '/cron/file_1.csv');
3752   - $this->tpl->assign('is', $is);
3753   -}
3754   -
3755   -function CronImportCSV_cine($upload)
3756   -{
3757   - $this->importCSV_cine ($upload);
3758   -}
3759   -
3760   -function updateCountModificationProducts ()
3761   -{
3762   - $res = $this->db->getAll("
  5198 + function CronImportCSV_cine ($upload)
  5199 + {
  5200 + $this->importCSV_cine ($upload);
  5201 + }
  5202 +
  5203 + function updateCountModificationProducts ()
  5204 + {
  5205 + $res = $this->db->getAll ("
3763 5206 select id
3764 5207 from catalogs_products
3765 5208 ", array (), DB_FETCHMODE_ASSOC);
3766   -
3767   - $i = 0;
3768   -
3769   - foreach ($res as $row)
3770   - {
3771   - $count = $this->db->getOne ("
  5209 +
  5210 + $i = 0;
  5211 +
  5212 + foreach ($res as $row)
  5213 + {
  5214 + $count = $this->db->getOne ("
3772 5215 select count(*)
3773 5216 from catalogs_modifications
3774 5217 where product_id=? and active>0", array (
3775   - $row['id']
3776   - )
3777   - );
3778   -
3779   - $this->db->autoExecute ("catalogs_products", array (
3780   - 'count_modifications' => $count
3781   - ), DB_AUTOQUERY_UPDATE, "id='" . $row['id'] . "'");
3782   -
3783   - $i ++;
  5218 + $row['id']
  5219 + ));
  5220 +
  5221 + $this->db->autoExecute ("catalogs_products", array (
  5222 + 'count_modifications' => $count
  5223 + ), DB_AUTOQUERY_UPDATE, "id='" . $row['id'] . "'");
  5224 +
  5225 + $i ++;
  5226 + }
3784 5227 }
3785   -}
3786   -
3787   - function config_update($id,$value){
3788   - $this->db->autoExecute("catalogs_config",array('value'=>$value),DB_AUTOQUERY_UPDATE,"id='".$id."'");
3789   - }
3790   -
3791   - function view_config_value($id){
3792   - $r = $this->db->getOne("select value from catalogs_config where id=?",$id);
3793   - $this->tpl->assign("config",$r);
3794   - return $r;
3795   - }
3796   -
3797   - function addViewProduct($product_id){
  5228 +
  5229 + function config_update ($id, $value)
  5230 + {
  5231 + $this->db->autoExecute ("catalogs_config", array (
  5232 + 'value' => $value
  5233 + ), DB_AUTOQUERY_UPDATE, "id='" . $id . "'");
  5234 + }
  5235 +
  5236 + function view_config_value ($id)
  5237 + {
  5238 + $r = $this->db->getOne ("select value from catalogs_config where id=?", $id);
  5239 + $this->tpl->assign ("config", $r);
  5240 + return $r;
  5241 + }
  5242 +
  5243 + function addViewProduct ($product_id)
  5244 + {
3798 5245 $i = 0;
3799   - foreach($_SESSION['view_product'] as $id){
3800   - if($product_id==$id)$i++;
  5246 + foreach ($_SESSION['view_product'] as $id)
  5247 + {
  5248 + if ($product_id == $id)
  5249 + $i ++;
3801 5250 }
3802   - if($i==0)$_SESSION['view_product'][] = $product_id;
3803   - }
3804   -
3805   - function viewUserProducts($limit = "all"){ //unset($_SESSION['view_product']);
3806   - if(isset($_SESSION['view_product']) && count($_SESSION['view_product'])>0){
3807   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  5251 + if ($i == 0)
  5252 + $_SESSION['view_product'][] = $product_id;
  5253 + }
  5254 +
  5255 + function viewUserProducts ($limit = "all")
  5256 + { // unset($_SESSION['view_product']);
  5257 + if (isset ($_SESSION['view_product']) && count ($_SESSION['view_product']) > 0)
  5258 + {
  5259 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
3808 5260 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
3809 5261 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
3810   - WHERE catalogs_products.id IN (".implode(",",$_SESSION['view_product']).") ";
3811   - if($limit != "all")$sql .= "LIMIT ".$limit;
3812   - $res = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
3813   - $this->tpl->assign("products_view",$res);
3814   - }
3815   - }
3816   -
3817   - function viewSimilarProducts($product_id,$brend,$rubric_id,$mods){
3818   - IF($brend == 'Dakine'){
3819   - $rub_arr = array(14071,14069,14070,14072);
3820   - unset($rub_arr[array_search('rubric_id', $rub_arr)]);
3821   -
3822   - if(count($mods)>1){
3823   - $r = array();
3824   - foreach($mods as $key=>$mod){
3825   - $r[$key]['color'] = $mod['color'];
3826   - $row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC);
3827   - $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  5262 + WHERE catalogs_products.id IN (" . implode (",", $_SESSION['view_product']) . ") ";
  5263 + if ($limit != "all")
  5264 + $sql .= "LIMIT " . $limit;
  5265 + $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC);
  5266 + $this->tpl->assign ("products_view", $res);
  5267 + }
  5268 + }
  5269 +
  5270 + function viewSimilarProducts ($product_id, $brend, $rubric_id, $mods)
  5271 + {
  5272 + IF ($brend == 'Dakine')
  5273 + {
  5274 + $rub_arr = array (
  5275 + 14071,
  5276 + 14069,
  5277 + 14070,
  5278 + 14072
  5279 + );
  5280 + unset ($rub_arr[array_search ('rubric_id', $rub_arr)]);
  5281 +
  5282 + if (count ($mods) > 1)
  5283 + {
  5284 + $r = array ();
  5285 + foreach ($mods as $key => $mod)
  5286 + {
  5287 + $r[$key]['color'] = $mod['color'];
  5288 + $row = $this->db->getRow ("select * from catalogs_products where id=?", array (
  5289 + $product_id
  5290 + ), DB_FETCHMODE_ASSOC);
  5291 + $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
3828 5292 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
3829 5293 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
3830 5294 LEFT JOIN catalogs_modifications m ON m.product_id=catalogs_products.id
3831   - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5";
3832   - $r[$key]["products_similar_prev"] = $this->db->getAll($sql,array($row['cine'],$brend,$mod['color']),DB_FETCHMODE_ASSOC);
3833   -
3834   -
3835   - $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  5295 + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5";
  5296 + $r[$key]["products_similar_prev"] = $this->db->getAll ($sql, array (
  5297 + $row['cine'],
  5298 + $brend,
  5299 + $mod['color']
  5300 + ), DB_FETCHMODE_ASSOC);
  5301 +
  5302 + $sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
3836 5303 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
3837 5304 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
3838 5305 LEFT JOIN catalogs_modifications m ON m.product_id=catalogs_products.id
3839   - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5";
3840   - $r[$key]["products_similar_next"] = $this->db->getAll($sql,array($row['cine'],$brend,$mod['color']),DB_FETCHMODE_ASSOC);
3841   -
3842   -
3843   - }
3844   -//print_r($r);
3845   -$this->tpl->assign("products_similar",$r);
3846   - }
3847   - else{
3848   -
3849   - $row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC);
3850   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  5306 + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5";
  5307 + $r[$key]["products_similar_next"] = $this->db->getAll ($sql, array (
  5308 + $row['cine'],
  5309 + $brend,
  5310 + $mod['color']
  5311 + ), DB_FETCHMODE_ASSOC);
  5312 + }
  5313 + // print_r($r);
  5314 + $this->tpl->assign ("products_similar", $r);
  5315 + }
  5316 + else
  5317 + {
  5318 +
  5319 + $row = $this->db->getRow ("select * from catalogs_products where id=?", array (
  5320 + $product_id
  5321 + ), DB_FETCHMODE_ASSOC);
  5322 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
3851 5323 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
3852 5324 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
3853   - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5";
3854   - $res = $this->db->getAll($sql,array($row['cine'],$brend),DB_FETCHMODE_ASSOC);
3855   - $this->tpl->assign("products_similar_prev",$res);
3856   -
3857   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  5325 + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine<? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5";
  5326 + $res = $this->db->getAll ($sql, array (
  5327 + $row['cine'],
  5328 + $brend
  5329 + ), DB_FETCHMODE_ASSOC);
  5330 + $this->tpl->assign ("products_similar_prev", $res);
  5331 +
  5332 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
3858 5333 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
3859 5334 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
3860   - WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5";
3861   - $res = $this->db->getAll($sql,array($row['cine'],$brend),DB_FETCHMODE_ASSOC);
3862   - $this->tpl->assign("products_similar_next",$res);
3863   - }
3864   - } else{
3865   - $row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC);
3866   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  5335 + WHERE catalogs_products.rubric_id IN (" . implode (',', $rub_arr) . ") and catalogs_products.count_modifications>0 and catalogs_products.cine>? and catalogs_brends.name=? Order by catalogs_products.cine DESC LIMIT 5";
  5336 + $res = $this->db->getAll ($sql, array (
  5337 + $row['cine'],
  5338 + $brend
  5339 + ), DB_FETCHMODE_ASSOC);
  5340 + $this->tpl->assign ("products_similar_next", $res);
  5341 + }
  5342 + }
  5343 + else
  5344 + {
  5345 + $row = $this->db->getRow ("select * from catalogs_products where id=?", array (
  5346 + $product_id
  5347 + ), DB_FETCHMODE_ASSOC);
  5348 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
3867 5349 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
3868 5350 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
3869 5351 WHERE catalogs_products.rubric_id=? and catalogs_products.count_modifications>0 and catalogs_products.cine<? Order by catalogs_products.cine DESC LIMIT 5";
3870   - $res = $this->db->getAll($sql,array($row['rubric_id'],$row['cine']),DB_FETCHMODE_ASSOC);
3871   - $this->tpl->assign("products_similar_prev",$res);
3872   -
3873   - $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
  5352 + $res = $this->db->getAll ($sql, array (
  5353 + $row['rubric_id'],
  5354 + $row['cine']
  5355 + ), DB_FETCHMODE_ASSOC);
  5356 + $this->tpl->assign ("products_similar_prev", $res);
  5357 +
  5358 + $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products
3874 5359 LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
3875 5360 LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
3876 5361 WHERE catalogs_products.rubric_id=? and catalogs_products.count_modifications>0 and catalogs_products.cine>? Order by catalogs_products.cine DESC LIMIT 5";
3877   - $res = $this->db->getAll($sql,array($row['rubric_id'],$row['cine']),DB_FETCHMODE_ASSOC);
3878   - $this->tpl->assign("products_similar_next",$res);
3879   - }
3880   - }
3881   -
3882   - function displayCatalogsCurs(){
3883   - $this->tpl->assign("tpl",'catalogs_curs.tpl');
3884   - }
3885   -
3886   - function displayCatalogs(){
3887   - $this->tpl->assign("tpl",'catalogs.tpl');
3888   - }
3889   -
3890   - function displayProducts(){
3891   - $this->tpl->assign("tpl",'catalogs_product-list.tpl');
3892   - }
3893   -
3894   - function displayProductsTops(){
3895   - $this->tpl->assign("tpl",'catalogs_products_tops.tpl');
3896   - }
3897   -
3898   - function displayProductsHits(){
3899   - $this->tpl->assign("tpl",'catalogs_products_hits.tpl');
3900   - }
3901   -
3902   - function displayProductsHitsAll(){
3903   - $this->tpl->assign("tpl",'catalogs_products_hits_all.tpl');
3904   - }
3905   -
3906   - function displayBasket($count_products,$cine_products,$cine_products_discount,$discount){
3907   - $this->tpl->assign("count_products",$count_products);
3908   - $this->tpl->assign("cine_products",$cine_products);
3909   - $this->tpl->assign("cine_products_discount",$cine_products_discount);
3910   - $this->tpl->assign("discount",$discount);
3911   - $this->tpl->display('basket.tpl');
3912   - }
3913   -
3914   - function displayProduct(){
3915   - $this->tpl->assign("tpl",'catalogs_product.tpl');
3916   - }
3917   -
3918   - function displayProductBasket(){
3919   - $this->tpl->assign("tpl",'catalogs_basket.tpl');
3920   - }
3921   -
3922   - function displayBrends(){
3923   - $this->tpl->assign("tpl",'catalogs_brends.tpl');
3924   - }
3925   -
3926   - function displayBrend(){
3927   - $this->tpl->assign("tpl",'catalogs_brend.tpl');
3928   - }
3929   -
3930   - function displayCities(){
3931   - $this->tpl->assign("tpl",'catalogs_cities.tpl');
3932   - }
3933   -
3934   - function displayProductBasketSend(){
3935   - $this->tpl->assign("tpl",'catalogs_basket_send.tpl');
3936   - }
3937   -
3938   - function displayReg(){
3939   - $this->tpl->assign("tpl",'catalogs_reg.tpl');
3940   - }
3941   -
3942   - function displayEditUser(){
3943   - $this->tpl->assign("tpl",'catalogs_user_edit.tpl');
3944   - }
3945   -
3946   - function displayNoPsw(){
3947   - $this->tpl->assign("tpl",'catalogs_nopsw.tpl');
3948   - }
3949   -
3950   - function displayOrders(){
3951   - $this->tpl->assign("tpl",'catalogs_orders.tpl');
3952   - }
3953   -
3954   - function displayOrder(){
3955   - $this->tpl->assign("tpl",'catalogs_order.tpl');
3956   - }
3957   -
3958   - function displayUsers(){
3959   - $this->tpl->assign("tpl",'catalogs_users.tpl');
3960   - }
3961   -
3962   - function displayUser(){
3963   - $this->tpl->assign("tpl",'catalogs_user.tpl');
3964   - }
3965   -
3966   - function displayFilters(){
3967   - $this->tpl->assign("tpl",'catalogs_filters.tpl');
3968   - }
3969   -
3970   - function displayFilters2(){
3971   - $this->tpl->assign("tpl",'catalogs_filters2.tpl');
3972   - }
3973   -
3974   - function displayYears(){
3975   - $this->tpl->assign("tpl",'catalogs_years.tpl');
3976   - }
3977   -
3978   - function displayWinProducts(){
3979   - $this->tpl->display('catalogs_win_products.tpl');
3980   - }
3981   -
3982   - function displayModifications(){
3983   - $this->tpl->assign("tpl",'catalogs_modifications.tpl');
3984   - }
3985   -
3986   - function displayImport(){
3987   - $this->tpl->assign("tpl",'catalogs_import.tpl');
3988   - }
3989   -
3990   - function displayImportCine(){
3991   - $this->tpl->assign("tpl",'catalogs_import_cine.tpl');
3992   - }
3993   -
3994   - function displayAkcii(){
3995   - $this->tpl->assign("tpl",'catalogs_akcii.tpl');
3996   - }
3997   -
3998   - function displayCompare(){
3999   - $this->tpl->assign("tpl",'catalogs_compare.tpl');
4000   - }
4001   -
4002   - function displayTmpProducts(){
4003   - $this->tpl->assign("tpl",'catalogs_tmp_products.tpl');
4004   - }
4005   -
4006   -}
4007   -?>
4008 5362 \ No newline at end of file
  5363 + $res = $this->db->getAll ($sql, array (
  5364 + $row['rubric_id'],
  5365 + $row['cine']
  5366 + ), DB_FETCHMODE_ASSOC);
  5367 + $this->tpl->assign ("products_similar_next", $res);
  5368 + }
  5369 + }
  5370 +
  5371 + function displayCatalogsCurs ()
  5372 + {
  5373 + $this->tpl->assign ("tpl", 'catalogs_curs.tpl');
  5374 + }
  5375 +
  5376 + function displayCatalogs ()
  5377 + {
  5378 + $this->tpl->assign ("tpl", 'catalogs.tpl');
  5379 + }
  5380 +
  5381 + function displayProducts ()
  5382 + {
  5383 + $this->tpl->assign ("tpl", 'catalogs_product-list.tpl');
  5384 + }
  5385 +
  5386 + function displayProductsTops ()
  5387 + {
  5388 + $this->tpl->assign ("tpl", 'catalogs_products_tops.tpl');
  5389 + }
  5390 +
  5391 + function displayProductsHits ()
  5392 + {
  5393 + $this->tpl->assign ("tpl", 'catalogs_products_hits.tpl');
  5394 + }
  5395 +
  5396 + function displayProductsHitsAll ()
  5397 + {
  5398 + $this->tpl->assign ("tpl", 'catalogs_products_hits_all.tpl');
  5399 + }
  5400 +
  5401 + function displayBasket ($count_products, $cine_products, $cine_products_discount, $discount)
  5402 + {
  5403 + $this->tpl->assign ("count_products", $count_products);
  5404 + $this->tpl->assign ("cine_products", $cine_products);
  5405 + $this->tpl->assign ("cine_products_discount", $cine_products_discount);
  5406 + $this->tpl->assign ("discount", $discount);
  5407 + $this->tpl->display ('basket.tpl');
  5408 + }
  5409 +
  5410 + function displayProduct ()
  5411 + {
  5412 + $this->tpl->assign ("tpl", 'catalogs_product.tpl');
  5413 + }
  5414 +
  5415 + function displayProductBasket ()
  5416 + {
  5417 + $this->tpl->assign ("tpl", 'catalogs_basket.tpl');
  5418 + }
  5419 +
  5420 + function displayBrends ()
  5421 + {
  5422 + $this->tpl->assign ("tpl", 'catalogs_brends.tpl');
  5423 + }
  5424 +
  5425 + function displayBrend ()
  5426 + {
  5427 + $this->tpl->assign ("tpl", 'catalogs_brend.tpl');
  5428 + }
  5429 +
  5430 + function displayCities ()
  5431 + {
  5432 + $this->tpl->assign ("tpl", 'catalogs_cities.tpl');
  5433 + }
  5434 +
  5435 + function displayProductBasketSend ()
  5436 + {
  5437 + $this->tpl->assign ("tpl", 'catalogs_basket_send.tpl');
  5438 + }
  5439 +
  5440 + function displayReg ()
  5441 + {
  5442 + $this->tpl->assign ("tpl", 'catalogs_reg.tpl');
  5443 + }
  5444 +
  5445 + function displayEditUser ()
  5446 + {
  5447 + $this->tpl->assign ("tpl", 'catalogs_user_edit.tpl');
  5448 + }
  5449 +
  5450 + function displayNoPsw ()
  5451 + {
  5452 + $this->tpl->assign ("tpl", 'catalogs_nopsw.tpl');
  5453 + }
  5454 +
  5455 + function displayOrders ()
  5456 + {
  5457 + $this->tpl->assign ("tpl", 'catalogs_orders.tpl');
  5458 + }
  5459 +
  5460 + function displayOrder ()
  5461 + {
  5462 + $this->tpl->assign ("tpl", 'catalogs_order.tpl');
  5463 + }
  5464 +
  5465 + function displayUsers ()
  5466 + {
  5467 + $this->tpl->assign ("tpl", 'catalogs_users.tpl');
  5468 + }
  5469 +
  5470 + function displayUser ()
  5471 + {
  5472 + $this->tpl->assign ("tpl", 'catalogs_user.tpl');
  5473 + }
  5474 +
  5475 + function displayFilters ()
  5476 + {
  5477 + $this->tpl->assign ("tpl", 'catalogs_filters.tpl');
  5478 + }
  5479 +
  5480 + function displayFilters2 ()
  5481 + {
  5482 + $this->tpl->assign ("tpl", 'catalogs_filters2.tpl');
  5483 + }
  5484 +
  5485 + function displayYears ()
  5486 + {
  5487 + $this->tpl->assign ("tpl", 'catalogs_years.tpl');
  5488 + }
  5489 +
  5490 + function displayWinProducts ()
  5491 + {
  5492 + $this->tpl->display ('catalogs_win_products.tpl');
  5493 + }
  5494 +
  5495 + function displayModifications ()
  5496 + {
  5497 + $this->tpl->assign ("tpl", 'catalogs_modifications.tpl');
  5498 + }
  5499 +
  5500 + function displayImport ()
  5501 + {
  5502 + $this->tpl->assign ("tpl", 'catalogs_import.tpl');
  5503 + }
  5504 +
  5505 + function displayImportCine ()
  5506 + {
  5507 + $this->tpl->assign ("tpl", 'catalogs_import_cine.tpl');
  5508 + }
  5509 +
  5510 + function displayAkcii ()
  5511 + {
  5512 + $this->tpl->assign ("tpl", 'catalogs_akcii.tpl');
  5513 + }
  5514 +
  5515 + function displayCompare ()
  5516 + {
  5517 + $this->tpl->assign ("tpl", 'catalogs_compare.tpl');
  5518 + }
  5519 +
  5520 + function displayTmpProducts ()
  5521 + {
  5522 + $this->tpl->assign ("tpl", 'catalogs_tmp_products.tpl');
  5523 + }
  5524 +}
4009 5525 \ No newline at end of file
... ...