brends.class.php 5.29 KB
<?php
Class Brends{
	private $db;
	private $lang;
	private $path_pic = array('pic'=>"./pics/brends/",
							  'pic_logo'=>"./pics/brends/logo/");
						   
	function __construct($lang){
		$this->db = sdb::getInstance();
		$this->lang = $lang;
	}
	
	public function valid($data){
		$error = array();
		if(!preg_match("/.{1,50}/i",$data['name']))$error[] = "error name";
		return $error;
	}

	public function viewRubric($id){
		return $this->db->getRow("select * from catalogs_brends where id=?",array($id),DB_FETCHMODE_ASSOC);
	}	

	public function getRubrics_begin(){
		$sql = "select id,parent_id,name_{$this->lang} as name from catalogs_brends where parent_id=? order by sort";
		return $this->db->getAll($sql,array(0),DB_FETCHMODE_ASSOC);
	}
	
	// public function getRubrics_tree($id = 0,&$rubrics = array()){
		// $sql = "select * from catalogs_rubrics where parent_id=? order by sort asc";
		// $res = $this->db->query($sql,array($id));
			// while ($res->fetchInto($row,DB_FETCHMODE_ASSOC)){
				// $rubrics[] = $row;
				// $this->getRubrics_tree($row['id'],$rubrics);
			// }

		// return $rubrics;
	// }
	
 public function getRubrics_tree($id = 0,$no_id = 0,$level = -1,&$rubrics = array()){
  $sql = "select * from catalogs_brends where parent_id=?";
  if($no_id>0)$sql .= sprintf(" and id<>'%d'",$no_id);
  $sql .= " order by sort";
  $res = $this->db->query($sql,array($id));
  $level++;
  while($row = $res->fetchRow(DB_FETCHMODE_ASSOC)){
    $row['level'] = $level;
    $rubrics[] = $row;
    $this->getRubrics_tree($row['id'],$no_id,$level,$rubrics);
  }
 /* foreach($res as $row){
   $menu[] = $row;
   $this->getMenu($row['id'],$menu);
  } */
  

 return $rubrics;
 }
 
	
	public function saveRubric($data,$upload){
		$table_name = "catalogs_brends";
		$DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
		$fields_values = array(
								'sort' => $data['sort'],
								'name' => $data['name'],
								'translit' => ($data['translit']) ? $data['translit'] : translitIt($data['name']),
								'url' => $data['url'],
								'meta_title' => $data['meta_title'],
								'meta_description' => $data['meta_description'],
								'meta_keywords' => $data['meta_keywords'],
								'meta_about' => $data['meta_about']
								);
	if(isset($data['delete_pic']) && $data['delete_pic']==1){
		if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic'));
		$fields_values['pic'] = null;
	}
	if($upload['pic']['tmp_name']){
		if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic'));
        $type = substr(strrchr($upload['pic']['name'], "."), 1);
        $fields_values['pic'] = mktime() . "." . $type;
		move_uploaded_file($_FILES['pic']['tmp_name'], $this->path_pic['pic'] . $fields_values['pic']);
		//$fields_values['pic'] = upload_ImageResize2($upload['pic'],array('width'=>"900",'height'=>"900",'upload_path'=>$this->path_pic['pic']));
	}
	
	if(isset($data['delete_pic_logo']) && $data['delete_pic_logo']==1){
		if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic_logo'));
		$fields_values['pic_logo'] = null;
	}
	if($upload['pic_logo']['tmp_name']){
		if($data['update_id']>0)$this->deletePic($data['update_id'],array('pic_logo'));
        $type = substr(strrchr($upload['pic_logo']['name'], "."), 1);
        $fields_values['pic_logo'] = mktime() . "." . $type;
		move_uploaded_file($_FILES['pic_logo']['tmp_name'], $this->path_pic['pic_logo'] . $fields_values['pic_logo']);
		//$fields_values['pic_logo'] = upload_ImageResize2($upload['pic_logo'],array('width'=>"900",'height'=>"900",'upload_path'=>$this->path_pic['pic_logo']));
	}	
	
		$res = $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,"id={$data['update_id']}");
		if (PEAR::isError($res)) die($res->getMessage());
 }
 
 private function deletePic($id,$pics = array('pic','pic_logo')){
  $sql = "select ".implode(',',$pics)." from catalogs_brends where id=?";
  $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
  if($row['pic'])@unlink($this->path_pic['pic'] . $row['pic']);
  if($row['pic_logo'])@unlink($this->path_pic['pic_logo'] . $row['pic_logo']);
 } 


	public function deleteRubric($id, $where = "id"){
		$i = 0;
		//while($id>0){
			//$where = ($i == 0) ? "id" : "parent_id";
			$ids = $this->db->getAll("select id from catalogs_brends where " . $where . "=?",array($id),DB_FETCHMODE_ASSOC);
			foreach($ids as $id){
			$this->deletePic($id['id']);
			$this->db->query("delete from catalogs_brends where id=?",array($id['id']));
			$this->deleteKeysBrend($id['id']);
			$this->deleteRubric($id['id'],"parent_id");
			}
			$i++;
		//}
	}
	
	public function saveKeys($shop_id,$brends){
		$this->deleteKeysShop($shop_id);
		if(count($brends))
		foreach($brends as $key=>$id){
			$fields_values = array('shop_id'=>$shop_id,'brend_id'=>$id);
			$this->db->autoExecute("catalogs_brends_keys",$fields_values,DB_AUTOQUERY_INSERT);
		}
	}
	
	public function deleteKeysShop($shop_id){
		$sql = "delete from catalogs_brends_keys where shop_id=?";
		$this->db->query($sql,array($shop_id));
	}
	
	public function deleteKeysBrend($brend_id){
		$sql = "delete from catalogs_brends_keys where brend_id=?";
		$this->db->query($sql,array($brend_id));
	}	

	public function getShopBrends($shop_id){
		$sql = "select * from catalogs_brends_keys where shop_id=?";
		return $this->db->getAll($sql,array($shop_id),DB_FETCHMODE_ASSOC);
	}

}
?>