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;$i
"; 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 .= "
";
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) -
";
$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.cine and catalogs_brends.name=? and m.color=? and m.active=1 Order by catalogs_products.cine DESC LIMIT 5";
$r[$key]["products_similar_prev"] = $this->db->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.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_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.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_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');
}
}