<?php
class News{
	var $id;
	var $reftitle;
	private $db;
	private $nwtm;
	
	function __construct(){
		global $db, $nwtm;
		$this->db = $db;
		$this->nwtm = $nwtm;
		$this->id = '';
	}
	
	function setId($id){
		$this->id = $this->db->clean($id);
	}
	
	function setRefTitle($reftitle){
		$this->reftitle = $this->db->clean($reftitle);
	}
	
	function checkExist($newsref){
		global $db;
		
		$sqls = array();
		if (!empty($this->id)){
			array_push($sqls,'newsid <> \''.$this->id.'\'');
		}
		array_push($sqls,'ref_title = \''.$db->clean($newsref).'\'');
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		
		$checkexist = $db->fetch_one("SELECT * FROM pagenews".$sql);
		if (sizeof($checkexist) > 0){
			return true;
		}
		else{
			return false;
		}
	}
	
	function getTotalNews($mode){
		global $db;
		
		$sqls = array();
		if (!empty($this->ctgid)){
			array_push($sqls,$this->generateSQLCtg($this->ctgid,'newsid'));
		}
		if ($mode == 'partial'){
			array_push($sqls,'status = 1');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbproduct = $db->query("SELECT * FROM pagenews".$sql);

		return @mysql_num_rows($dbproduct);
	}
	
	
	function newsList($mode,$page = -1,$sortorder = ''){
		global $db,$userdetail,$general,$dpug;
		
		$sqls = array();
		if (!empty($this->ctgid)){
			array_push($sqls,$this->generateSQLCtg($this->ctgid,'newsid'));
			/* array_push($sqls,'p.categoryid IN ('.$this->ctgid.')'); */
		}
		if ($mode == 'partial'){
			array_push($sqls,'status = 1');
		}
		
		$limits = '';
		if ($page != -1){
			$limits = ' LIMIT '.($page-1)*$general['showperpage'].','.$general['showperpage'];
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		
		$sort = '';
		$order = '';
		switch ($sortorder){
			case 'desc' : $order = ' DESC'; break;
			default : $order = ' ASC'; break;
		}
		
		$dbnews = $db->fetch_all("SELECT * FROM pagenews".$sql. " ORDER BY createddate DESC".$limits);
		

		return $dbnews;
	}
	
	function getNewsList($mode = ''){
		global $db;
		
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'status = 1 AND type_of_page = 1');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbnews = $db->fetch_all("SELECT * FROM pagenews".$sql." ORDER BY sort");
		
		return $dbnews;
	}
	
	function getNewsDetail(){
		global $db;
		
		$sqls = array();
		if (!empty($this->reftitle)){
			array_push($sqls,'ref_title = \''.$this->reftitle.'\'');
		}
		else if (!empty($this->id)){
			array_push($sqls,'newsid = \''.$this->id.'\'');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbnews = $db->fetch_one("SELECT * FROM pagenews".$sql);
		
		return $dbnews;
	}
	
	function getLastOrder(){
		global $db;
		
		$lastorder = $db->fetch_one("SELECT * FROM pagenews ORDER BY sort DESC LIMIT 1");
		if (sizeof($lastorder) > 0){
			return $lastorder['sort'] + 1;
		}
		return 1;
	}
	
	function savePage($newsref,$newstitle1,$newscontent1,$newstitle2,$newscontent2,$typeofpage,$pagestatus,$userid){
		global $db;
		
		$inserts['ref_title'] = $newsref;
		$inserts['title_1'] = $newstitle1;
		$inserts['content_1'] = $newscontent1;
		$inserts['title_2'] = $newstitle2;
		$inserts['content_2'] = $newscontent2;
		$inserts['createddate'] = time();
		$inserts['createdby'] = $userid;
		$inserts['lastediteddate'] =time();
		$inserts['lasteditedby'] = $userid;
		$inserts['sort'] = $this->getLastOrder();
		$inserts['type_of_page'] = $typeofpage;
		$inserts['status'] = $pagestatus;
		
		return $db->insert("pagenews",$inserts);
	}
	
	function updatePage($newsref,$newstitle1,$newscontent1,$newstitle2,$newscontent2,$typeofpage,$pagestatus,$userid){
		global $db;
		
		if (!empty($this->id)){
			$updates['ref_title'] = $newsref;
			$updates['title_1'] = $newstitle1;
			$updates['content_1'] = $newscontent1;
			$updates['title_2'] = $newstitle2;
			$updates['content_2'] = $newscontent2;
			$updates['lastediteddate'] = time();
			$updates['lasteditedby'] = $userid;
			$updates['type_of_page'] = $typeofpage;
			$updates['status'] = $pagestatus;
			
			$db->update("pagenews",$updates,"newsid='".$this->id."'");
		
			return true;
		}
	}
	
	function updateSort($pageorder){
		global $db;
		
		if (!empty($this->id)){
			$updates['sort'] = $pageorder;
			
			$db->update("pagenews",$updates,"newsid='".$this->id."'");
		
			return true;
		}
	}
	
/*	function searchPage($keyword,$mode){
		global $db;
		
		$sqls = array();
		if ($mode == 'partial'){
			array_push($sqls,'status = 1');
		}
		
		if (!empty($keyword)){
			array_push($sqls,'title LIKE (\'%'.$keyword.'%\')');
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		$dbpage = $db->fetch_all("SELECT * FROM page".$sql." ORDER BY sort");
		
		return $dbpage;
	}*/
	
	function searchPage($keyword,$field,$sortfield,$sortdetail,$getreturn,$page = -1){
		global $db, $general, $newpage, $langid;
		
		$addlimit = '';
		if ($page > 0){
			$addlimit = ' LIMIT '.($page-1)*$general['showperpageadmin'].','.$general['showperpageadmin'];
		}
		
		$sqls = array();
			
		$fields = 'title';
		
		if (isset($keyword)){
			$strinarr = '';
			$groupby = '';
			
			$arr1 = array_search('title',$field);	
			if ($arr1 !== false){
				$strinarr = 'title_'.$langid.' LIKE (\'%'.$db->clean($keyword[$arr1]).'%\')';
				array_push($sqls,$strinarr);
				$fields = 'title';
			}
			$arr2 = array_search('sort',$field);
			if ($arr2 !== false){
				$strinarr = 'sort LIKE (\'%'.$db->clean($keyword[$arr2]).'%\')';
				array_push($sqls,$strinarr);
				$fields = 'title';
			}
			$arr3 = array_search('status',$field);
			if ($arr3 !== false){
				$strinarr = 'status LIKE (\''.$db->clean($keyword[$arr3]).'%\')';
				array_push($sqls,$strinarr);
				$fields = 'title';
			}
		}
		
		$sql = '';
		if (sizeof($sqls) > 0){
			$sql = ' WHERE '.implode(' AND ',$sqls);
		}
		
		if ($getreturn == 'data'){
			$orders = 'ASC';
			if (!empty($sortdetail)){
				$orders = $sortdetail;
			}
		
			switch ($sortfield){
				case 'sorttitle': $fields = 'title_1'; break;
				case 'sortsort': $fields = 'sort'; break;
				case 'sortstatus': $fields = 'status'; break;
				default: $fields = 'sort'; break;
			}
			
			$dball = $db->fetch_all("SELECT * FROM pagenews ".$sql." ORDER BY ".$fields." ".$orders.$addlimit);
			
			return $dball;
		}
		else if ($getreturn == 'pagenav'){
			$dball = $db->fetch_one("SELECT COUNT(newsid) AS totalrecord FROM pagenews".$sql);
			
			if ($dball['totalrecord'] > 0){
				$totalrecord = $dball['totalrecord'];
				$totalpage = ceil($totalrecord / $general['showperpageadmin']);
				$page = handlepage($page,$totalpage);
				$startrecord = ($page - 1) * $general['showperpageadmin'] + 1;
				$endrecord = $startrecord + $general['showperpageadmin'] - 1;
				if ($endrecord > $totalrecord){
					$endrecord = $totalrecord;
				}
			}
			else{
				$page = 0;
				$totalrecord = 0;
				$totalpage = 0;
				$startrecord = 0;
				$endrecord = 0;
			}
			
			return $page.'|^|'.$totalrecord.'|^|'.$totalpage.'|^|'.$startrecord.'|^|'.$endrecord;
		}
	}
	
	function deletePage(){
		global $db;
		
		if (!empty($this->id)){			
			$db->query("DELETE FROM pagenews WHERE newsid='".$this->id."'");
		}
	}
	
	function limitWord($string, $word_limit) {
        $words = explode(" ", $string);
        return implode(" ", array_splice($words, 0, $word_limit));
    }
}
?>