"./pics/foto/rubrics/",'gallery_pic'=>"./pics/foto/",'gallery_pic_big'=>"./pics/foto/big/"); 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 foto_rubrics where id=?",array($id),DB_FETCHMODE_ASSOC); } public function getRubrics_begin(){ $sql = "select id,parent_id,name_{$this->lang} as name from foto_rubrics where parent_id=? order by sort"; return $this->db->getAll($sql,array(0),DB_FETCHMODE_ASSOC); } public function getRubrics(){ $sql = "select * from foto_rubrics where 1=1"; $sql .= " order by sort"; return $this->db->getAll($sql,array(),DB_FETCHMODE_ASSOC); } public function saveRubric($data,$upload){ $table_name = "foto_rubrics"; $DB_AUTOQUERY = ($data['update_id']>0) ? DB_AUTOQUERY_UPDATE : DB_AUTOQUERY_INSERT; $fields_values = array( 'sort' => $data['sort'], 'name' => $data['name'], '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']); $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('crop'=>true,'width'=>"147",'height'=>"147",'upload_path'=>$this->path_pic['pic'])); } //print_r($fields_values); $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){ $sql = "select pic from foto_rubrics where id=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); @unlink($this->path_pic['pic'] . $row['pic']); } public function deleteRubric($id){ $this->deletePic($id); $this->db->query("delete from foto_rubrics where id=?",array($id)); $this->deleteGalleryRubric($id); } public function getGallery($rubric_id = 0){ $search = array(); if($rubric_id>0)$search[] = sprintf("rubric_id='%d'",$rubric_id); $sql = "select * from foto_gallery where 1=1 "; if(count($search))$sql .= "AND " . implode(" AND ",$search)." "; $sql .= "order by id desc"; //print $sql; $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()); } public function saveGallery($data,$upload = null){ $table_name = "foto_gallery"; if($data['update_id']>0){$DB_AUTOQUERY = DB_AUTOQUERY_UPDATE;$where = "id={$data['update_id']}";}else{$DB_AUTOQUERY = DB_AUTOQUERY_INSERT;$where = null;} $fields_values = array("name"=>$data['name'], "rubric_id"=>$data['rubric_id'] ); if(isset($data['delete_pic']) && $data['delete_pic']==1){ if($data['update_id']>0)$this->deletePic_gallery($data['update_id']); $fields_values['pic'] = null; $fields_values['pic_big'] = null; } if($upload['pic']['tmp_name']){ if($data['update_id']>0)$this->deletePic_gallery($data['update_id']); $fields_values['pic'] = upload_ImageResize($upload['pic'],array('crop'=>true,'width'=>"147",'height'=>"147",'upload_path'=>$this->path_pic['gallery_pic'])); $fields_values['pic_big'] = upload_ImageResize($upload['pic'],array('width'=>"700",'height'=>"700",'upload_path'=>$this->path_pic['gallery_pic_big'])); } $this->db->autoExecute($table_name, $fields_values, $DB_AUTOQUERY,$where); } private function deletePic_gallery($id){ $sql = "select pic,pic_big from foto_gallery where id=?"; $row = $this->db->getRow($sql,array($id),DB_FETCHMODE_ASSOC); @unlink($this->path_pic['gallery_pic'] . $row['pic']); @unlink($this->path_pic['gallery_pic_big'] . $row['pic_big']); } public function getGalleryOne($id){ return $this->db->getRow("select * from foto_gallery where id=?",array($id),DB_FETCHMODE_ASSOC); } public function deleteGallery($id){ $this->deletePic_gallery($id); $this->db->query("delete from foto_gallery where id=?",array($id)); } private function deleteGalleryRubric($rubric_id){ $sql = "select * from foto_gallery where rubric_id=?"; $res = $this->db->getAll($sql,array($rubric_id),DB_FETCHMODE_ASSOC); foreach($res as $row){ $this->deleteGallery($row['id']); } } } ?>