reviews.class.php 2.27 KB
<?php
Class Reviews{
	private $db;
	private $lang;
	
 
	function __construct($lang){
		$this->db = sdb::getInstance();
		$this->lang = $lang;
	}
	
	public function valid($data){
		$error = array();
		if(isset($data['name'])){
			if( !preg_match("/.{1,100}/i",$data['name']) ) $error[] = "Îøèáêà ââîäà ïîëÿ Èìÿ (Ìàêñèìóì 100 ñèìâîëîâ).";
		}
  
		if(isset($data['title'])){
			if( !preg_match("/.{1,200}/i",$data['title']) ) $error[] = "Îøèáêà ââîäà ïîëÿ Çàãëàâèå (Ìàêñèìóì 200 ñèìâîëîâ).";
		}
		
		if(isset($data['comment'])){
			if( !preg_match("/.+/i",$data['comment']) ) $error[] = "Îøèáêà ââîäà ïîëÿ Êîììåíòàðèé";
		}
		
		if(isset($data['order_email'])){
			if( !preg_match("/^([^@]+)+@([^@]+)\.([^@]+)$/i",$data['order_email']) || strlen($data['order_email'])>80 ) $error[] = "Îøèáêà ââîäà ïîëÿ E-mail, äî 80 ñèìâîëîâ.";
		}		
  
		return $error;
	}
	
	public function save($data){
		$fields_values = array(
		'active'=>$data['active'],
		'name'=>$data['name'],
		'title'=>$data['title'],
		'comment'=>$data['comment'],
		);
   
		$this->db->autoExecute("reviews", $fields_values, DB_AUTOQUERY_UPDATE,"id={$data['update_id']}");
	}

	public function getAll(){
		$sql = "select * from reviews where active=? order by mktime desc";
		$search = array();
		$sql = "select * from reviews where 1=1 ";
		if(count($search))$sql .= "AND " . implode(" AND ",$search)." ";
		$sql .= "order by mktime desc";
		$pagerOptions = Array(
			'mode' => 'Sliding',
			'delta' => 6,
			'perPage' => 10,
			'spacesBeforeSeparator' => 1,
			'spacesAfterSeparator' => 1
		);
		$res = Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array());
		foreach($res['data'] as $key=>$row){
			if($row['type']=="products"){
				$res['data'][$key]['type_data'] = $this->db->getRow("select * from catalogs_products where id=?",array($row['type_id']),DB_FETCHMODE_ASSOC);
			}elseif($row['type']=="news"){
				$res['data'][$key]['type_data'] = $this->db->getRow("select * from news where id=?",array($row['type_id']),DB_FETCHMODE_ASSOC);
			}
		}
		return $res;
	}

	public function view($id){
		$sql = "select * from reviews where id=? limit 1";
		return $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
	}

	public function delete($id){
		$this->db->query("delete from reviews where id=?",array($id));
	} 	
	
}
?>