db = &$db; $this->tpl = &$tpl; $this->error = &$error; $this->cache = &$cache; } function trim(&$data){ foreach($data as $key=>$value){ if(is_array($value))$this->trim($value); else $data[$key] = stripslashes(trim($value)); } } function valid($data,$upload = null){ if(isset($data['name'])){ if( !preg_match("/.{1,100}/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ."; } if(isset($data['about_min'])){ if( !preg_match("/.+/is",$data['about_min']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Êðàòêîå îïèñàíèå."; } /* if(isset($data['text'])){ if( !preg_match("/.+/is",$data['text']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ïîëíîå îïèñàíèå."; } */ /* if(isset($data['cine'])){ if( !preg_match("/[0-9]+/",$data['cine']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Öåíà, òîëüêî öèôðû."; } */ if(isset($upload['pic']['name']) && $upload['pic']['tmp_name']){ $type = substr(strrchr($upload['pic']['name'],"."),1); if( !preg_match("/^(jpeg|jpg|gif|png|bmp)$/i",$type) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif."; } if(isset($upload['file']['name'])){ if( !preg_match("/\.csv$/i",$upload['file']['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ CSV ôàéë, òîëüêî csv."; } if(isset($data['order_name'])){ if( !preg_match("/.{1,100}/i",$data['order_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ)."; } if(isset($data['order_adress'])){ if( !preg_match("/.{1,200}/i",$data['order_adress']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Àäðåñ (Ìàêñèìóì 200 ñèìâîëîâ)."; } if(isset($data['order_phone2'])&& strlen($data['order_phone2'])>0){ if( !preg_match("/.{1,20}/i",$data['order_phone2']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Òåëåôîí (Ìàêñèìóì 70 ñèìâîëîâ)."; } if(isset($data['order_phone'])){ if( trim($data['order_phone']) == "" ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX)."; if( strlen(trim($data['order_phone']))<5 ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ìîáèëüíûé òåëåôîí (ôîðìàò: (0XX) XXX-XXXX)."; } if(isset($data['delivery']) && $data['delivery']==0){ $this->error[] = "Îøèáêà ââîäà ïîëÿ Äîñòàâêà."; } if(isset($data['user_name'])){ if( !preg_match("/.{1,100}/i",$data['user_name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ)."; } if(isset($data['order_city'])){ if( !preg_match("/.{1,100}/i",$data['order_city']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Ãîðîä (Ìàêñèìóì 100 ñèìâîëîâ)."; } if(isset($data['user_email'])){ if( !preg_match("/.{1,80}/i",$data['user_email']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø e-mail (Ìàêñèìóì 80 ñèìâîëîâ)."; } if(isset($data['user_login'])){ if( !preg_match("/.{1,100}/i",$data['user_login']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ëîãèí (Ìàêñèìóì 100 ñèìâîëîâ)."; elseif( $this->isLoginUser($data['user_login']) ) $this->error[] = "Îøèáêà òàêîé Ëîãèí óæå åñòü!"; } if(isset($data['you_login'])){ if( !$this->isLoginUser($data['you_login']) ) $this->error[] = "Òàêîãî ËÎÃÈÍÀ íåò â áàçå äàííûõ ñàéòà!"; } if(isset($data['user_psw'])){ if( !preg_match("/.{1,100}/i",$data['user_psw']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Âàø ïàðîëü (Ìàêñèìóì 100 ñèìâîëîâ)."; } return ( count($this->error) ) ? true : false; } function deleteRubric($id,$field="id"){ $sql = "select pic,id,parent_id from catalogs_rubrics where $field=?"; $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); foreach($res as $row){ @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/rubrics/{$row['pic']}"); $sql = "delete from catalogs_rubrics where id=?"; $this->db->query($sql,array($row['id'])); $this->deleteFiltersRubric_id($row['id']); $this->deleteFiltersRubric_id2($row['id']); $this->deleteYearsRubric_id($row['id']); $this->deleteProductsRubric($row['id']); $this->deleteRubric($row['id'],"parent_id"); } } function deleteProductPics($id,$pics = array('pic_big','pic','pic2')){ $sql = "select pic_big,pic,pic2 from catalogs_products where id=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}"); if(in_array('pic',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/{$row['pic']}"); if(in_array('pic2',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/2/{$row['pic2']}"); } function deleteProduct($id){ $this->deleteProductPics($id); $sql = "delete from catalogs_products where id=?"; $this->db->query($sql,array($id)); $this->delete_keysProductsFilters($id); $this->delete_keysProductsFilters2($id); $this->delete_keysProductsAkcii($id); $this->delete_keysProductsYears($id); $this->delete_keysProductsCities($id); $this->deleteProductModifications($id); } function deleteProductsRubric($id){ $res = $this->db->getAll("select id from catalogs_products where rubric_id=?",array($id),DB_FETCHMODE_ASSOC); foreach($res as $row){ $this->deleteProduct($row['id']); $this->deleteGalleryProduct($row['id']); } } function PhotosCheck($id_s,$check_s = array()){ $sql = "UPDATE gallery SET active = ? WHERE id =?"; foreach($id_s as $id){ $this->db->query($sql,array(0,$id)); } if(count($check_s)){ foreach($check_s as $id){ $this->db->query($sql,array(1,$id)); } } } function viewRubrics($id = 0,$parent_id = 0){ // print $parent_id."
"; global $rubrics; //if(!$this->cache->cacheLife("cache_sql_rubrics")){ //$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"; $sql = " select a.name, a.name_ukr, a.id, a.parent_id, a.level, a.sort, a.sort_cost, a.list_name, a.list_name_ukr, a.translit, a.pic, a.top, ( select b.translit from catalogs_rubrics b where b.parent_id=a.id order by b.sort limit 1 ) as r_pid2, ( select b.id from catalogs_rubrics b where b.parent_id=a.id order by b.sort limit 1 ) as r_pid from catalogs_rubrics a where a.parent_id=? group by a.id order by a.sort asc "; $res = $this->db->query($sql,array($id)); while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){ $rubrics[] = $row; //print $row['id']."
"; if(in_array($row['id'],$this->getParentIdRubric($parent_id))){$this->viewRubrics($row['id']);} // if($row['level']==0){$this->viewRubrics($row['id']);} } // $this->cache->cacheSave($rubrics,130); //}else $count = $this->cache->sql_result; $this->tpl->assign("rubrics",$rubrics); } function getParentIdRubric($id){ //$ids = array(); global $ids; if(!count($ids))$ids = array(); while($id>0){ $row = $this->db->getRow('select id,parent_id from catalogs_rubrics where id=?',array($id),DB_FETCHMODE_ASSOC); //if(isset($row['id'])) $ids[] = $row['id']; $id = $row['parent_id']; } //print_r($ids); // sort($ids); return $ids; } function viewRubricsAll ($id = 0) { global $rubrics; $sql = " SELECT a.name, a.name_ukr, a.id, a.parent_id, a.level, a.sort, a.sort_cost, a.list_name, a.list_name_ukr, a.translit, a.pic, a.top FROM catalogs_rubrics a WHERE parent_id=? ORDER BY sort asc "; $res = $this->db->query($sql,array($id)); while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)) { $rubrics[] = $row; $this->viewRubricsAll($row['id']); } $this->tpl->assign("rubrics",$rubrics); } function viewRubrics_begin ($item = 'parents',$lang = 'ru') { //if(!$this->cache->cacheLife("cache_sql_rubrics_$item"."_".$lang)){ $sql = " SELECT a.name".(($lang=='ukr')?'_ukr':'')." as name, a.id, a.parent_id, a.level, a.sort, a.sort_cost, a.list_name, a.list_name_ukr, a.translit, a.pic, a.top, ( SELECT b.id FROM catalogs_rubrics b WHERE b.parent_id = a.id ORDER BY b.sort LIMIT 1 ) as r_pid FROM catalogs_rubrics a WHERE a.parent_id=? ORDER BY a.sort asc "; $row = $this->db->getAll($sql, array (0), DB_FETCHMODE_ASSOC); foreach ($row as $key => $value) { if ($item == 'parents') { $row[$key]['parents'] = $this->db->getAll(" SELECT a.name".(($lang=='ukr')?'_ukr':'')." as name, a.id, a.parent_id, a.level, a.sort, a.sort_cost, a.list_name, a.list_name_ukr, a.translit, a.pic, a.top FROM catalogs_rubrics a WHERE parent_id=? ORDER BY sort asc ", array($value['id']), DB_FETCHMODE_ASSOC); } else if ($item == 'brends') { $row[$key]['brends'] = $this->db->getAll(" SELECT * FROM catalogs_brends WHERE rubric_id in ( SELECT id FROM catalogs_rubrics WHERE parent_id=? or id=? ) GROUP BY name ",array ($value['id'], $value['id']), DB_FETCHMODE_ASSOC); } } $this->tpl->assign("catalogs_rubrics_begin", $row); } // ==== CACHE viewRubrics begin ==== function getFilenameCacheVRB ($item = 'parents', $lang = 'ru') { return $_SERVER['DOCUMENT_ROOT'].'/cache/menu/menu-'.$item.'-'.$lang.'.php'; } function isFreshCacheVRB ($item = 'parents', $lang = 'ru') { $filename = $this->getFilenameCacheVRB ($item, $lang); $time = 60 * 60 * 24; if (is_file ($filename) && (filemtime ($filename) + $time) > time()) { return true; } return false; } function saveCacheVRB ($item = 'parents', $lang = 'ru') { $filename = $this->getFilenameCacheVRB ($item, $lang); ob_start (); var_export ($this->tpl->get_template_vars('catalogs_rubrics_begin')); // $row - êàñòûëü çàòî÷êà ïîä "catalogs_rubrics_begin", $row file_put_contents ($filename, 'getFilenameCacheVRB ($item, $lang); if (! isset ($this->zlofound)) { $this->tpl->assign("catalogs_rubrics_begin", $row); $this->zlofound = true; unset ($row); } } // ==== ==== function viewRubrics_parent($parent_id = 0) { $sql = " SELECT a.name, a.name_ukr, a.id, a.parent_id, a.level, a.sort, a.sort_cost, a.list_name, a.list_name_ukr, a.translit, a.pic, a.top FROM catalogs_rubrics a WHERE parent_id=? ORDER BY sort asc "; $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC); $this->tpl->assign("catalogs_rubrics_parent",$row); } function viewRubrics_parent2 ($rub_id, $lang = 'ru') { $parent_id = $this->getRubricParent($rub_id); if ($parent_id == 0) { $parent_id = $rub_id; } $sql = " SELECT a.name".(($lang=='ukr')?'_ukr':'')." as name, a.id, a.parent_id, a.level, a.sort, a.sort_cost, a.list_name, a.list_name_ukr, a.translit, a.pic, a.top FROM catalogs_rubrics a WHERE parent_id=? ORDER BY sort asc "; $row = $this->db->getAll($sql,array($parent_id),DB_FETCHMODE_ASSOC); $this->tpl->assign("catalogs_rubrics_parent2",$row); } function viewRubricOne($id,&$row,$lang = 'ru'){ if($lang=='ukr') $sql = "select *,name_ukr as name,name_h1_ukr as name_h1,top_text_ukr as top_text,seo_text_ukr as seo_text, meta_title_ukr as meta_title,meta_description_ukr as meta_description,meta_keywords_ukr as meta_keywords,meta_about_ukr as meta_about, filter2_ukr as filter2, filter_ukr as filter, list_name_ukr as list_name from catalogs_rubrics where id=?"; else $sql = "select * from catalogs_rubrics where id=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('rubric',$row); } function getRubricName($id,$lang = 'ru'){ $sql = "select name".($lang=='ukr'?'_ukr':'')." from catalogs_rubrics where id=?"; return $this->db->getOne($sql,array($id)); } function getRubricParent($id){ $sql = "select parent_id from catalogs_rubrics where id=?"; return $this->db->getOne($sql,array($id)); } function activeRubricTop($id,$top){ $table_name = "catalogs_rubrics"; $fields_values = array('top'=>$top); $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,"id=$id"); } function SaveRubric($data,$upload){ $table_name = "catalogs_rubrics"; if(trim($data['translit']) == '') $data['translit'] = translit($data['name']); $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $parent_id = (isset($data['parent_id']) ? $data['parent_id'] : 0); $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']); if(isset($data['literal']))$fields_values['literal'] = 1; else $fields_values['literal'] = 0; if(isset($data['if_filter_mod']))$fields_values['if_filter_mod'] = 1; else $fields_values['if_filter_mod'] = 0; if(isset($data['is_usd']))$fields_values['is_usd'] = 1; else $fields_values['is_usd'] = 0; if(isset($data['is_xml']))$fields_values['is_xml'] = 1; else $fields_values['is_xml'] = 0; if(isset($data['is_xml2']))$fields_values['is_xml2'] = 1; else $fields_values['is_xml2'] = 0; if(isset($data['is_width']))$fields_values['is_width'] = 1; else $fields_values['is_width'] = 0; /* if($upload['pic']['tmp_name']){ $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"180",'height'=>"180",'upload_path'=>"./uploaded/pic/catalogs/rubrics/")); } */ if($upload['pic']['tmp_name']){ if($data['update_id']>0)$this->deletePicRubric($data['update_id']); $uploadfile = "./uploaded/pic/catalogs/rubrics/"; $type = substr(strrchr($upload['pic']['name'],"."),1); $uploadname = mktime() . "." . $type; if (!move_uploaded_file($_FILES['pic']['tmp_name'], $uploadfile . $uploadname))print"Îøèáêà ïðè çàêà÷êå ôàéëà!"; $fields_values['pic'] = $uploadname; } //print_r($fields_values);exit; $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); } function deletePicRubric($id){ $sql = "select pic from catalogs_rubrics where id=?"; $rub = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); @unlink("./uploaded/pic/catalogs/rubrics/{$rub['pic']}"); } function getLevelRubric($id){ $level = $this->db->getOne("select level from catalogs_rubrics where id=?",array($id)); return ($level==null)? -1 : $level; } function saveUser($data){ $table_name = "catalogs_users"; $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $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()); $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); } function updateUser($data){ $table_name = "catalogs_users"; $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; $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']); $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); } function updateUserID($data,$id){ $table_name = "catalogs_users"; $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; $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']); $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$id}"); } function deleteUser($id){ $this->db->query("delete from catalogs_users where id=?",array($id)); $res_order_id = $this->db->getRow("select id from catalogs_orders where user_id=?",array($id),DB_FETCHMODE_ASSOC); if(count($res_order_id)){ foreach($res_order_id as $_id){ $this->db->query("delete from catalogs_orders where id=?",array($_id)); $this->db->query("delete from catalogs_orders_products where order_id=?",array($_id)); }} } function isLoginUser($login){ return $this->db->getOne("select id from catalogs_users where login=?",array($login)); } function sendLoginInfo($login){ $user = $this->db->getRow("select * from catalogs_users where login=?",array($login),DB_FETCHMODE_ASSOC); $mail = new PHPMailer(); $mail->CharSet = "windows-1251"; $mail->From = "shop@eltrade.com.ua"; $mail->FromName = "shop@eltrade.com.ua"; $mail->AddAddress($user['email'], $user['name']); $mail->Subject = "Àêêàóíò ýêñòðèì"; $msg = ""; $msg .= "Çäðàâñòâóéòå: ".$user['name']; $msg .= "
"; $msg .= "Âàø ëîãèí: ".$user['login']; $msg .= "
"; $msg .= "Âàø ïàðîëü: ".$user['psw']; $msg .= "
"; $msg .= "Ñ óâàæåíèåì, shop@eltrade.com.ua"; $mail->MsgHTML($msg); if(!$mail->Send()){echo "There has been a mail error sending to
";return false;} $mail->ClearAddresses(); $mail->ClearAttachments(); } function isUser($login,$psw){ $row = $this->db->getRow("select * from catalogs_users where login=? AND psw=?",array($login,$psw),DB_FETCHMODE_ASSOC); //print $login .' - '.$psw; $this->tpl->assign('user_service',$row); return $row['id']; } function viewUser($id){ $sql = "select * from catalogs_users where id=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('user',$row); } function getUserDiscount($id){ return $this->db->getOne("select discount from catalogs_users where id=?",array($id)); } function viewUsers(){ $sql = "SELECT catalogs_users. *, COUNT(catalogs_orders.user_id) as count_orders FROM catalogs_users LEFT JOIN catalogs_orders ON catalogs_orders.user_id=catalogs_users.id GROUP BY catalogs_users.id ORDER BY catalogs_users.mktime DESC"; $pagerOptions = Array( 'mode' => 'Sliding', 'delta' => 6, 'perPage' => 10, 'linkClass'=>"link_class", 'curPageLinkClassName'=>"link_class_active", 'spacesBeforeSeparator' => 1, 'spacesAfterSeparator' => 1 ); $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array()); $this->tpl->assign('usersData', $res); } // ====================== // ==== MODIFICATION ==== // ====================== function viewModifications ($product_id) { $sql = "select * from catalogs_modifications where product_id=? order by id desc"; $row = $this->db->getAll ($sql, array ( $product_id ), DB_FETCHMODE_ASSOC); if (trim ($_REQUEST['test2']) == '1') print_r ($row); $this->tpl->assign ('modifications', $row); } function viewModificationsProduct ($product_id) { $sql = "select a1.* from catalogs_modifications a1 where a1.product_id=? and a1.active>0 order by a1.id asc"; // $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"; $row = $this->db->getAll ($sql, array ( $product_id ), DB_FETCHMODE_ASSOC); for ($i = 0; $i < count ($row); $i ++) { $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); // if($row2['city_id']==25){ unset($row[$i]); } } $new_row = array (); // if($_GET['test']=='18') print_r($row); foreach ($row as $key => $value) { // $new_row[] = $value; } // if($_GET['test']=='18') print_r($new_row); $this->tpl->assign ('modifications', $row); return $row; } function viewModificationOne ($id) { $sql = "select * from catalogs_modifications where id=?"; $row = $this->db->getRow ($sql, array ( $id ), DB_FETCHMODE_ASSOC); $this->tpl->assign ('modification', $row); return $row; } function getModificationProduct_id ($code) { return $this->db->getOne ("select product_id from catalogs_modifications where code=?", array ( $code )); } function getModification ($product_id, $code) { return $this->db->getOne (" SELECT id FROM catalogs_modifications WHERE product_id=? AND code=?", array ( $product_id, $code )); } function SaveModification ($data, $upload) { $table_name = "catalogs_modifications"; $DB_AUTOQUERY = ($data ['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $fields_values = array ( 'product_id' => $data ['product_id'], 'code' => $data ['code'], 'size' => $data ['size'], 'color' => $data ['color'], 'active' => $data ['active'] ); if (isset ($data ['color2'])) { $fields_values ['color2'] = $data ['color2']; } if (isset ($data ['rost'])) { $fields_values ['rost'] = $data ['rost']; } if (isset ($data ['delete_pic'])) { if ($data ['update_id'] > 0) { $this->deleteModificationPics ($data ['update_id']); } $fields_values ['pic'] = null; $fields_values ['pic_big'] = null; } if ($upload ['pic'] ['tmp_name']) { if ($data ['update_id'] > 0) { $delete_pics = (isset ($upload ['pic'] ['big']) && $upload ['pic'] ['big'] == true) ? array ( 'pic' ) : array ( 'pic', 'pic_big' ); $this->deleteModificationPics ($data ['update_id'], $delete_pics); } $fields_values ['pic'] = upload_ImageResize ($upload ['pic'], array ( 'width' => "144", 'height' => "144", 'upload_path' => "./uploaded/pic/catalogs/modifications/" )); $fields_values ['pic_big'] = (isset ($upload ['pic'] ['big']) && $upload ['pic'] ['big'] == true) ? $upload ['pic'] ['name'] : upload_ImageResize ($upload ['pic'], array ( 'width' => "1000", 'height' => "1000", 'upload_path' => "./uploaded/pic/catalogs/modifications/big/" )); } $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='{$data['update_id']}'"); return $id; } function deleteModification ($id) { $this->deleteModificationPics ($id); $this->db->query ("delete from catalogs_modifications where id=?", array ( $id )); } function deleteProductModifications ($product_id, $nopic = false) { IF ($nopic == false) { $sql = " select * from catalogs_modifications where product_id=?"; $res = $this->db->getAll ($sql, array ( $product_id ), DB_FETCHMODE_ASSOC); foreach ($res as $row) { $this->deleteModificationPics ($row ['id']); } } $this->db->query (" delete from catalogs_modifications where product_id=?", array ( $product_id )); } function deleteModificationPics ($id, $pics = array('pic_big','pic')) { $sql = "select pic,pic_big from catalogs_modifications where id=?"; $row = $this->db->getRow ($sql, array ( $id ), DB_FETCHMODE_ASSOC); if (in_array ('pic', $pics)) { @unlink ("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/{$row['pic']}"); } // if(in_array('pic_big',$pics))@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/modifications/big/{$row['pic_big']}"); } // ================= // ==== PRODUCT ==== // ================= function ProductClick($id){ $this->db->query("update catalogs_products set click=click+1 where id='$id'"); } function SaveProduct ($data, $upload) { $table_name = "catalogs_products"; if (trim (@$data['translit']) == "") $data['translit'] = translit ($data['name']); $DB_AUTOQUERY = ($data['update_id'] > 0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $id = ($data['update_id'] > 0) ? $data['update_id'] : $this->db->nextId ('mySequence_' . $table_name); $fields_values = array ( 'id' => $id, 'rubric_id' => $data['rubric_id'], 'rubric_parent_id' => $this->getRubricParent ($data['rubric_id']), 'brend_id' => $data['brend_id'], 'name' => $data['name'], 'about' => $data['about'], 'text' => $data['text'], 'update_text' => (int)$data['update_text'], 'strnumber' => $data['strnumber'], 'cine' => $data['cine'], 'cine_last' => $data['cine_last'], 'mktime' => mktime (), 'meta_title' => $data['meta_title'], 'meta_description' => $data['meta_description'], 'meta_keywords' => $data['meta_keywords'], 'meta_about' => $data['meta_about'], 'active' => $data['active'], 'translit' => $data['translit'] ); if (isset ($data['is_cost2'])) $fields_values['is_cost2'] = 1; else $fields_values['is_cost2'] = 0; if (isset ($data['cine2'])) $fields_values['cine2'] = $data['cine2']; if (isset ($data['params'])) $this->saveProductParams ($id, $data['params']); if (isset ($data['doc'])) $fields_values['doc'] = $data['doc']; if (isset ($data['update_text'])) $fields_values['update_text'] = $data['update_text']; if (isset ($data['video_code'])) $fields_values['video_code'] = $data['video_code']; if (isset ($data['akcii_id'])) $fields_values['akcii_id'] = $data['akcii_id']; if (isset ($data['translit'])) $fields_values['translit'] = $data['translit']; if ($upload['pic']['tmp_name']) { $delete_pics = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? array ( 'pic', 'pic2' ) : array ( 'pic', 'pic2', 'pic_big' ); $this->deleteProductPics ($id, $delete_pics); $fields_values['pic'] = upload_ImageResize ($upload['pic'], array ( 'width' => "144", 'height' => "144", 'upload_path' => "./uploaded/pic/catalogs/products/" )); $fields_values['pic2'] = upload_ImageResize ($upload['pic'], array ( 'width' => "244", 'height' => "244", 'upload_path' => "./uploaded/pic/catalogs/products/2/" )); $fields_values['pic_big'] = (isset ($upload['pic']['big']) && $upload['pic']['big'] == true) ? $upload['pic']['name'] : upload_ImageResize ($upload['pic'], array ( 'width' => "1000", 'height' => "1000", 'upload_path' => "./uploaded/pic/catalogs/products/big/" )); } $this->db->autoExecute ($table_name, $fields_values, $DB_AUTOQUERY, "id='$id'"); $this->save_keysProductsFilters ($id, $data); $this->save_keysProductsFilters2 ($id, $data); $this->save_keysProductsYears ($id, $data); // $this->save_keysProductsCities($id,$data); $this->save_keysProductsAkcii ($id, $data); $this->save_keysProductsSex ($id, $data); return $id; } function save_keysProductsSex($id,$data){ $this->delete_keysProductsSex($id); if(!isset($data['sex']))return false; $table_name = "catalogs_keys_products_sex"; foreach($data['sex'] as $sex){ $this->db->autoExecute($table_name,array('product_id'=>$id,'sex'=>$sex,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); } } function delete_keysProductsSex($id){ $this->db->query("delete from catalogs_keys_products_sex where product_id=?",array($id)); } function save_keysProductsFilters2($id,$data){ $this->delete_keysProductsFilters2($id); if(!isset($data['filter2']))return false; $table_name = "catalogs_keys_products_filters2"; foreach($data['filter2'] as $filter_id){ $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); } } function delete_keysProductsFilters2($id){ $this->db->query("delete from catalogs_keys_products_filters2 where product_id=?",array($id)); } function save_keysProductsFilters($id,$data){ $this->delete_keysProductsFilters($id); if(!isset($data['filter']))return false; $table_name = "catalogs_keys_products_filters"; foreach($data['filter'] as $filter_id){ $this->db->autoExecute($table_name,array('product_id'=>$id,'filter_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); } } function delete_keysProductsFilters($id){ $this->db->query("delete from catalogs_keys_products_filters where product_id=?",array($id)); } function save_keysProductsYears($id,$data){ $this->delete_keysProductsYears($id); if(!isset($data['years']))return false; $table_name = "catalogs_keys_products_years"; foreach($data['years'] as $filter_id){ $this->db->autoExecute($table_name,array('product_id'=>$id,'year_id'=>$filter_id,'rubric_id'=>$data['rubric_id']),DB_AUTOQUERY_INSERT); } } function delete_keysProductsYears($id){ $this->db->query("delete from catalogs_keys_products_years where product_id=?",array($id)); } function save_keysProductsCities($id,$data){ $this->delete_keysProductsCities($id); if(!isset($data['city']))return false; $table_name = "catalogs_keys_products_cities"; foreach($data['city'] as $city_id){ $this->db->autoExecute($table_name,array('product_id'=>$id,'city_id'=>$city_id),DB_AUTOQUERY_INSERT); } } function delete_keysProductsAkcii($id){ $this->db->query("delete from catalogs_keys_products_akcii where product_id=?",array($id)); } function save_keysProductsAkcii($id,$data){ $this->delete_keysProductsAkcii($id); if(!isset($data['akcii']))return false; $table_name = "catalogs_keys_products_akcii"; foreach($data['akcii'] as $rubric_id){ $this->db->autoExecute($table_name,array('product_id'=>$id,'rubric_id'=>$rubric_id),DB_AUTOQUERY_INSERT); } } function delete_keysProductsCities($id){ $this->db->query("delete from catalogs_keys_products_cities where product_id=?",array($id)); } function saveProductSizeCine($id,$data){ $this->db->query("delete from catalogs_products_cine where product_id=?",array($id)); foreach($data['size'] as $key=>$size){ $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); } } function productsIsHits($products,$hits,$tops,$akcii){ $sql = "update catalogs_products set active=?,top=?,akcii_id=? where id=?"; foreach($products as $id){ if(@in_array($id,$hits))$hit = true; else $hit = false; if(@in_array($id,$tops))$top = true; else $top = false; if(@in_array($id,$akcii))$akcii = true; else $akcii = false; $this->db->query($sql,array($hit,$top,$akcii, $id)); } } function productsIsHits2($data,$hits){ $sql = "update catalogs_products set hit=?,hit_sort=? where id=?"; foreach($data['product_id'] as $key=>$id){ if(@in_array($id,$hits))$hit = true; else $hit = false; $this->db->query($sql,array($hit,$data['hit_sort'][$key],$id)); } } function viewProductsRubrics($rubrics,$limit=20){ $data = array(); foreach($rubrics as $key=>$rubric_id){ $data[$key]['rubric']['name'] = $this->getRubricName($rubric_id); $data[$key]['rubric']['id'] = $rubric_id; $count = $this->db->getOne("select count(*) from catalogs_products WHERE count_modifications>0 and rubric_id=?",array($rubric_id)); $limit = 5; $round = ($count>$limit) ? rand(0,($count-$limit)) : $limit; $sql = "select * from catalogs_products where count_modifications>0 and rubric_id=? order by id " . ((rand(1,1000)%2) ? "asc" : "desc") . " limit $round,$limit"; $data[$key]['products'] = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); } /* print"
";
  print_r($data);
  print"
"; */ $this->tpl->assign('products',$data); } function seralizeFilter($str){ $array = explode(';',iconv('UTF-8','CP1251',$str)); $filter = array(); foreach($array as $key=>$value){ $filter[substr($value,0,1)][] = "'".substr(str_replace(".", ",", $value),1, strpos($value,"_")-1 )."'"; } //print_r($filter); return $filter; } function seralizeSex($str){ $sex = array(); $sex_num = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); $sex_row = explode(';',$str); foreach($sex_row as $row){ $sex[] = $sex_num[$row]; } return $sex; } function viewProducts($params,$rubricsP = false,$count_modf = true,$lang='ru'){ //exit; //print $params['filter_products']; if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); $search = array(); if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20; if(isset($params['search_str']) && strlen($params['search_str'])>0){ $array_string = explode(" ",trim($params['search_str'])); foreach($array_string as $row){ $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."')"; } $search_string = array(); // $search_string[] = "catalogs_products.name like '%".mysql_real_escape_string($params['search_str'])."%'"; // $search_string[] = "catalogs_products.text like '%".mysql_real_escape_string($params['search_str'])."%'"; /* foreach($array_string as $str){ $search_string[] = "catalogs_products.name like '$str'"; $search_string[] = "catalogs_products.name like'% $str %'"; $search_string[] = "catalogs_products.name like'%$str %'"; $search_string[] = "catalogs_products.name like'% $str%'"; $search_string[] = "catalogs_products.text like '$str'"; $search_string[] = "catalogs_products.text like'% $str %'"; $search_string[] = "catalogs_products.text like'%$str %'"; $search_string[] = "catalogs_products.text like'% $str%'"; } */ //$search[] = "((" . implode(" OR ",$search_string) . ") OR ". sprintf("catalogs_modifications.code='%s'", mysql_real_escape_string($params['search_str'])).")"; } // print_r($params); if(isset($params['brendID']) && $params['brendID']>0)$search[] = sprintf("catalogs_products.brend_id='%d'",$params['brendID']); if(isset($params['akciiID']) && $params['akciiID']>0)$search[] = sprintf("catalogs_products.akcii_id>'%d'",0); if(isset($params['new']) && $params['new']>0)$search[] = sprintf("catalogs_products.active='%d'",$params['new']); if(isset($params['top']) && $params['top']>0)$search[] = sprintf("catalogs_products.top='%d'",$params['top']); if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")"; if(isset($params['sex']) && strlen($params['sex'])>0){ $sex = $this->seralizeSex($params['sex']); //print_r($sex); // $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); $search[] = "s.sex IN (" . implode(",",$sex) . ")"; } //if(isset($params['akcii']) && $params['akcii']>0)$search[] = sprintf("catalogs_products.hit='%d'",$params['akcii']); if($count_modf==true)$search[] = "catalogs_products.count_modifications>0"; if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']) && !isset($params['what'])){ $search[] = ($rubricsP==true)?sprintf("(catalogs_products.rubric_id='%d')",$params['rubID']):sprintf(" (catalogs_products.rubric_parent_id='%d' || catalogs_products.rubric_id='%d' || catalogs_products.rubric_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d') || catalogs_products.rubric_parent_id=(SELECT id FROM catalogs_rubrics WHERE translit='%d'))",$params['rubID'],$params['rubID'],$params['rubID'],$params['rubID']); } /* if(isset($params['filterID'])){ //$search[] = sprintf("catalogs_keys_products_filters.filter_id='%d'", $params['filterID']); $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$params['filterID']).")"; }*/ if(isset($filter['f']) && count($filter['f'])>0){ $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; } elseif(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($params['what'])){ $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; } if(isset($filter['g']) && count($filter['g'])>0){ $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; } if(isset($filter['s']) && count($filter['s'])>0){ $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; } if(isset($filter['r']) && count($filter['r'])>0){ $search[] = "m2.rost in (".implode(",",$filter['r']).")"; } /* if(isset($params['yearID']) && $params['yearID']>0){ //$search[] = sprintf("catalogs_keys_products_years.year_id='%d'", $params['yearID']); $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$params['yearID']).")"; }*/ if(isset($filter['y']) && $filter['y']>0){ $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; } $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 "; if(isset($params['akcii']) && $params['akcii']>0)$sql .= "RIGHT JOIN catalogs_keys_products_akcii ON catalogs_keys_products_akcii.product_id=catalogs_products.id "; 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 "; 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 "; 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 "; //if(isset($params['filterID']) && $params['filterID']>0)$sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; // if(isset($params['yearID']) && $params['yearID']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; if(isset($params['search_str']) && strlen($params['search_str'])>0){$sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=catalogs_products.id ";} 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 ";} 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 ";} if(isset($params['sex']) && strlen($params['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";} $sql .= "WHERE 1=1 "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; // if(isset($params['akcii']) && $params['akcii']>0){$sql .= " GROUP BY catalogs_keys_products_akcii.product_id ";} //if(isset($params['search_str']) && strlen($params['search_str'])>0){} $sql .= " GROUP BY catalogs_products.id "; $sql .= "order by "; if(isset($params['sort'])){ switch($params['sort']){ case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break; default : $sql .= " catalogs_products.mktime desc"; } }else $sql .= (!empty($params['top']))?" catalogs_rubrics.top desc":" catalogs_products.rating desc"; $pagerOptions = Array( 'mode' => 'Sliding', 'delta' => 5, 'perPage' => $perPage, 'linkClass'=>"link_class", 'curPageLinkClassName'=>"link_class_active", 'spacesBeforeSeparator' => 1, 'spacesAfterSeparator' => 1 ); // echo $sql; // $sql=""; $res = Pager_Wrapper_DB ($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array ()); if (! empty ($res)) { // if($_GET['test']=='1') for ($i = 0; $i < count ($res['data']); $i ++) { $res['data'][$i]['mod'] = $this->db->getRow ('select * from catalogs_modifications where product_id=? and active=1 Order By id Asc', array ( $res['data'][$i]['id'] ), DB_FETCHMODE_ASSOC); $res['data'][$i]['ph1'] = $this->getFilterPh1 ($res['data'][$i]['id'], $lang); $res['data'][$i]['rating2'] = $res['data'][$i]['rating']; if (@$res['data'][$i]['rating']) $res['data'][$i]['rating'] = round ((@$res['data'][$i]['rating'] / @$res['data'][$i]['vote_num']), 0); else $res['data'][$i]['rating'] = 0; $res['data'][$i]['rating'] = @$res['data'][$i]['rating'] * 17; } } $this->tpl->assign ('productsData', $res); return $res; } function getFilterPh1($product_id,$lang = 'ru'){ $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':'')."<>''"; return $this->db->getOne($sql,array($product_id)); } function getCineCurs($type_curs,$cine){ $curs = array(); $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah')); $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank')); $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd')); switch($type_curs){ case 'uah' : $curs['uah'] = round($cine,2); $curs['uah_bank'] = round(($cine/$usd)*$uah_bank,2); $curs['usd'] = round($cine/$usd,2); break; case 'uah_bank' : $curs['uah'] = round(($cine/$uah_bank)*$uah,2); $curs['uah_bank'] = round($cine,2); $curs['usd'] = round($cine/$uah_bank,2); break; case 'usd' : $curs['uah'] = round($cine*$uah,2); $curs['uah_bank'] = round($cine*$uah_bank,2); $curs['usd'] = round($cine,2); break; } return $curs; } function viewProductsAkcii($rubric_id,$limit = 8){ // $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products // LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id // LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id // WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 "; // if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; // $sql .= "order by RAND() LIMIT $limit"; $search = array(); if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); if(isset($filter['f']) && count($filter['f'])>0){ $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; } if(isset($filter['g']) && count($filter['g'])>0){ $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; } if(isset($filter['s']) && count($filter['s'])>0){ $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; } if(isset($filter['y']) && $filter['y']>0){ $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; } if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; /* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]); } */ if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = $this->seralizeSex($_GET['sex']); $search[] = "catalogs_products.sex IN (" . implode(",",$sex) . ")"; } /*$sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_keys_products_akcii left join catalogs_products on catalogs_products.id=catalogs_keys_products_akcii.product_id LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id ";*/ $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; 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 "; 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 "; if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; 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 ";} //$sql .= "where catalogs_keys_products_akcii.rubric_id=? "; $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 "; if($rubric_id>0)$sql .="and catalogs_products.rubric_id='$rubric_id' "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= "order by RAND()"; if($rubric_id==0){$sql .= " limit 8";} $res = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); //print_r($res); for($i=0;$itpl->assign('products_akcii',$res); } function getProductsAkcii($limit = 6){ $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; //$sql .= "where catalogs_keys_products_akcii.rubric_id=? "; $sql .= "where catalogs_products.count_modifications>0 and catalogs_products.akcii_id>0 "; //if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= "order by RAND() limit $limit"; return $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); } function viewProductsHitsAll2(){ if(isset($_GET['perPage']) && $_GET['perPage']>0 && $_GET['perPage']<=100)$perPage = $_GET['perPage'];else $perPage = 20; $sql = "select * from catalogs_products where hit=?"; $pagerOptions = Array( 'mode' => 'Sliding', 'delta' => 6, 'perPage' => $perPage, 'linkClass'=>"link_class", 'curPageLinkClassName'=>"link_class_active", 'spacesBeforeSeparator' => 1, 'spacesAfterSeparator' => 1 ); $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array(true)); $this->tpl->assign('productsData', $res); } function viewProductsActiveAll($params,$limit = 4,$curs = null){ $search = array(); $sql = " SELECT * FROM ( select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id WHERE catalogs_products.active=? and catalogs_products.count_modifications>0 "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= "ORDER BY RAND()) as T "; $sql .= "Group By rubric_id ORDER BY RAND() LIMIT $limit"; $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); //print_r($res); $this->tpl->assign('products_active',$res); } function viewProductsActive($params,$limit = 4,$curs = null){ $search = array(); if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']))$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']); if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); if(isset($filter['f']) && count($filter['f'])>0){ $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; } if(isset($filter['g']) && count($filter['g'])>0){ $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; } if(isset($filter['s']) && count($filter['s'])>0){ $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; } if(isset($filter['y']) && $filter['y']>0){ $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; } if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; } if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")"; /* if(isset($params['sex']) && strlen($params['sex'])>0){ $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); } */ if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = $this->seralizeSex($_GET['sex']); $search[] = "s.sex IN (" . implode(",",$sex) . ")"; } $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; 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 "; 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 "; if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; 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 ";} 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 "; if(isset($params['sex']) && strlen($params['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";} $sql .= "WHERE catalogs_products.active=? and catalogs_products.count_modifications>0 "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= "order by RAND() LIMIT $limit"; $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); //print_r($res); $this->tpl->assign('products_active',$res); } function viewProductsHits($params,$limit = 4,$curs = null){ $search = array(); if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']); $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id WHERE catalogs_products.hit=? and catalogs_products.count_modifications>0 "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= "order by "; if(isset($params['sort'])){ switch($params['sort']){ case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break; default : $sql .= " RAND()"; } }else $sql .= " RAND()"; $sql .=" LIMIT $limit"; $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); //print_r($res); $this->tpl->assign('products_hits',$res); } function viewProductsTops($params,$limit = 4,$curs = null){ $search = array(); if(isset($params['rubID']) && $params['rubID']>0 && !isset($params['filter_products']))$search[] = sprintf("catalogs_products.rubric_id=%d",$params['rubID']); if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); if(isset($filter['f']) && count($filter['f'])>0){ $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; } if(isset($filter['g']) && count($filter['g'])>0){ $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; } if(isset($filter['s']) && count($filter['s'])>0){ $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; } if(isset($filter['y']) && $filter['y']>0){ $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; } if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; } if(isset($params['brend']) && strlen($params['brend'])>0)$search[] = "catalogs_products.brend_id in(".implode(",",$this->getBrendIDs_name($params['brend'])).")"; /*if(isset($params['sex']) && strlen($params['sex'])>0){ $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); $search[] = sprintf("catalogs_products.sex='%d'",$sex[$params['sex']]); }*/ if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = $this->seralizeSex($_GET['sex']); $search[] = "catalogs_products.sex IN (" . implode(",",$sex) . ")"; } $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id "; 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 "; 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 "; if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; 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 ";} 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 "; $sql .= "WHERE catalogs_products.top=? and catalogs_products.count_modifications>0 "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; // $sql .= "order by RAND()"; $sql .= "order by "; if(isset($params['sort'])){ switch($params['sort']){ case 'cine' : $sql .= " catalogs_products.cine " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'click' : $sql .= " catalogs_products.click " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'rating' : $sql .= " catalogs_products.rating " . (($_GET['order']=='asc')?"asc":"desc"); break; case 'hit' : $sql .= " catalogs_products.hit_sort asc"; break; default : $sql .= " r.top desc"; } }else $sql .= " r.top desc"; $sql .=" LIMIT $limit"; //print $sql; $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); //print_r($res); $this->tpl->assign('products_top',$res); } function viewProductsTopOne(){ $count = $this->db->getOne("select count(*) from catalogs_products WHERE catalogs_products.header=?",array(true)); $limit = 1; $round = rand(0,($count-$limit)); $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); $this->tpl->assign('products_top_one',$res); } function viewProductsLast($limit = 1){ $search = array(); $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=? "; $sql .= "order by catalogs_products.mktime desc LIMIT $limit"; $res = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); $this->tpl->assign('products_last',$res); } function viewProductsHitsAll($limit = 4){ $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=? "; $sql .= "order by mktime desc LIMIT $limit"; $products_hits = $this->db->getAll($sql,array(true),DB_FETCHMODE_ASSOC); $this->tpl->assign('products_hits_all',$products_hits); } function activeNull($rubric_id){ $sql = "update catalogs_products set active=? where rubric_id=?"; $this->db->query($sql,array(0,$rubric_id)); } function viewProductOne($id,&$row){ // $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=?"; $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=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $row['ph1'] = $this->getFilterPh1($row['id']); $row['rating2'] = $row['rating']; if( @$row['rating'] ) $row['rating'] = round( (@$row['rating'] / @$row['vote_num']), 0 ); else $row['rating'] = 0; $row['rating'] = @$row['rating'] * 17; //print_r($row); $this->tpl->assign('product',$row); } function deleteCompareProduct(&$compare,$id){ foreach($compare as $key=>$_id){ if($_id == $id)unset($compare[$key]); } } function viewCompareProducts($compare){ $products = array(); $i = 0; foreach($compare as $id){ $sql = "select p.* from catalogs_products p where p.id=?"; $products[$i] = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $products[$i]['params'] = $this->getProductParams($id); $i++; } //print_r($products); $this->tpl->assign('products',$products); } function viewProductNembers($str_n){ $arr_id = explode(",",$str_n); $products = array(); foreach($arr_id as $id){ $count = $this->db->getOne("select count(*) from catalogs_keys_products_filters where filter_id=?",array(trim($id))); $limit = 1; $round = rand(0,($count-$limit)); //" LIMIT 0,$limit" $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"; $row = $this->db->getRow($sql ,array(trim($id)),DB_FETCHMODE_ASSOC); if(count($row)>0)$products[] = $row; } // $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); $this->tpl->assign('products_parent',$products); } function getProductSizeCine($id,&$products){ $res = $this->db->getAll("select * from catalogs_products_cine where product_id=?",array($id),DB_FETCHMODE_ASSOC); $i = 0; foreach($res as $row){ $products['size_' . $row['n']] = $row['size']; $products['cine_' . $row['n']] = $row['cine']; $products['metka_' . $row['n']] = $row['metka']; $products['id_cine_' . $row['n']] = $row['id']; $i++; } //print_r($products); } /* function getProductCine($id,$curs = null){ $sql = "select cine from catalogs_products where id=?"; $row = $this->db->getOne($sql,array($id)); return $row; }*/ function getProductCine($id){ $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=?"; return $this->db->getOne($sql,array($id)); } function viewProductCine($id){ $row = $this->db->getAll("select * from catalogs_products_cine where product_id=? and cine>0 Order By n ASC",array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('product_cines',$row); } function viewCatalogsCurs(){ $uah = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah')); $this->tpl->assign('curs_uah',$uah); $uah_bank = $this->db->getOne("select curs from catalogs_curs where type=?",array('uah_bank')); $this->tpl->assign('curs_uah_bank',$uah_bank); $usd = $this->db->getOne("select curs from catalogs_curs where type=?",array('usd')); $this->tpl->assign('curs_usd',$usd); } function saveCurs($data){ $table_name = "catalogs_curs"; $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; foreach($data as $key=>$value){ $this->db->autoExecute($table_name,array('curs'=>$value),$DB_AUTOQUERY,"type='$key'"); } } function viewVarCurs($curs){ $this->tpl->assign('curs',$curs); } function viewBasketProducts($session_basket,$curs = null,$discount = 0){ $products = array(); $i = 0; $cineAll = 0; // $sql = "select catalogs_products.* from catalogs_products where catalogs_products.id=?"; // $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=?"; $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=?"; foreach($session_basket as $id){ $products_count = 1; if(count($products)){ foreach($products as $key=>$value){ 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'];} }} if($products_count==1){ $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); $products[$i] = $row; $products[$i]['cine'] = round($products[$i]['cine'] - ($products[$i]['cine']*$products[$i]['sale']/100)); $products[$i]['products_count']=$products_count; $products[$i]['products_cine_all']=$products[$i]['cine']*$products_count; $cineAll = $cineAll+$products[$i]['products_cine_all']; $i++; } } /*print"
";
  print_r($products);
  print"
";*/ $this->tpl->assign('cineAll',$cineAll); $this->tpl->assign('cineAll_discount',$cineAll - (($cineAll*$discount)/100)); $this->tpl->assign('basket_products',$products); //print_r($products); } function BasketUpload(&$session_basket,$proructs_count){ // ========== ZLODEYEV ============ foreach($proructs_count as $key=>$value){ // ==== îáíîâëÿåì ==== // Âûáèðàåì èíôî î òîâàðå $sql4 = "SELECT * FROM catalogs_modifications as m LEFT JOIN catalogs_products as p ON p.id=m.product_id WHERE m.id='".$key."' "; $result4 = mysql_query($sql4) or die(mysql_error()); if (mysql_affected_rows()!=0) { $item=mysql_fetch_assoc($result4); } $f=0; if (isset($_SESSION['shopcart'])) { foreach ($_SESSION['shopcart'] as $i => $cart) { if ($cart['code']!='' && $cart['code']==$key) { $f=1; $_SESSION['shopcart'][$i]['count']=$value; $_SESSION['shopcart'][$i]['total']=$value*$_SESSION['shopcart'][$i]['price']; if ($_SESSION['shopcart'][$i]['total']==0) { unset($_SESSION['shopcart'][$i]); } break; } } } } // ========== ZLODEYEV ============ $session_basket = array(); foreach($proructs_count as $key=>$value){ for($i=0;$i<$value;$i++){ $session_basket[] = $key; } } } function sendOrder($data){ $mail = new PHPMailer(); $mail->CharSet = "windows-1251"; $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; $mail->FromName = $data['order_name']; $mail->AddAddress("shop@eltrade.com.ua","shop"); $mail->Subject = "Îôîðìèòü çàêàç ñ ÝêñòðèìÑòèëü"; $title = Mail::str_rus("Îôîðìèòü çàêàç"); $msg = ""; foreach($data['product_id'] as $key=>$value){ $msg .= "ID: ".$value." "; $msg .= "Íàçâàíèå: ".$data['product_name'][$key]." "; $msg .= "Öåíà çà îäèí: ".$data['product_cine'][$key]." "; $msg .= "Êîëè÷åñòâî: ".$data['product_count'][$key]." "; $msg .= "Çà âåñü òîâàð: ".$data['product_cine_all'][$key]." "; $msg .= "
"; } $msg .= "Îáùàÿ ñóìà: ".$data['cineAll']; $msg .= "
"; /* $msg .= "Ñêèäêà: ".$data['discount']." %"; $msg .= "
"; */ $msg .= "Èòîãî ê îïëàòå: ".$data['cineAll_discount']; $msg .= "


"; $msg .= "Êîíòàêòíûå äàííûå:"; $msg .= "
"; $msg .= "Èìÿ: ".$data['order_name']; $msg .= "
"; $msg .= "Àäðåñ: ".$data['order_adress']; $msg .= "
"; $msg .= "E-mail: ".$data['order_email']; $msg .= "
"; $msg .= "Êîíòàêòíûé òåëåôîí: ".$data['order_phone']; // $msg .= "
"; // $msg .= "Ìîáèëüíûé òåëåôîí: ".$data['order_phonemob']; $msg .= "
"; $msg .= "Êîììåíòàðèé: ".$data['order_comment']; // $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "vapila@vapila.kiev.ua"; // Mail::send("borisenko.pavel@gmail.com",$data['order_email'],$title,Mail::str_rus($msg)); $mail->MsgHTML($msg); if(!$mail->Send()){echo "There has been a mail error sending to
";return false;} $mail->ClearAddresses(); $mail->ClearAttachments(); $this->sendOrderXML($data); } function sendOrderXML($data){ $data['order_phone'] = str_replace("-","",$data['order_phone']); $data['order_phone'] = str_replace(")","",$data['order_phone']); $data['order_phone'] = str_replace("(","",$data['order_phone']); $data['order_phone'] = str_replace(" ","",$data['order_phone']); $ffffffff = substr($data['order_phone'],0,3); if($ffffffff!="380") $data['order_phone'] = "+38".$data['order_phone']; $mail = new PHPMailer(); $mail->CharSet = "windows-1251"; $mail->From = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; $mail->FromName = $data['order_name']; $mail->AddAddress("extremshop@portal.myoffice.biz.ua","extremshop"); $mail->Subject = "xml çàêàç ñ ÝêñòðèìÑòèëü"; $order_email = (strlen($data['order_email'])>0) ? $data['order_email'] : "shopextremstyle2@gmail.com"; $xml = ''; $xml .= ''; foreach($data['product_id'] as $key=>$value){ $xml .= ""; $xml .= "".$data['product_name2'][$key].""; $xml .= "".$data['product_size'][$key].""; $xml .= "".$data['product_color'][$key].""; $xml .= "".$data['product_price'][$key].""; $xml .= "".$data['product_count'][$key].""; $xml .= ""; } $xml .= ''; $xml .= ''.$data['order_name'].''; $xml .= ''.$data['order_phone'].''; $xml .= ''.$data['order_email'].''; $xml .= ''; $xml .= ''; $xml .= 'Óêðàèíà'; $xml .= '
'.$data['order_adress'].'
'; $xml .= 'Äîñòàâêà'; $xml .= '
'; $xml .= ''.$data['order_comment'].''; $xml .= '
'; $tmpfname = tempnam("tmp", "FOO"); $handle = fopen($tmpfname, "w"); fwrite($handle, $xml); $mail->AddAttachment($tmpfname, 'order.xml'); if(!$mail->Send()){echo "There has been a mail error sending to
";return false;} fclose($handle); unlink($tmpfname); $mail->ClearAddresses(); $mail->ClearAttachments(); // Mail::send("borisenko.pavel@gmail.com",$order_email,"Order",Mail::str_rus($xml)); // Mail::send("andrey.belyy@gmail.com",$order_email,"Order",Mail::str_rus($xml)); } function saveOrder($data,$userID = 0){ $table_name = "catalogs_orders"; if(isset($data['update_id']) && $data['update_id']>0){ $DB_AUTOQUERY = DB_AUTOQUERY_UPDATE; $id = $data['update_id']; $where = sprintf("id='%d'",$id); } else { $DB_AUTOQUERY = DB_AUTOQUERY_INSERT; $id = $this->db->nextId('mySequence_'.$table_name); $where = null; } $fields_values = array( 'id'=>$id, 'user_id'=>$userID, 'name' => $data['order_name'], 'email' => $data['order_email'], 'adress' => $data['order_adress'], //'phone' => phone_mobil($data['order_phone']), 'phone' => $data['order_phone'], 'comment' => $data['order_comment'], 'delivery' => $data['delivery'], 'total'=>$_SESSION['cart']['total'], 'status' => '1', 'mktime'=>mktime() ); $DB_AUTOQUERY; $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,$where); if(isset($data['product_id'])){ $i=-1; foreach($data['product_id'] as $key=>$value){ $i++; $this->db->autoExecute("catalogs_orders_products",array( 'order_id'=>$id, 'product_id'=>$value, 'product_cine_id'=>$_SESSION['cart'][$i]['price'], 'count'=>$data['product_count'][$key]) ,DB_AUTOQUERY_INSERT); } } } function deleteOrder($id){ $this->db->query("delete from catalogs_orders where id=?",array($id)); $this->db->query("delete from catalogs_orders_products where order_id=?",array($id)); } function updateOrder($data){ $table_name = "catalogs_orders"; $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()); if(isset($data['order_active']))$fields_values['active'] = 1; else $fields_values['active'] = 0; $this->db->autoExecute($table_name,$fields_values,DB_AUTOQUERY_UPDATE,sprintf("id='%d'",$data['update_id'])); } function updateOrderProducts($data){ foreach($data['product_id'] as $key=>$value){ if($data['product_count'][$value]<1){$this->db->query("delete from catalogs_orders_products where order_id='{$data['order_id']}' AND product_id='$value'");} 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'");} } } function viewOrder($id){ $row = $this->db->getRow("select * from catalogs_orders where id=?",array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('order', $row); } function viewOrderProducts($order_id){ $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); $sum = 0; foreach($res as $key=>$row){ $sum = $sum + ($row['cine']*$row['count']); $res[$key]['cine_all'] = ($row['cine']*$row['count']); } $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)); $this->tpl->assign('cine', array('sum'=>$sum,'discount'=>$discount,'sum_discount'=>($sum - (($sum*$discount)/100)) )); $this->tpl->assign('basket_products', $res); } function viewOrders($params = array()){ $search = array(); if(isset($params['userID']) && $params['userID']>0)$search[] = sprintf("catalogs_orders.user_id='%d'",$params['userID']); $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 "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= " order by mktime desc"; $pagerOptions = Array( 'mode' => 'Sliding', 'delta' => 16, 'perPage' => 50, 'linkClass'=>"link_class", 'curPageLinkClassName'=>"link_class_active", 'spacesBeforeSeparator' => 1, 'spacesAfterSeparator' => 1 ); $res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array()); foreach($res['data'] as $key=>$value){ $res['data'][$key]['sum'] = $this->getOrderProductsSum($value['id']); $res['data'][$key]['sum_discount'] = $res['data'][$key]['sum'] - (($res['data'][$key]['sum']*$value['discount'])/100); } $this->tpl->assign('ordersData', $res); } function getOrderProductsSum($order_id){ $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); // print_r($res); $sum = 0; foreach($res as $row){ $sum = $sum + ($row['cine']*$row['count']); } return $sum; } function SaveBrend($data,$upload){ $table_name = "catalogs_brends"; $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $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']); if(isset($data['delete_video']) && $data['delete_video']==1){ $this->deleteBrendPic($data['update_id']); $fields_values['pic'] = null; } if($upload['pic']['tmp_name']){ if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic')); $name_pic = mktime() . "." . substr(strrchr($_FILES['pic']['name'],"."),1); $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/$name_pic"; move_uploaded_file($_FILES["pic"]["tmp_name"], $file_name); chmod($file_name,"0777"); $fields_values['pic'] = $name_pic; } if(isset($data['delete_pic_s']) && $data['delete_pic_s']==1){ $this->deleteBrendPic($data['update_id'],array('pic_s')); $fields_values['pic_s'] = null; } if($upload['pic_s']['tmp_name']){ if($data['update_id']>0)$this->deleteBrendPic($data['update_id'],array('pic_s')); $name_pic = mktime() . "." . substr(strrchr($_FILES['pic_s']['name'],"."),1); $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/$name_pic"; move_uploaded_file($_FILES["pic_s"]["tmp_name"], $file_name); chmod($file_name,"0777"); $fields_values['pic_s'] = $name_pic; } $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); } function deleteBrendPic($id,$pics = array('pic','pic_s')){ $sql = "select " . implode(',',$pics) . " from catalogs_brends where id=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); if(isset($row['pic'])){ $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/{$row['pic']}"; @unlink($file_name); } if(isset($row['pic_s'])){ $file_name = "{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/brends/s/{$row['pic_s']}"; @unlink($file_name); } } function viewBrends($type = false){ $sql = "select b.*,r.name as rubric from catalogs_brends b left join catalogs_rubrics r On r.id=b.rubric_id "; if($type!=false)$sql .= "where b.type='$type'"; $sql .= " Order by b.name Asc"; $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); $this->tpl->assign('brends',$row); } function viewBrendsGroup($params = array()){ $search = array(); if(isset($params['filter']) && count($params['filter'])>0)$filter = $this->seralizeFilter($params['filter']); if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ $search[] = "catalogs_keys_products_filters.filter_id in (".$params['filter_products'].")"; } if(isset($filter['y']) && $filter['y']>0){ $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; } if(isset($filter['f']) && count($filter['f'])>0){ $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; } if(isset($filter['g']) && count($filter['g'])>0){ $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; } if(isset($filter['s']) && count($filter['s'])>0){ $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; } if(isset($filter['r']) && count($filter['r'])>0){ $search[] = "m2.rost in (".implode(",",$filter['r']).")"; } if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("catalogs_products.active='%d'",$_GET['new']); if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("catalogs_products.top='%d'",$_GET['top']); if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("catalogs_products.akcii_id>'%d'",0); /*if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); $search[] = sprintf("catalogs_products.sex='%d'",$sex[$_GET['sex']]); }*/ if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = $this->seralizeSex($_GET['sex']); $search[] = "s.sex IN (" . implode(",",$sex) . ")"; } /* $sql = "select * from catalogs_products "; $sql .= "LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id "; if(isset($params['filter_products']) && strlen($params['filter_products'])>0 && !isset($filter['f'])){ //$sql .= "LEFT JOIN catalogs_products ON catalogs_products.brend_id=catalogs_brends.id "; $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; } if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; 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 "; 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 "; 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 ";} 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 ";} if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id ";} $sql .= "where catalogs_products.count_modifications>0 and catalogs_brends.id>0 "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; if(isset($params['rubID']) && !isset($params['filter_products'])){ $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']); $rubric_id = ($rubric_id==0)?$params['rubID']:$rubric_id; $sql .= "and catalogs_products.rubric_id='".$rubric_id."'"; } $sql .= " Group by catalogs_brends.name Order by catalogs_brends.name Asc"; // print $sql; $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); $this->tpl->assign('brends',$row); } */ // ==== catalogs_products ==== $sql = array (); $sql[] = "select * from catalogs_products "; $sql[] = "LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id "; if (isset ($params['filter_products']) && strlen ($params['filter_products']) > 0 && ! isset ($filter['f'])) { //$sql .= "LEFT JOIN catalogs_products ON catalogs_products.brend_id=catalogs_brends.id "; $sql[] = "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=catalogs_products.id "; } if (isset ($filter['y']) && $filter['y'] > 0) { $sql[] = "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=catalogs_products.id "; } 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 "; } 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 "; } 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 "; } 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 "; } if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) { $sql[] = "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=catalogs_products.id "; } $sql[] = "where catalogs_products.count_modifications > 0 and catalogs_brends.id > 0 "; if (count ($search)) { $sql[] = "AND " . implode(" AND ", $search) . " "; } if (isset ($params['rubID']) && ! isset ($params['filter_products'])) { $rubric_id = $params['rubID'];//$this->getRubricParent($params['rubID']); $rubric_id = ($rubric_id == 0) ? $params['rubID'] : $rubric_id; $sql[] = "and catalogs_products.rubric_id='".$rubric_id."'"; } $sql[] = " Group by catalogs_brends.name Order by catalogs_brends.name Asc"; if (count ($sql) > 4) { $row = $this->db->getAll(implode (' ', $sql), array(), DB_FETCHMODE_ASSOC); } else { // çíà÷èò ñòðàíèöà $row = array (); } $this->tpl->assign('brends', $row); } // ===== function viewBrendsActive(){ $sql = "select * from catalogs_brends where active=1 "; $sql .= " Order by name Asc"; $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); $this->tpl->assign('brends_a',$row); } function SaveCity($data){ $table_name = "catalogs_cities"; $DB_AUTOQUERY = (isset($data['update_id']) && $data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $fields_values = array('name'=>$data['name']); $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}"); return mysql_insert_id(); } function is_city($name){ return $this->db->getOne('select id from catalogs_cities where name=?',array($name)); } function viewCityMod($code){ $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"; $row = $this->db->getCol($sql,"name",array($code)); if(!count($row))return ""; if(count($row) == 1 && trim($row[0])==''){ return ""; } foreach($row as $key=>$value){if($value=="Èíòåðíåò ìàãàçèí" or $value=="Êèåâ(Îëèìïèéñêèé)" or $value=="Ëüâîâ" or trim($value)=="")unset($row[$key]);} $row2 = array(); foreach($row as $key=>$value) if(trim($value)!='') $row2[] = $value; $row = $row2; $l = array(); for($i=0;$idb->getCol($sql,"city_id",array($id)); $this->tpl->assign('product_cities',$row); } function viewCities($type = false){ $sql = "select * from catalogs_cities "; $sql .= " Order by name Asc"; $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); $this->tpl->assign('cities',$row); } function viewCitiesProduct($id){ $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=?"; $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('cities',$row); } function viewCity($id){ $row = $this->db->getRow("select * from catalogs_cities where id=?",array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('city', $row); } function deleteCity($id){ $this->db->query("delete from catalogs_cities where id=?",array($id)); $this->delete_keysCitiesProduct($id); } function delete_keysCitiesProduct($id){ $sql = "delete from catalogs_keys_products_cities where city_id=?"; $this->db->query($sql,array($id)); } function SaveYears($data){ $table_name = "catalogs_years"; foreach($data['filter'] as $key=>$name){ if(strlen($name)>0){ if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";} else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";} $this->db->autoExecute($table_name,array('name'=>$name,'rubric_id'=>$data['rubric_id']),$DB_AUTOQUERY,$where); } } } function viewYearsProduct($id){ $sql = "select y.* from catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id where k.product_id=?"; $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('product_years',$row); } function viewYearsProductID($id){ $sql = "select year_id from catalogs_keys_products_years where product_id=?"; $row = $this->db->getCol($sql,"year_id",array($id)); $this->tpl->assign('product_years',$row); } function viewYears ($rubric_id, $filters = null) { $search = array (); if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) $filter = $this->seralizeFilter ($_GET['filter']); if (isset ($filter['f']) && count ($filter['f']) > 0) { $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; } if (isset ($filter['s']) && count ($filter['s']) > 0) { $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; } if (isset ($filter['r']) && count ($filter['r']) > 0) { $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; } if (isset ($_GET['new']) && $_GET['new'] > 0) $search[] = sprintf ("p.active='%d'", $_GET['new']); if (isset ($_GET['top']) && $_GET['top'] > 0) $search[] = sprintf ("p.top='%d'", $_GET['top']); if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) $search[] = sprintf ("p.akcii_id>'%d'", 0); if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; /** * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); * } */ if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) { $sex = $this->seralizeSex ($_GET['sex']); $search[] = "s.sex IN (" . implode (",", $sex) . ")"; } if (strlen ($filters) > 0 && ! isset ($filter['f'])) { $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; } $sql = "select y.* from catalogs_products p, catalogs_keys_products_years k LEFT JOIN catalogs_years y ON y.id=k.year_id "; 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 "; 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 "; } 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 "; } if (strlen ($filters) > 0 && ! isset ($filter['f'])) { $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=k.product_id "; } if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) { $sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id "; } $sql .= "where p.id=k.product_id and p.count_modifications>0 "; if ($filters == null) $sql .= " and p.rubric_id='" . $rubric_id . "' "; if (count ($search)) $sql .= "AND " . implode (" AND ", $search) . " "; $sql .= " GROUP BY k.year_id order by y.name desc"; // print $sql; $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); $this->tpl->assign ('years', $row); } function viewYearsAll($rubric_id){ $sql = "SELECT * FROM catalogs_years WHERE rubric_id=? ORDER BY id asc "; $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); $this->tpl->assign('years', $row); } function viewSexProduct($id){ $sql = "select * from catalogs_keys_products_sex where product_id=?"; $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('product_sex',$row); } function viewSexProductID($id){ $sql = "select sex from catalogs_keys_products_sex where product_id=?"; $row = $this->db->getCol($sql,"sex",array($id)); $this->tpl->assign('product_sex',$row); } function viewSex ($rubric_id, $filters = null, $lang = 'rus') { $search = array (); if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) $filter = $this->seralizeFilter ($_GET['filter']); if (isset ($filter['f']) && count ($filter['f']) > 0) { $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; } if (isset ($filter['y']) && $filter['y'] > 0) { $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; } if (isset ($filter['s']) && count ($filter['s']) > 0) { $search[] = "catalogs_modifications.size in (" . implode (",", $filter['s']) . ")"; } if (isset ($filter['r']) && count ($filter['r']) > 0) { $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; } if (isset ($_GET['new']) && $_GET['new'] > 0) $search[] = sprintf ("p.active='%d'", $_GET['new']); if (isset ($_GET['top']) && $_GET['top'] > 0) $search[] = sprintf ("p.top='%d'", $_GET['top']); if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) $search[] = sprintf ("p.akcii_id>'%d'", 0); if (strlen ($filters) > 0 && ! isset ($filter['f'])) { $search[] = "catalogs_keys_products_filters.filter_id in (" . $filters . ")"; } if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; $sql = "select s.sex from catalogs_products p LEFT JOIN catalogs_keys_products_sex s ON s.product_id=p.id "; if (isset ($filter['f']) && count ($filter['f']) > 0) $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; if (isset ($filter['y']) && $filter['y'] > 0) $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; if (isset ($filter['s']) && count ($filter['s']) > 0) { $sql .= "LEFT JOIN catalogs_modifications ON catalogs_modifications.product_id=p.id and catalogs_modifications.active=1 "; } if (isset ($filter['r']) && count ($filter['r']) > 0) { $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 "; } if (strlen ($filters) > 0 && ! isset ($filter['f'])) { $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; } $sql .= "where p.count_modifications>0 and s.sex < 4 and p.sex > 0 "; if ($filters == null) $sql .= " and p.rubric_id='" . $rubric_id . "' "; if (count ($search)) $sql .= "AND " . implode (" AND ", $search) . " "; $sql .= " GROUP BY s.sex"; // print $sql; $res = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); // print_r($res); $sex = array (); if ($lang == 'ukr') $arr = array ( 1 => array ( 'name' => "×îëîâ³÷èé", 'link' => 'male' ), 2 => array ( 'name' => "Ƴíî÷èé", 'link' => 'female' ), 3 => array ( 'name' => "Äèòÿ÷èé", 'link' => 'child' ) ) // 4=>array('name'=>"Óí³ñåêñ",'link'=>'unisex') ; else $arr = array ( 1 => array ( 'name' => "Ìóæñêîé", 'link' => 'male' ), 2 => array ( 'name' => "Æåíñêèé", 'link' => 'female' ), 3 => array ( 'name' => "Äåòñêèé", 'link' => 'child' ) ) // 4=>array('name'=>"Óíèñåêñ",'link'=>'unisex') ; foreach ($res as $row) { $sex[] = $arr[$row['sex']]; } if (isset ($_GET['s'])) print_r ($sex); $this->tpl->assign ('sex', $sex); } function getYearsName_IDs($ids){ //$sql = "select name from catalogs_years where id in (".implode(",",$ids).") order by name"; //$row = $this->db->getCol($sql,"name",array()); //return implode(", ",$row); $name = array(); foreach($ids as $id){ $name[] = $this->db->getOne("select name from catalogs_years where id=$id",array()); } return implode(", ",$name); } function deleteYearsRubric_id($id){ $this->db->query("delete from catalogs_years where rubric_id=?",array($id)); $this->delete_keysYearsRubric($id); } function delete_keysYearsRubric($id){ $sql = "delete from catalogs_keys_products_years where rubric_id=?"; $this->db->query($sql,array($id)); } function deleteYear($id){ $this->db->query("delete from catalogs_years where id=?",array($id)); $this->delete_keysYearsProduct($id); } function delete_keysYearsProduct($id){ $sql = "delete from catalogs_keys_products_years where year_id=?"; $this->db->query($sql,array($id)); } function SaveFilters($data){ $table_name = "catalogs_filters"; foreach($data['filter'] as $key=>$name){ if(strlen($name)>0){ if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";} else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";} $active = (isset($data['active'][$key])) ? 1 : 0; $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); if(isset($data['cat'][$key])){$fields['cat'] = $data['cat'][$key];} $this->db->autoExecute($table_name,$fields,$DB_AUTOQUERY,$where); } } } function viewFilterProduct($id){ $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=?"; $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('product_filters',$row); return $row; } function viewFilterProductID($id){ $sql = "select filter_id from catalogs_keys_products_filters where product_id=?"; $row = $this->db->getCol($sql,"filter_id",array($id)); $this->tpl->assign('product_filters',$row); } function deleteFilter($id){ $this->db->query("delete from catalogs_filters where id=?",array($id)); $this->delete_keysFilterProduct($id); } function deleteFiltersRubric_id($rubric_id){ $this->db->query("delete from catalogs_filters where rubric_id=?",array($rubric_id)); $this->delete_keysFilterRubric($rubric_id); } function delete_keysFilterProduct($id){ $sql = "delete from catalogs_keys_products_filters where filter_id=?"; $this->db->query($sql,array($id)); } function delete_keysFilterRubric($id){ $sql = "delete from catalogs_keys_products_filters where rubric_id=?"; $this->db->query($sql,array($id)); } function viewFilters($rubric_id,$all = false,$lang = 'ru'){ $search = array(); if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); if(isset($filter['g']) && count($filter['g'])>0){ $search[] = "catalogs_keys_products_filters2.filter_id in (".implode(",",$filter['g']).")"; } if(isset($filter['y']) && $filter['y']>0){ $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; } if(isset($filter['s']) && count($filter['s'])>0){ $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; } if(isset($filter['r']) && count($filter['r'])>0){ $search[] = "m2.rost in (".implode(",",$filter['r']).")"; } if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; /* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); } */ if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = $this->seralizeSex($_GET['sex']); $search[] = "s.sex IN (" . implode(",",$sex) . ")"; } $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 "; 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 "; if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id "; 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 ";} 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 ";} if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";} $sql .= "where p.id=k.product_id and p.count_modifications>0 "; //$sql = "select * from catalogs_filters where 1=1 "; if($all == false)$sql .= "and f.active='0' "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc"; // print $sql; $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); $this->tpl->assign('filters', $row); } function viewFiltersAll($rubric_id){ $row = $this->db->getAll("select * from catalogs_filters where rubric_id=? order by sort",array($rubric_id),DB_FETCHMODE_ASSOC); $this->tpl->assign('filters', $row); } function getFiltersName_IDs($ids,$lang){ //$sql = "select name from catalogs_filters where id in (".implode(",",$ids).")"; //$row = $this->db->getCol($sql,"name",array()); $name = array(); foreach($ids as $id){ $row = $this->db->getRow("select h1".($lang=='ukr'?'_ukr':'')." as h1 from catalogs_filters where id=$id",array(),DB_FETCHMODE_ASSOC); $name[] = ((strlen($row['h1'])>0) ? $row['h1'] : $row['name']); } return implode(", ",$name); } function getFilters2Name_IDs($ids){ //$sql = "select name from catalogs_filters where id in (".implode(",",$ids).")"; //$row = $this->db->getCol($sql,"name",array()); $name = array(); foreach($ids as $id){ $row = $this->db->getRow("select h1,name from catalogs_filters2 where id=$id",array(),DB_FETCHMODE_ASSOC); $name[] = ((strlen($row['h1'])>0) ? $row['h1'] : $row['name']); } //print_r($name); return implode(", ",$name); } function SaveFilters2($data){ $table_name = "catalogs_filters2"; foreach($data['filter2'] as $key=>$name){ if(strlen($name)>0){ if(isset($data['update_id'][$key]) && $data['update_id'][$key]>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id='{$data['update_id'][$key]}'";} else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = "";} $active = (isset($data['active'][$key])) ? 1 : 0; $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); } } } function viewFilterProductID2($id){ $sql = "select filter_id from catalogs_keys_products_filters2 where product_id=?"; $row = $this->db->getCol($sql,"filter_id",array($id)); $this->tpl->assign('product_filters2',$row); } function deleteFilter2($id){ $this->db->query("delete from catalogs_filters2 where id=?",array($id)); $this->delete_keysFilterProduct2($id); } function delete_keysFilterProduct2($id){ $sql = "delete from catalogs_keys_products_filters2 where filter_id=?"; $this->db->query($sql,array($id)); } function deleteFiltersRubric_id2($rubric_id){ $this->db->query("delete from catalogs_filters2 where rubric_id=?",array($rubric_id)); $this->delete_keysFilterRubric2($rubric_id); } function delete_keysFilterRubric2($id){ $sql = "delete from catalogs_keys_products_filters2 where rubric_id=?"; $this->db->query($sql,array($id)); } function viewFilters2($rubric_id,$lang='ru'){ $search = array(); if(isset($_GET['filter']) && count($_GET['filter'])>0)$filter = $this->seralizeFilter($_GET['filter']); if(isset($filter['f']) && count($filter['f'])>0){ $search[] = "catalogs_keys_products_filters.filter_id in (".implode(",",$filter['f']).")"; } if(isset($filter['y']) && $filter['y']>0){ $search[] = "catalogs_keys_products_years.year_id in (".implode(",",$filter['y']).")"; } if(isset($filter['s']) && count($filter['s'])>0){ $search[] = "catalogs_modifications.size in (".implode(",",$filter['s']).")"; } if(isset($filter['r']) && count($filter['r'])>0){ $search[] = "m2.rost in (".implode(",",$filter['r']).")"; } if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); if(isset($_GET['brend']) && strlen($_GET['brend'])>0)$search[] = "p.brend_id in(".implode(",",$this->getBrendIDs_name($_GET['brend'])).")"; /* if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); } */ if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ $sex = $this->seralizeSex($_GET['sex']); $search[] = "s.sex IN (" . implode(",",$sex) . ")"; } $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 "; 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 "; if(isset($filter['y']) && $filter['y']>0)$sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=k.product_id "; 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 ";} 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 ";} if(isset($_GET['sex']) && strlen($_GET['sex'])>0){$sql .= "LEFT JOIN catalogs_keys_products_sex s ON s.product_id=k.product_id ";} $sql .= "where p.id=k.product_id and p.count_modifications>0 "; //$sql = "select * from catalogs_filters where 1=1 "; if($all == false)$sql .= "and f.active='0' "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= "and f.rubric_id=? GROUP BY k.filter_id order by f.sort asc"; //print $sql; $row = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); // $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); $this->tpl->assign('filters2', $row); } function getFiltersMod_IDs($ids){ $name = array(); foreach($ids as $id){ $name[] = $this->db->getOne("select size from catalogs_modifications where size=$id",array()); } return implode(", ",$name); } function viewFiltersMod ($rubric_id) { $search = array (); if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) $filter = $this->seralizeFilter ($_GET['filter']); if (isset ($filter['f']) && count ($filter['f']) > 0) { $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; } if (isset ($filter['y']) && $filter['y'] > 0) { $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; } if (isset ($filter['r']) && count ($filter['r']) > 0) { $search[] = "m2.rost in (" . implode (",", $filter['r']) . ")"; } if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; /* * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); * } */ if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) { $sex = $this->seralizeSex ($_GET['sex']); $search[] = "p.sex IN (" . implode (",", $sex) . ")"; } if (isset ($_GET['new']) && $_GET['new'] > 0) $search[] = sprintf ("p.active='%d'", $_GET['new']); if (isset ($_GET['top']) && $_GET['top'] > 0) $search[] = sprintf ("p.top='%d'", $_GET['top']); if (isset ($_GET['akciiID']) && $_GET['akciiID'] > 0) $search[] = sprintf ("p.akcii_id>'%d'", 0); $sql = "select m.* from catalogs_modifications m,catalogs_products p "; if (isset ($filter['f']) && count ($filter['f']) > 0) $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; if (isset ($filter['y']) && $filter['y'] > 0) $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; if (isset ($filter['r']) && count ($filter['r']) > 0) { $sql .= "LEFT JOIN catalogs_modifications m2 ON m2.product_id=p.id and m2.active=1 "; } $sql .= "where m.size<>'' "; if (count ($search)) $sql .= "AND " . implode (" AND ", $search) . " "; $sql .= " and m.product_id=p.id and m.active=1 and p.rubric_id=? and p.count_modifications>0 and m.size > 0 GROUP BY m.size"; $row = $this->db->getAll ($sql, array ( $rubric_id ), DB_FETCHMODE_ASSOC); if ($_GET['t'] == 1) { print "
";
        print_r ($row);
        print "
"; } $this->tpl->assign ('size', $row); } function viewFiltersRost ($rubric_id) { $search = array (); if (isset ($_GET['filter']) && count ($_GET['filter']) > 0) $filter = $this->seralizeFilter ($_GET['filter']); if (isset ($filter['f']) && count ($filter['f']) > 0) { $search[] = "catalogs_keys_products_filters.filter_id in (" . implode (",", $filter['f']) . ")"; } if (isset ($filter['y']) && $filter['y'] > 0) { $search[] = "catalogs_keys_products_years.year_id in (" . implode (",", $filter['y']) . ")"; } if (isset ($_GET['brend']) && strlen ($_GET['brend']) > 0) $search[] = "p.brend_id in(" . implode (",", $this->getBrendIDs_name ($_GET['brend'])) . ")"; /* * if(isset($_GET['sex']) && strlen($_GET['sex'])>0){ * $sex = array('male'=>1,'female'=>2,'child'=>3,'unisex'=>4); * $search[] = sprintf("p.sex='%d'",$sex[$_GET['sex']]); * } */ if (isset ($_GET['sex']) && strlen ($_GET['sex']) > 0) { $sex = $this->seralizeSex ($_GET['sex']); $search[] = "p.sex IN (" . implode (",", $sex) . ")"; } $sql = "select m.* from catalogs_modifications m, catalogs_products p "; if (isset ($filter['f']) && count ($filter['f']) > 0) $sql .= "LEFT JOIN catalogs_keys_products_filters ON catalogs_keys_products_filters.product_id=p.id "; if (isset ($filter['y']) && $filter['y'] > 0) $sql .= "LEFT JOIN catalogs_keys_products_years ON catalogs_keys_products_years.product_id=p.id "; $sql .= "where m.rost<>'' "; if (count ($search)) { $sql .= "AND " . implode (" AND ", $search) . " "; } $sql .= " and m.product_id=p.id and m.active=1 and p.rubric_id=? and p.count_modifications>0 GROUP BY m.rost"; $row = $this->db->getAll ($sql, array ( $rubric_id ), DB_FETCHMODE_ASSOC); if ($_GET['t'] == 1) { print "
";
        print_r ($row);
        print "
"; } $this->tpl->assign ('rost', $row); } function viewRostProduct($id){ $sql = "select m.* from catalogs_modifications m where m.product_id=? GROUP BY m.rost"; $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('product_rost',$row); } function viewFiltersInProducts($filter_products,$lang='ru'){ $search = array(); if(isset($_GET['new']) && $_GET['new']>0)$search[] = sprintf("p.active='%d'",$_GET['new']); if(isset($_GET['top']) && $_GET['top']>0)$search[] = sprintf("p.top='%d'",$_GET['top']); if(isset($_GET['akciiID']) && $_GET['akciiID']>0)$search[] = sprintf("p.akcii_id>'%d'",0); $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' "; if(count($search))$sql .= "AND " . implode(" AND ",$search) . " "; $sql .= 'GROUP BY k.filter_id order by f.sort'; //print $sql; $row = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); $this->tpl->assign('filters', $row); } function viewBrend($id){ $row = $this->db->getRow("select * from catalogs_brends where id=?",array($id),DB_FETCHMODE_ASSOC); $this->tpl->assign('brend', $row); } function viewBrendName($name){ $name = iconv("utf-8", "windows-1251", $name); $sql = "select * from catalogs_brends where name=? limit 1"; $row = $this->db->getRow($sql,array($name),DB_FETCHMODE_ASSOC); $this->tpl->assign('brend_seo', $row); return $row; } function getBrendIDs_name($name){ $n = array(); $name_arr = explode(";",$name); foreach($name_arr as $row){ $n[] = "'".$row."'"; } //$name = iconv("utf-8", "windows-1251", $name); $sql = "select id from catalogs_brends where name in (" . implode(",",$n) . ")"; //print $sql; return $this->db->getCol($sql,"id",array()); } function viewBrendRubrics($name,$lang = 'ru'){ $name = iconv("utf-8", "windows-1251", $name); $sql = "select r.name".(($lang=='ukr')?'_ukr':'')." as name,r.parent_id,r.translit,count(p.id) as c from catalogs_brends b Left Join catalogs_rubrics r On r.id=b.rubric_id Left Join catalogs_products p On p.brend_id=b.id AND p.count_modifications>0 where b.name=? and r.name<>'' Group by p.brend_id"; $res = $this->db->getAll($sql,array($name),DB_FETCHMODE_ASSOC); $rubrics = array(); foreach($res as $row){ if($row['c']>0){ $rubrics[$this->getRubricName($row['parent_id'],$lang)][] = $row; } } // print"
";
  // print_r($rubrics);
  // print"
"; $this->tpl->assign('brend_rubrics',$rubrics); } function deleteBrend($id){ $this->db->query("delete from catalogs_brends where id=?",array($id)); } function viewAkciiProductID($id){ $sql = "select rubric_id from catalogs_keys_products_akcii where product_id=?"; $row = $this->db->getCol($sql,"rubric_id",array($id)); $this->tpl->assign('product_akcii',$row); } function import_saveRubric($name,$parent_id){ $id = $this->db->getOne("select id from catalogs_rubrics where name=? and parent_id=?",array($name,$parent_id)); if( !$id ){ $this->db->autoExecute("catalogs_rubrics",array('name'=>$name,'translit'=>translit($name),'parent_id' => $parent_id,"level"=>($this->getLevelRubric($parent_id)+1)),DB_AUTOQUERY_INSERT); return mysql_insert_id(); } return $id; } function import_saveBrend($name,$rubric_id){ //getRubricParent(); $id = $this->db->getOne("select id from catalogs_brends where name=? and rubric_id=?",array($name,$rubric_id)); if( !$id ){ $this->db->autoExecute("catalogs_brends",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT); return mysql_insert_id(); } return $id; } function import_saveFilters2($rubric_id,$str){ if(!$str)return array(); $row_str = explode(",",trim($str)); $arr_id = array(); foreach($row_str as $str){ $name = trim($str); $name_r = explode('=',$name);$name = $name_r[0]; $active = (isset($name_r[1])) ? 1 : 0; $id = $this->db->getOne("select id from catalogs_filters2 where rubric_id=? and name=?",array($rubric_id,$name)); if( !$id ){ $this->db->autoExecute("catalogs_filters2",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_INSERT); $id = mysql_insert_id(); }else{ $this->db->autoExecute("catalogs_filters2",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_UPDATE,"id=$id");} $arr_id[] = $id; } return $arr_id; } function import_saveFilters($rubric_id,$str){ if(!$str)return array(); $row_str = explode(",",trim($str)); $arr_id = array(); foreach($row_str as $str){ $name = trim($str); $name_r = explode('=',$name);$name = $name_r[0]; $active = (isset($name_r[1])) ? 1 : 0; $id = $this->db->getOne("select id from catalogs_filters where rubric_id=? and name=?",array($rubric_id,$name)); if( !$id ){ $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_INSERT); $id = mysql_insert_id(); }else{ $this->db->autoExecute("catalogs_filters",array('rubric_id'=>$rubric_id,'name'=>$name,'prefix'=>encodestring($name),'active'=>$active),DB_AUTOQUERY_UPDATE,"id=$id");} $arr_id[] = $id; } return $arr_id; } function import_saveYear($rubric_id,$name){ if(!$name)return false; $id = $this->db->getOne("select id from catalogs_years where rubric_id=? and name=?",array($rubric_id,$name)); if( !$id ){ $this->db->autoExecute("catalogs_years",array('rubric_id'=>$rubric_id,'name'=>$name),DB_AUTOQUERY_INSERT); $id = mysql_insert_id(); } return ($id)?array($id):array(); } function import_updateProductCine($product_id,$row,$line='',$mktime = 0){ // print"
";print_r($row);print"
"; IF($product_id>0){ IF($row[3]>0){ if($row[2]<1){$cine=$row[1];$cine_last=0;} else {$cine=$row[2];$cine_last=(($row[1]>0)?$row[1]:$row[2]);} $this->db->autoExecute("catalogs_products",array('cine'=>$cine,'cine_last'=>$cine_last),DB_AUTOQUERY_UPDATE,"id='$product_id'"); } $city = trim($row[4]); if(!$city)$city = "Èíòåðíåò ìàãàçèí"; //echo "OK(1) -
"; if(strlen($city)>0){ //print $city; $city_id = $this->is_city($city); //echo "OK(2) -
"; if(!$city_id){$city_id = $this->SaveCity(array('name'=>$city));} $this->db->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktimedb->query("delete from catalogs_keys_products_cities where product_id=? and mod_code=? and mktime"; if($this->getKeysModificationCity($row[0], $city_id)){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "mod_code='".$row[0]."' and city_id='".$city_id."'";} else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = null;} // if($this->getKeysModificationCityMktime_count($row[0], $city_id, $mktime)>0){$row[3]=1;} //print $city_id .'--'.$where."
"; $fields = array('count'=>$row[3],'product_id'=>$product_id,'mod_code'=>$row[0],'city_id'=>$city_id,'mktime'=>$mktime); $s = $this->db->autoExecute("catalogs_keys_products_cities",$fields,$DB_AUTOQUERY,$where); if (PEAR::isError($s)) die($s->getMessage()); }} //echo "OK(4) -
"; $active = $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and count>0",array($row[0])); //$active = true; if($this->db->getOne("select count(*) from catalogs_modifications where code=?",array($row[0]))>0){ $this->db->autoExecute("catalogs_modifications",array('active'=>$active,'is_update'=>1,'prefix'=>$row[4]),DB_AUTOQUERY_UPDATE,"code='".$row[0]."'"); //echo "OK(5) -
"; }else{ //echo "OK(6) -
"; $this->saveCsvMod($line); } } } function saveCsvMod($line){ echo "OK1 -
"; $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/tmp/noDB_mod.csv"; $handle = @fopen($tmpfname, "a"); // $row = explode(";",$line); // File_FGetCSV::fputcsv($handle,$row,';'); echo "OK2 -
"; echo $line; echo "OK3 -
"; fwrite($handle,$line); fclose($handle); } function getKeysModificationCity($code, $city_id){ return $this->db->getOne("select count(*) from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id)); } function getKeysModificationCity_count($code, $city_id){ return $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=?", array($code, $city_id)); } function getKeysModificationCityMktime_count($code, $city_id, $mktime){ $r = $this->db->getOne("select count from catalogs_keys_products_cities where mod_code=? and city_id=? and mktime=?", array($code, $city_id, $mktime)); return $r; } function getProductID($name){ $id = $this->db->getOne("select id from catalogs_products where name=?",array($name)); return $id; } function getProductID_R ($name, $rubric_parent_id) { $id = $this->db->getOne ("select id from catalogs_products where name=? and rubric_id=?", array ( $name, $rubric_parent_id )); return $id; } function getModificationActive($code){ return $this->db->getOne("select active from catalogs_modifications where code=?",array($code)); } function updateProduct_countModification ($product_id, $count) { $this->db->autoExecute ("catalogs_products", array ( 'count_modifications' => $count ), DB_AUTOQUERY_UPDATE, "id='$product_id'"); } function updateProductModificationCountPrefix($product_id,$prefix = "+"){ // print $product_id; $sql = "UPDATE catalogs_products SET count_modifications = count_modifications $prefix 1 WHERE id =?"; $this->db->query($sql,array($product_id)); } function exportCSV(){ $tmpfname = "tmp/price.csv"; $handle = fopen($tmpfname, "w"); // fwrite($handle, $xml); $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()); foreach($res as $key=>$row){ $list = $row; $mod_res = $this->db->getAll('select code,size,color,pic_big,active from catalogs_modifications where product_id=? Order by id',array($row[0])); foreach($mod_res as $mod_row){$list[] = implode('=',$mod_row);} $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])); $list[8]=implode(',',$f_row); $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])); $list[9]=implode(',',$f_row); switch($list[10]){ case 1 : $list[10] = 'ìóæñêîé'; break; case 2 : $list[10] = 'æåíñêèé'; break; case 3 : $list[10] = 'äåòñêèé'; break; case 4 : $list[10] = 'óíèñåêñ'; break; default : $list[10] = 'ìóæñêîé'; break; } $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])); $list[11]=implode(',',$y_row); $p_row = $this->db->getCol("select pic_big from catalogs_gallery where product_id=?",'pic_big',array($list[0])); $list[20]=implode(',',$p_row); //print_r($list);exit; $p_res = $this->db->getAll("select name,size,metka from catalogs_products_params where product_id=? order by id asc",array($list[0])); $param = array(); foreach($p_res as $row_p){ $param[] = implode('*',$row_p); } $list[17] = implode('=',$param); unset($list[0]);unset($list[1]); File_FGetCSV::fputcsv($handle,$list,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportCSVaktual(){ $tmpfname = "tmp/price.csv"; $handle = fopen($tmpfname, "w"); // fwrite($handle, $xml); $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()); foreach($res as $key=>$row){ $list = $row; $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])); 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);} $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])); $list[8]=implode(',',$f_row); $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])); $list[9]=implode(',',$f_row); switch($list[10]){ case 1 : $list[10] = 'ìóæñêîé'; break; case 2 : $list[10] = 'æåíñêèé'; break; case 3 : $list[10] = 'äåòñêèé'; break; case 4 : $list[10] = 'óíèñåêñ'; break; default : $list[10] = 'ìóæñêîé'; break; } $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])); $list[11]=implode(',',$y_row); $p_row = $this->db->getCol("select pic_big from catalogs_gallery where product_id=?",'pic_big',array($list[0])); $list[20]=implode(',',$p_row); //print_r($list);exit; $p_res = $this->db->getAll("select name,size,metka from catalogs_products_params where product_id=? order by id asc",array($list[0])); $param = array(); foreach($p_res as $row_p){ $param[] = implode('*',$row_p); } $list[17] = implode('=',$param); unset($list[0]);unset($list[1]); File_FGetCSV::fputcsv($handle,$list,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'price.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportModCSV(){ $tmpfname = "tmp/price_mod.csv"; $handle = fopen($tmpfname, "w"); $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'); foreach($res as $key=>$row){ File_FGetCSV::fputcsv($handle,$row,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'file_1.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); $this->db->autoExecute("catalogs_modifications",array('is_update'=>0),DB_AUTOQUERY_UPDATE); } function exportUsersCSV(){ $tmpfname = "tmp/users.csv"; $handle = fopen($tmpfname, "w"); $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,summary,u.birthday,c.card FROM zlo_users AS u LEFT JOIN card c ON c.user_id = u.id LEFT JOIN zlo_users_group AS g ON u.group = g.id LEFT JOIN (SELECT user_id AS order_user_id, sum( `total` ) AS `summary` FROM catalogs_orders group by user_id ) o ON u.id = o.order_user_id "; $res = $this->db->getAll($sql); foreach($res as $key=>$row){ File_FGetCSV::fputcsv($handle,$row,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'users.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportUsersBirdthCSV(){ $tmpfname = "tmp/usersBirdth.csv"; $handle = fopen($tmpfname, "w"); $sql = "SELECT u.id,u.username,u.tel,u.city,u.email,g.name,u.registered,u.birthday,c.card FROM zlo_users AS u LEFT JOIN card c ON c.user_id = u.id LEFT JOIN zlo_users_group AS g ON u.group = g.id WHERE DAYOFMONTH(u.birthday) >= '19' AND DAYOFMONTH(u.birthday) <= '28' and MONTH(u.birthday) = '10' "; $res = $this->db->getAll($sql); foreach($res as $key=>$row){ File_FGetCSV::fputcsv($handle,$row,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'users.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportSeoF1CSV(){ $tmpfname = "tmp/seo_f1.csv"; $handle = fopen($tmpfname, "w"); $res = $this->db->getAll("select id,name,translit,name_h1 from catalogs_rubrics"); foreach($res as $key=>$row){ //$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])); //foreach($res_b as $row_b){ $list = array(); $f_res = $this->db->getAll("select id,prefix,name from catalogs_filters where rubric_id=?",array($row[0])); foreach($f_res as $f_row){ $list[0] = $row[0]; $list[1] = (strlen($row[3])>0) ? $row[3] : $row[1]; $list[2] = $f_row[2]; $list[3] = "http://extremstyle.ua/".$row[2]."-catalogs/filter;filter=f".$f_row[0]."_".$f_row[1]."/"; //$list[4] = $row_b[0]; File_FGetCSV::fputcsv($handle,$list,';'); } //} } $res = $this->db->getAll("select id,name,translit,name_h1 from catalogs_rubrics"); foreach($res as $key=>$row){ //$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])); //foreach($res_b as $row_b){ $list = array(); $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])); foreach($f_res as $f_row){ if(!strlen($f_row[0]))continue; $list[0] = $row[0]; $list[1] = (strlen($row[3])>0) ? $row[3] : $row[1]; $list[2] = $f_row[0]; $list[3] = "http://extremstyle.ua/".$row[2]."-catalogs/filter;brend=".$f_row[0]."/"; //$list[4] = $row_b[0]; File_FGetCSV::fputcsv($handle,$list,';'); } //} } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'seo_f1.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportSeoCSV(){ $tmpfname = "tmp/seo.csv"; $handle = fopen($tmpfname, "w"); $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'); foreach($res as $key=>$row){ $row[3] = $this->getFilterPh1($row[0]); if(!strlen($row[2]))$row[2] = $row[11]; $row[7] = "http://extremstyle.ua/".$row[9]."-catalogs/".$row[10]."-".$row[0]."/"; unset($row[9]);unset($row[10]);unset($row[11]); File_FGetCSV::fputcsv($handle,$row,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'seo.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportProductsSeoCSV(){ $tmpfname = "tmp/products_seo.csv"; $handle = fopen($tmpfname, "w"); $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')); foreach($res as $key=>$row){ $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",); $row[3] = $this->getFilterPh1($row[2]) .' '. str_replace($vowels, "", $row[3]); $row[8] = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/"; unset($row[6]);unset($row[7]); File_FGetCSV::fputcsv($handle,$row,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'products_seo.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportProducts2SeoCSV(){ $tmpfname = $_SERVER['DOCUMENT_ROOT'] . "/cron/products_seo.csv"; $handle = fopen($tmpfname, "w"); $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")'; $res = $this->db->getAll($sql,array('Dakine')); foreach($res as $key=>$row){ $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",); $row[3] = $this->getFilterPh1($row[2]) .' '. str_replace($vowels, "", $row[3]); $row[8] = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/"; unset($row[5]);unset($row[6]);unset($row[7]); File_FGetCSV::fputcsv($handle,$row,';'); } fclose($handle); } function exportProductsFeed(){ $tmpfname = "tmp/products_feed.csv"; $handle = fopen($tmpfname, "w"); $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'; $res = $this->db->getAll($sql,array()); $list = array('ID','ID2','Item title','Destination URL','Image URL','Item subtitle','Item description','Item category','Price','Sale price','Contextual keywords','Item address'); File_FGetCSV::fputcsv($handle,$list,','); foreach($res as $key=>$row){ $url = "http://extremstyle.ua/".$row[5]."-catalogs/".$row[6]."-".$row[2]."/"; $image = "http://extremstyle.ua/uploaded/pic/catalogs/products/".$row[8]; $subtitle = $row[1].' '.$row[9]; $list = array( $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], ); //print_r($list); unset($row[5]);unset($row[6]);unset($row[7]); File_FGetCSV::fputcsv($handle,$list,','); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'products_feed.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function exportOrdersCSV(){ $tmpfname = "tmp/orders.csv"; $handle = fopen($tmpfname, "w"); $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'); foreach($res as $key=>$row){ $products = $this->db->getAll("select p.* from catalogs_orders_products op LEFT JOIN catalogs_modifications m ON m.code=op.code LEFT JOIN catalogs_products p ON p.id=m.product_id where op.order_id=? GROUP BY p.id",array($row[0]),DB_FETCHMODE_ASSOC); $arr_products = array(); foreach($products as $p){ $arr_products[] = $p['name']; } $row[6] = implode(', ',$arr_products); File_FGetCSV::fputcsv($handle,$row,';'); } fclose($handle); $params = array( 'file' => $tmpfname, 'contenttype' => 'application/xls', 'contentdisposition' => array(HTTP_DOWNLOAD_ATTACHMENT, 'orders.csv'), 'cache' => false ); $error = HTTP_Download::staticSend($params, false); //îòäà¸ì ôàéë if ($error === true) { //åñëè ôàéë çàãðóæåí óñïåøíî, îáíîâëÿåì äàòó ïîñëåäíåé çàêà÷êè } unlink($tmpfname); } function deleteProductParams($product_id){ $sql = "delete from catalogs_products_params where product_id=?"; $this->db->query($sql,array($product_id)); } function saveProductParams($product_id,$pruduct_params){ $this->deleteProductParams($product_id); $array_params = explode("=",$pruduct_params); foreach($array_params as $row){ $arr = explode('*',$row); $this->db->autoExecute("catalogs_products_params",array('product_id'=>$product_id,'name'=>$arr[0],'size'=>$arr[1],'metka'=>$arr[2]),DB_AUTOQUERY_INSERT); } } function getProductParams($product_id){ $sql = "select * from catalogs_products_params where product_id=? order by id"; $row = $this->db->getAll($sql,array($product_id),DB_FETCHMODE_ASSOC); return $row; } function viewProductParams($product_id){ $this->tpl->assign('params',$this->getProductParams($product_id)); } /** * íóæíî äëÿ ïðîñìîòðà ïîâòîðåíèå ñòðîê â ôàéëå èìïîðòà */ function saveTmpProduct ($row, $product_id) { if ($product_id > 0) { $this->db->autoExecute ("catalogs_tmp_products", array ( 'name' => $row [3], 'product_id' => $product_id ), DB_AUTOQUERY_INSERT); } } function clearTmpProduct () { $sql = "TRUNCATE TABLE catalogs_tmp_products"; $this->db->query ($sql, array ()); } function viewTmpProducts () { $sql = " SELECT count( name ) AS cn, name FROM catalogs_tmp_products GROUP BY name ORDER BY name"; $row = $this->db->getAll ($sql, array (), DB_FETCHMODE_ASSOC); $this->tpl->assign ('list', $row); $this->tpl->assign ('list_total', $this->db->getOne (" select count(*) from catalogs_tmp_products ")); } function deleteGalleryProduct($id){ $sql = "select * from catalogs_gallery where product_id=?"; $res = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC); foreach($res as $row){ @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/gallery/{$row['pic']}"); $this->db->query("delete from catalogs_gallery where id=?",array($row['id'])); } } function saveGalleryPics($product_id,$pruduct_gallery_pics){ $this->deleteGalleryProduct($product_id); if(strlen($pruduct_gallery_pics)>0){ $arr = explode(",",$pruduct_gallery_pics); foreach($arr as $pic){ $pic = trim($pic); $id = $this->db->nextId('mySequence_catalogs_gallery'); $fields_values = array('id'=>$id,'name' => $pic,'product_id' => $product_id); $upload['pic'] = array('tmp_name'=>"./uploaded/pic/catalogs/products/big/$pic",'name'=>$pic); $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"100",'height'=>"100",'upload_path'=>"./uploaded/pic/catalogs/products/gallery/")); $fields_values['pic_big'] = $pic; $this->db->autoExecute("catalogs_gallery",$fields_values,DB_AUTOQUERY_INSERT); } } } function importCSV ($upload) { error_reporting (0); if ($upload['file']['name'] == "file_1.csv") { print "Îøèáêà! Ôàéë öåí!"; exit (); } // $arr_line = file($upload['file']['tmp_name']); $f = fopen ($upload['file']['tmp_name'], "r") or die ("Îøèáêà!"); // print"
";
 
     $this->clearTmpProduct();
 
     for ($i = 0; $row_line = File_FGetCSV::fgetcsv ($f, 15000, ";"); $i ++)
     {
         // foreach($arr_line as $line){
         // $row_line = fgetcsv(";",$line);
         $rubric_id = $this->import_saveRubric ($row_line [0], 0);
         $rubric_parent_id = $this->import_saveRubric ($row_line [1], $rubric_id);
         $brend_id = $this->import_saveBrend ($row_line [2], $rubric_parent_id);
         $pruduct_name = trim ($row_line [3]);
         $pruduct_about = trim ($row_line [4]);
         $pruduct_text = trim ($row_line [5]);
         $sex = explode (',', $row_line [8]);
         $pruduct_sex = array ();
 
         foreach ($sex as $s)
         {
             switch (trim ($s))
             {
                 case 'ìóæñêîé' :
                     $pruduct_sex [] = 1;
                     break;
                 case 'æåíñêèé' :
                     $pruduct_sex [] = 2;
                     break;
                 case 'äåòñêèé' :
                     $pruduct_sex [] = 3;
                     break;
                 case 'óíèñåêñ' :
                     $pruduct_sex [] = 4;
                     break;
                 default :
                     $pruduct_sex [] = array ();
                     break;
             }
         }
  
         $pruduct_date = trim ($row_line [9]);
         $pruduct_cine = trim ($row_line [10]);
         $pruduct_cine_last = trim ($row_line [11]);
 
         if ($pruduct_cine < 1)
         {
             $pruduct_cine = $pruduct_cine_last;
             $pruduct_cine_last = 0;
         }
 
         $pruduct_akcii_id = trim ($row_line [12]);
         $pruduct_strnumber = trim ($row_line [13]);
         $pruduct_active = trim ($row_line [14]);
         $pruduct_params = trim ($row_line [15]);
         $pruduct_pic_tmp = trim ($row_line [17]);
         $pruduct_gallery_pics = trim ($row_line [18]);
         $pruduct_video = trim ($row_line [16]);
         $pruduct_update_id = $this->getProductID_R ($pruduct_name, $rubric_parent_id);
 
         if ($pruduct_update_id > 0)
         {
             $row_product = $this->db->getRow ('
                select update_text, about, text
                from catalogs_products
                where id=?', array (
                     $pruduct_update_id
                 ),
                 DB_FETCHMODE_ASSOC
             );

             // íå îáíîâëÿòü ïðè èìïîðòå?
             // 0 - îáíîâëÿòü
             // 1 - íå îáíîâëÿòü
             if ($row_product['update_text'] == 1)
             {  
                 // about - ukr
                 $pruduct_about = $row_product['about'];
                 
                 // text - ru
                 $pruduct_text = $row_product['text'];
             } 
         }
 
         $upload_pruduct = (strlen ($pruduct_pic_tmp) > 0 && is_file ("./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp")) ? array (
             'pic' => array (
                 'tmp_name' => "./uploaded/pic/catalogs/products/big/$pruduct_pic_tmp",
                 'name' => $pruduct_pic_tmp,
                 'big' => true
             )
         ) : null;
 
         $product_id = $this->saveProduct (array (
             'rubric_id' => $rubric_parent_id,
             'rubric_parent_id' => $rubric_parent_id,
             'brend_id' => $brend_id,
             'name' => $pruduct_name,
             'about' => $pruduct_about,
             'update_text' => isset ($row_product['update_text']) ? $row_product['update_text'] : 0,
             'text' => $pruduct_text,
             'video_code' => $pruduct_video,
             'sex' => $pruduct_sex,
             'date' => $pruduct_date,
             'cine' => $pruduct_cine,
             'cine_last' => $pruduct_cine_last,
             'akcii_id' => $pruduct_akcii_id,
             'strnumber' => $pruduct_strnumber,
             'active' => $pruduct_active,
             'meta_title' => $pruduct_name,
             'meta_description' => $pruduct_name,
             'meta_keywords' => $pruduct_name,
             'meta_about' => $pruduct_name,
             'filter' => $this->import_saveFilters ($rubric_parent_id, $row_line [6]),
             'filter2' => $this->import_saveFilters2 ($rubric_parent_id, $row_line [7]),
             'years' => $this->import_saveYear ($rubric_parent_id, $pruduct_date),
             'akcii' => array (),
             'update_id' => $pruduct_update_id
         ), $upload_pruduct);
 
         // print $pruduct_update_id;exit;
         $this->saveProductParams ($product_id, $pruduct_params);
         $this->saveGalleryPics ($product_id, $pruduct_gallery_pics);
         // íå óäàëÿåì !
         //$this->deleteProductModifications ($product_id, true);
         $m_i = 0;
 
         for ($i = 19; $i < count ($row_line); $i ++)
         {
             $arr_mod = trim ($row_line [$i]);
 
             if (strlen ($arr_mod) > 0)
             {
                 $row_mod = explode ("=", $arr_mod);
 
                 $upload_mod = (strlen ($row_mod [3]) > 0 && is_file ("./uploaded/pic/catalogs/modifications/big/" . $row_mod [3])) ? array (
                     'pic' => array (
                         'tmp_name' => "./uploaded/pic/catalogs/modifications/big/" . $row_mod [3],
                         'name' => $row_mod [3],
                         'big' => true
                     )
                 ) : null;
 
                 $size_mod = explode ("*", $row_mod [1]);
                 $rost = (isset ($size_mod [1])) ? $size_mod [1] : '';
                 
                 // íàõîäèì modifications_id
                 $modifications_id = $this->getModification($product_id, $row_mod[0]);  

                 // ñîõðàíÿåì
                 $this->SaveModification (array (
                     'product_id' => $product_id,
                     'code' => $row_mod [0],
                     'size' => $size_mod [0],
                     'rost' => $rost,
                     'color' => $row_mod [2],
                     'active' => $row_mod [4],
                     'update_id' => (int)$modifications_id
                 ), $upload_mod); 
 
                 if ($row_mod[4] > 0)
                 {
                     $m_i ++;
                 }
             }
         }

         $this->updateProduct_countModification ($product_id, $m_i);
 
         // $this->import_saveFilters($product_id,$rubric_parent_id,$row_line[6]);
         // $strnumber = $this->getProductID($row_line[3]); $this->save_keysProductsFilters($id,$data);
         // print_r($row_line);
 
         $this->saveTmpProduct ($row_line, $product_id);
         if (($i % 30) == 0)
         {
             sleep (1);
         }
     }
     // print"
"; } function importCSV_cine ($upload) { if ($upload['file']['name'] != "file_1.csv") { print "Îøèáêà! Òîëüêî file_1.csv"; exit; } $arr_line = file ($upload['file']['tmp_name']); //print"
";
     $i = 0;
     $mktime = mktime();
     foreach ($arr_line as $line)
     {
         $row_line = explode (";", $line);
         $this->import_updateProductCine($this->getModificationProduct_id ($row_line[0]), $row_line, $line, $mktime);
 
         if (($i % 30) == 0)
         {
             sleep (1);
         }
 
         $i++;
     }
}

function loadCSV_cine($upload)
{
    if ($upload['file']['name'] != "file_1.csv")
    {
        print "Îøèáêà! Òîëüêî file_1.csv";
        exit;
    }
    
    $file = $_SERVER['DOCUMENT_ROOT'] . "/cron/file_1.csv";

    //echo $file;
    //exit;

    move_uploaded_file ($upload['file']['tmp_name'], $file);
}
  
function is_loadCSV_cine()
{
    $is = is_file($_SERVER['DOCUMENT_ROOT'] . '/cron/file_1.csv');
    $this->tpl->assign('is', $is);
}
 
function CronImportCSV_cine($upload)
{
    $this->importCSV_cine ($upload);
}
 
function updateCountModificationProducts ()
{
    $res = $this->db->getAll("
       select id
       from catalogs_products
    ", array (), DB_FETCHMODE_ASSOC);
 
    $i = 0;
 
    foreach ($res as $row)
    {
        $count = $this->db->getOne ("
           select count(*)
           from catalogs_modifications
           where product_id=? and active>0", array (
               $row['id']
           )
        );
 
        $this->db->autoExecute ("catalogs_products", array (
           'count_modifications' => $count
        ), DB_AUTOQUERY_UPDATE, "id='" . $row['id'] . "'");
 
        $i ++;
    }
}
 
 function config_update($id,$value){
  $this->db->autoExecute("catalogs_config",array('value'=>$value),DB_AUTOQUERY_UPDATE,"id='".$id."'");
 }
 
 function view_config_value($id){
  $r = $this->db->getOne("select value from catalogs_config where id=?",$id);
  $this->tpl->assign("config",$r);
  return $r;
 }
 
 function addViewProduct($product_id){
        $i = 0;
        foreach($_SESSION['view_product'] as $id){
                if($product_id==$id)$i++;
        }
        if($i==0)$_SESSION['view_product'][] = $product_id;
 }
 
 function viewUserProducts($limit = "all"){ //unset($_SESSION['view_product']);
  if(isset($_SESSION['view_product']) && count($_SESSION['view_product'])>0){        
  $sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products 
  LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  WHERE catalogs_products.id IN (".implode(",",$_SESSION['view_product']).") ";
  if($limit != "all")$sql .= "LIMIT ".$limit;
  $res = $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC);
  $this->tpl->assign("products_view",$res);
  }
 }
 
 function viewSimilarProducts($product_id,$brend,$rubric_id,$mods){
	IF($brend == 'Dakine'){
		$rub_arr = array(14071,14069,14070,14072);
		unset($rub_arr[array_search('rubric_id', $rub_arr)]);
		
		if(count($mods)>1){
			$r = array();
			foreach($mods as $key=>$mod){
	$r[$key]['color'] = 	$mod['color'];		
	$row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC);
	$sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products 
  LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  LEFT JOIN catalogs_modifications m ON m.product_id=catalogs_products.id
  WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cinedb->getAll($sql,array($row['cine'],$brend,$mod['color']),DB_FETCHMODE_ASSOC);
  
	
	$sql = "select catalogs_products.*,m.pic,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products 
  LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  LEFT JOIN catalogs_modifications m ON m.product_id=catalogs_products.id
  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";
  $r[$key]["products_similar_next"] = $this->db->getAll($sql,array($row['cine'],$brend,$mod['color']),DB_FETCHMODE_ASSOC);
  				
				
			}
//print_r($r);
$this->tpl->assign("products_similar",$r);			
		}
		else{
		
	$row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC);
	$sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products 
  LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  WHERE catalogs_products.rubric_id IN (".implode(',',$rub_arr).") and catalogs_products.count_modifications>0 and catalogs_products.cinedb->getAll($sql,array($row['cine'],$brend),DB_FETCHMODE_ASSOC);
  $this->tpl->assign("products_similar_prev",$res);
	
	$sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products 
  LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  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";
  $res = $this->db->getAll($sql,array($row['cine'],$brend),DB_FETCHMODE_ASSOC);
  $this->tpl->assign("products_similar_next",$res);		
		}
	} else{
	$row = $this->db->getRow("select * from catalogs_products where id=?",array($product_id),DB_FETCHMODE_ASSOC);
	$sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products 
  LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  WHERE catalogs_products.rubric_id=? and catalogs_products.count_modifications>0 and catalogs_products.cinedb->getAll($sql,array($row['rubric_id'],$row['cine']),DB_FETCHMODE_ASSOC);
  $this->tpl->assign("products_similar_prev",$res);
	
	$sql = "select catalogs_products.*,catalogs_brends.name as brend_name,r.translit as rubric_translit from catalogs_products 
  LEFT JOIN catalogs_brends ON catalogs_brends.id=catalogs_products.brend_id
  LEFT JOIN catalogs_rubrics r ON r.id=catalogs_products.rubric_id
  WHERE catalogs_products.rubric_id=? and catalogs_products.count_modifications>0 and catalogs_products.cine>? Order by catalogs_products.cine DESC LIMIT 5";
  $res = $this->db->getAll($sql,array($row['rubric_id'],$row['cine']),DB_FETCHMODE_ASSOC);
  $this->tpl->assign("products_similar_next",$res);
	}  
 }

 function displayCatalogsCurs(){
  $this->tpl->assign("tpl",'catalogs_curs.tpl');
 }
 
 function displayCatalogs(){
  $this->tpl->assign("tpl",'catalogs.tpl');
 }
 
 function displayProducts(){
  $this->tpl->assign("tpl",'catalogs_product-list.tpl');
 }
 
 function displayProductsTops(){
  $this->tpl->assign("tpl",'catalogs_products_tops.tpl');
 }
 
 function displayProductsHits(){
  $this->tpl->assign("tpl",'catalogs_products_hits.tpl');
 }
 
 function displayProductsHitsAll(){
  $this->tpl->assign("tpl",'catalogs_products_hits_all.tpl');
 }

 function displayBasket($count_products,$cine_products,$cine_products_discount,$discount){
  $this->tpl->assign("count_products",$count_products);
  $this->tpl->assign("cine_products",$cine_products);
  $this->tpl->assign("cine_products_discount",$cine_products_discount);
  $this->tpl->assign("discount",$discount);
  $this->tpl->display('basket.tpl');
 }
 
 function displayProduct(){
  $this->tpl->assign("tpl",'catalogs_product.tpl');
 }
 
 function displayProductBasket(){
  $this->tpl->assign("tpl",'catalogs_basket.tpl');
 }
 
 function displayBrends(){
  $this->tpl->assign("tpl",'catalogs_brends.tpl');
 }
 
 function displayBrend(){
  $this->tpl->assign("tpl",'catalogs_brend.tpl');
 }
 
 function displayCities(){
  $this->tpl->assign("tpl",'catalogs_cities.tpl');
 }

 function displayProductBasketSend(){
  $this->tpl->assign("tpl",'catalogs_basket_send.tpl');
 }
 
 function displayReg(){
  $this->tpl->assign("tpl",'catalogs_reg.tpl');
 }
 
 function displayEditUser(){
  $this->tpl->assign("tpl",'catalogs_user_edit.tpl');
 }
 
 function displayNoPsw(){
  $this->tpl->assign("tpl",'catalogs_nopsw.tpl');
 }
 
 function displayOrders(){
  $this->tpl->assign("tpl",'catalogs_orders.tpl');
 }
 
 function displayOrder(){
  $this->tpl->assign("tpl",'catalogs_order.tpl');
 }
 
 function displayUsers(){
  $this->tpl->assign("tpl",'catalogs_users.tpl');
 }
 
 function displayUser(){
  $this->tpl->assign("tpl",'catalogs_user.tpl');
 }
 
 function displayFilters(){
  $this->tpl->assign("tpl",'catalogs_filters.tpl');
 }
 
 function displayFilters2(){
  $this->tpl->assign("tpl",'catalogs_filters2.tpl');
 } 
 
 function displayYears(){
  $this->tpl->assign("tpl",'catalogs_years.tpl');
 }
 
 function displayWinProducts(){
  $this->tpl->display('catalogs_win_products.tpl');
 }
 
 function displayModifications(){
  $this->tpl->assign("tpl",'catalogs_modifications.tpl');
 }
 
 function displayImport(){
  $this->tpl->assign("tpl",'catalogs_import.tpl');
 }
 
 function displayImportCine(){
  $this->tpl->assign("tpl",'catalogs_import_cine.tpl');
 }
 
 function displayAkcii(){
  $this->tpl->assign("tpl",'catalogs_akcii.tpl');
 }
 
 function displayCompare(){
  $this->tpl->assign("tpl",'catalogs_compare.tpl');
 }
 
 function displayTmpProducts(){
  $this->tpl->assign("tpl",'catalogs_tmp_products.tpl');
 }
 
}
?>