gallery_list.class.php 7.54 KB
<?php
class GalleryList{
 var $db = null;
 var $tpl = null;
 var $error = null;
 var $photo_id = null;


 function GalleryList(&$db,&$tpl,&$error){
  $this->db = &$db;
  $this->tpl = &$tpl;
  $this->error = &$error;
 }


 function trim(&$data){
  foreach($data as $key=>$value){
   $data[$key] = trim($value);
  }
 }
 

 function valid($data,$upload = null){

  if(isset($data['name'])){
   if( !preg_match("/.{1,150}/i",$data['name']) ) $this->error[] = "Îøèáêà ââîäà ïîëÿ Íàçâàíèÿ èçîáðàæåíèÿ.";
  }

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

 return ( count($this->error) ) ? true : false;
 }
 
 function deletePicsGallery($id){
  $sql = "select pic,pic_big from catalogs_gallery where id=?";
  $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
  @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/gallery/{$row['pic']}");
  //@unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/catalogs/products/big/{$row['pic_big']}");
 }

 function deleteGallery($id){
  $this->deletePicsGallery($id);
  $sql = "delete from catalogs_gallery where id=?";
  $this->db->query($sql,array($id));
 }
 
 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){
		$this->deleteGallery($row['id']);
	}
 }
 
 function deleteRoom($id){
  $sql = "select pic from rooms where id=?";
  $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
  @unlink("{$_SERVER['DOCUMENT_ROOT']}/uploaded/pic/gallery/rooms/{$row['pic']}");
  $sql = "delete from rooms where id=?";
  $this->db->query($sql,array($id));
 }
 
 function viewGalleryOne($id){
  $sql = "select * from catalogs_gallery where id=?";
  $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
  $this->tpl->assign('pic',$row);
 }
 

 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 viewCheckPhotos(){
  $sql = "select gallery.*,topic.id as topic_id,topic.comments as topic_comments, firms.name as firm_name from gallery left join topic on topic.parent_table='gallery' Left join firms on firms.id=gallery.firm_id where gallery.active=? and topic.parent_table_id=gallery.id order by gallery.mktime desc";
  $row = $this->db->getAll($sql,array(1),DB_FETCHMODE_ASSOC);
  $this->tpl->assign('photosCheck',$row);
 }
 

 function SaveGallery($data,$upload){
 $table_name = "catalogs_gallery";
 if(isset($data['update_id']) && $data['update_id']>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$id = $data['update_id'];$where = "id=$id";}
 else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$id = $this->db->nextId('mySequence_catalogs_gallery');$where = null;}
 
 $fields_values = array('id'=>$id,'name' => $data['name'],'product_id' => $data['product_id']);

  if($upload['pic']['tmp_name']){
   $this->deletePicsGallery($id);
   $fields_values['pic'] = upload_ImageResize($upload['pic'],array('width'=>"100",'height'=>"100",'upload_path'=>"./uploaded/pic/catalogs/products/gallery/"));
   $fields_values['pic_big'] = upload_ImageResize($upload['pic'],array('width'=>"600",'height'=>"600",'upload_path'=>"./uploaded/pic/catalogs/products/big/"));
  }
 $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,$where);
 return $id;
 }
 
 function SaveRubric($data,$num){
 $table_name = "gallery_rubrics";
 $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT;
 $where = ($data['update_id']>0) ? "id=".$data['update_id'] : null;
 $fields_values = array('name' => $data['rubric'],'num' => $num);

  $this->db->autoExecute($table_name,$fields_values,$DB_AUTOQUERY,$where);
 }
 
 function viewRubrics($num){
  $sql = "select * from gallery_rubrics where num=?";
  $row = $this->db->getAll($sql,array($num),DB_FETCHMODE_ASSOC);
  $this->tpl->assign('rubrics'.$num,$row);
 }
 
 function getRubrics($num){
  $sql = "select * from gallery_rubrics where num=?";
  return $this->db->getAll($sql,array($num),DB_FETCHMODE_ASSOC);
 }
 
 function viewRubric($id){
  $sql = "select * from gallery_rubrics where id=?";
  $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC);
  $this->tpl->assign('rubric',$row);
 }
 
 function deleteRubric($id){
  $sql = "delete from gallery_rubrics where id=?";
  $this->db->query($sql,array($id));
 }
 
 function countPhotosFirm($firm_id){
  $data = array();
  $sql = "select count(id) from gallery where 1=1";
  if($firm_id!='All'){$sql .= " and firm_id=?";$data[] = $firm_id;}
  $count = $this->db->getOne($sql,$data);
  $this->tpl->assign('count_photos',$count);
 }
 

 function viewGallery($params = array()){
  $search = array();
  if(isset($params['productID']) && $params['productID']>0)$product_id = $params['productID'];else $product_id = 0;
  
  $sql = "select * from catalogs_gallery where product_id=? ";
  if(count($search))$sql .= " and " . implode(" and ",$search)." ";
  $sql .= "order by id asc";

  $pagerOptions = Array(
    'mode' => 'Sliding',
    'delta' => 6,
    'perPage' => 15,
    'spacesBeforeSeparator' => 1,
    'spacesAfterSeparator' => 1
  );
  $this->tpl->assign('galleryAllData', Pager_Wrapper_DB($this->db, $sql, $pagerOptions, false, DB_FETCHMODE_ASSOC, array($product_id)));
 }
 
 function viewGalleryProduct($id){
  $sql = "select * from catalogs_gallery where product_id=? order by id asc";
  $row = $this->db->getAll($sql,array($id),DB_FETCHMODE_ASSOC);
  $this->tpl->assign('gallery', $row);
 }
 
 function viewGalleryRubrics($params = array(),$what = 1){
  $search = array();
  //if(isset($params['rubID']) && $params['rubID']>0)$search[] = sprintf("gallery.group_id=%d",$params['rubID']);
  if(isset($params['parentID']) && $params['parentID']>0)$parentID = $params['parentID'];else $parentID = 0;

  $sql = "select gallery.*,gallery_rubrics.name as rubric,topic.id as topic_id,topic.comments as topic_comments from gallery Left Join gallery_rubrics On gallery_rubrics.id=rubric_id Left Join topic On topic.parent_table='gallery' And topic.parent_table_id=gallery.id  where parent_id=? and what=? and rubric_id=? ";
 // if(count($search))$sql .= " and " . implode(" and ",$search)." ";
  if($parentID>0)$sql .= "order by rubric_id asc";
  else $sql .= "order by sort asc";
  $row = array();
  foreach($this->getRubrics($what) as $key=>$rub){
  $row[$key]['rubric'] = $rub['name'];
  $row[$key]['gallery'] = $this->db->getAll($sql,array($parentID,$what,$rub['id']),DB_FETCHMODE_ASSOC);
  }
  
  //print_r($row);
  
  $this->tpl->assign('gallery', $row);
 }
 

 function displayServiceGallery(){
  $this->tpl->assign("service_tpl",'gallery.tpl');
 }
 
 function displayGallery(){
  $this->tpl->assign("tpl",'gallery_list.tpl');
 }
 
 function displayGalleryParent(){
  $this->tpl->assign("tpl",'gallery_parent.tpl');
 }
 
 function displayGallery3(){
  $this->tpl->assign("tpl",'gallery3.tpl');
 }
 
 function displayGallerySave(){
  $this->tpl->assign("tpl",'gallery_list_save.tpl');
 }
 
 function displayGallerySave2(){
  $this->tpl->assign("tpl",'gallery_save2.tpl');
 }
 

 function displayRooms(){
  $this->tpl->assign("tpl",'rooms_gallery.tpl');
 }

 function displayGalleryBar(){
  $this->tpl->display('gallery_bar.tpl');
 }
 

}
?>