shops.class.php 2.65 KB
<?php
Class Shops{
 private $db;
 private $lang;
 private $path_pic = array('pic'=>"./pics/shops/");

 function __construct($lang){
  $this->db = sdb::getInstance();
  $this->lang = $lang;
 }
 
 public function valid($data,$upload = null){
  $error = array();

  if(!preg_match("/.{1,200}/i",$data['adress']))$error[] = "Îøèáêà ââîäà Àäðåñ!";
  
  if(isset($upload['pic']['name']) && $upload['pic']['name']!=null){
   $type = substr(strrchr($upload['pic']['name'],"."),1);
   if( !preg_match("/^(jpeg|jpg|gif|png)$/i",$type) ) $error[] = "Îøèáêà ââîäà ïîëÿ Èçîáðàæåíèÿ, òîëüêî jpg,png,gif.";
  }

  return $error;
 }
 
 public function save($data,$upload = null){
  $table_name = "shops";
  $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;

  $fields_values = array("adress"=>$data['adress'],
						"city"=>$data['city'],
						"rayon"=>$data['rayon'],
						"name"=>$data['name'],
						"contacts"=>$data['contacts'],
                         'url' => $data['url']);

  if(isset($data['delete_pic']) && $data['delete_pic']==1){
   if($data['update_id']>0)$this->deletePic($data['update_id']);
   $fields_values['pic'] = null;
  }
  if($upload['pic']['tmp_name']){
   if($data['update_id']>0)$this->deletePic($data['update_id']);
   $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"126",'height'=>"35",'upload_path'=>$this->path_pic['pic']));
  }

  $this->db->autoExecute($table_name, $fields_values, $DB_AUTOQUERY,"id={$data['update_id']}");
	if (PEAR::isError($res)) die($res->getMessage());
	$id = ($data['update_id']>0) ? $data['update_id'] : mysql_insert_id();  
  
	$brends = new Brends($this->lang);
	$brends->saveKeys($id,$data['brends']);
		
  return $id;
 }
 
 function deletePic($id){
  $sql = "select pic from shops where id=?";
  $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
  @unlink($this->path_pic['pic'] . $row['pic']);
 }
 
 function delete($id){
	$this->deletePic($id);
	$this->db->query("delete from shops where id=?",array($id));
	$brends = new Brends($this->lang);	
	$brends->deleteKeysShop($id);	
 } 
 
 public function getShops($param = array()){
  $search = array();
  $sql = "select * from shops where 1=1 ";
  if(count($search))$sql .= "AND " . implode(" AND ",$search)." ";
  $sql .= "order by id desc";
  $pagerOptions = Array(
    'mode' => 'Sliding',
    'delta' => 6,
    'perPage' => 10,
    'spacesBeforeSeparator' => 1,
    'spacesAfterSeparator' => 1
  );
  return Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
 }
 
 function view($id){
  $sql = "select * from shops where id=? limit 1";
  return $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
 }
 
}
?>