| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 | <?phpdefined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_app_class('admin', 'admin', 0);class comment_admin extends admin {	private $comment_setting_db,$comment_data_db,$comment_db,$siteid;	function __construct() {		parent::__construct();		$this->comment_setting_db = pc_base::load_model('comment_setting_model');		$this->comment_data_db = pc_base::load_model('comment_data_model');		$this->comment_db = pc_base::load_model('comment_model');		$this->siteid = $this->get_siteid();	}		public function init() {		$data = $this->comment_setting_db->get_one(array('siteid'=>$this->siteid));		if (isset($_POST['dosubmit'])) {			$guest = isset($_POST['guest']) && intval($_POST['guest']) ? intval($_POST['guest']) : 0;			$check = isset($_POST['check']) && intval($_POST['check']) ? intval($_POST['check']) : 0;			$code = isset($_POST['code']) && intval($_POST['code']) ? intval($_POST['code']) : 0;			$add_point = isset($_POST['add_point']) && abs(intval($_POST['add_point'])) ? intval($_POST['add_point']) : 0;			$del_point = isset($_POST['del_point']) && abs(intval($_POST['del_point'])) ? intval($_POST['del_point']) : 0;			$sql = array('guest'=>$guest, 'check'=>$check, 'code'=>$code, 'add_point'=>$add_point, 'del_point'=>$del_point);			if ($data) {				$this->comment_setting_db->update($sql, array('siteid'=>$this->siteid));			} else {				$sql['siteid'] = $this->siteid;				$this->comment_setting_db->insert($sql);			}			showmessage(L('operation_success'), HTTP_REFERER);		} else {			$show_header = true;			include $this->admin_tpl('comment_setting');		}	}		public function lists() {		$show_header = true;		$commentid =  isset($_GET['commentid']) && trim($_GET['commentid']) ? trim($_GET['commentid']) : showmessage(L('illegal_parameters'), HTTP_REFERER);		$hot =  isset($_GET['hot']) && intval($_GET['hot']) ? intval($_GET['hot']) : 0;		$comment = $this->comment_db->get_one(array('commentid'=>$commentid, 'siteid'=>$this->siteid));		if (empty($comment)) {			$forward = isset($_GET['show_center_id']) ? 'blank' : HTTP_REFERER;			showmessage(L('no_comment'), $forward);		}		pc_base::load_app_func('global');		pc_base::load_sys_class('format','', 0);		$page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;		$pagesize = 20;		$offset = ($page-1)*$pagesize;		$this->comment_data_db->table_name($comment['tableid']);		$desc = 'id desc';		if (!empty($hot)) {			$desc = 'support desc, id desc';		}		$list = $this->comment_data_db->select(array('commentid'=>$commentid, 'siteid'=>$this->siteid, 'status'=>1), '*', $offset.','.$pagesize, $desc);		$pages = pages($comment['total'], $page, $pagesize);		include $this->admin_tpl('comment_data_list');	}	public function listinfo() {				$r = $max_table = '';		$max_table = isset($_GET['max_table']) ? intval($_GET['max_table']) : 0;		if (!$max_table) {			$r = $this->comment_db->get_one(array(), 'MAX(tableid) AS tableid');			if (!$r['tableid']) {				showmessage(L('no_comment'));			}			$max_table = $r['tableid'];		}		$page = max(intval($_GET['page']), 1);		$tableid = isset($_GET['tableid']) ? intval($_GET['tableid']) : $max_table;		if ($tableid > $max_table) {			$tableid = $max_table;		}		if (isset($_GET['search'])) {			$where = $sql = $t = $comment_id = $order = '';			$keywords = safe_replace($_GET['keyword']);			$searchtype = intval($_GET['searchtype']);			switch ($searchtype) {				case '0':					$sql = "SELECT `commentid` FROM `phpcms_comment` WHERE `siteid` = '$this->siteid' AND `title` LIKE '%$keywords%' AND `tableid` = '$tableid' ";									$this->comment_db->query($sql);						$data = $this->comment_db->fetch_array();					if (!empty($data)) {						foreach ($data as $d) {							$comment_id .= $t.'\''.$d['commentid'].'\'';							$t = ',';						}						$where = "`commentid` IN ($comment_id)";					}				break;				case '1':					$keywords = intval($keywords);					$sql = "SELECT `commentid` FROM `phpcms_comment` WHERE `commentid` LIKE 'content_%-$keywords-%' ";					$this->comment_db->query($sql);					$data = $this->comment_db->fetch_array();					if (!empty($data)) {						foreach ($data as $d) {							$comment_id .= $t.'\''.$d['commentid'].'\'';							$t = ',';						}						$where = "`commentid` IN ($comment_id)";					} 				break;				case '2':					$where = "`username` = '$keywords'";				break;			}		} 		$data = array();								if (isset($_GET['search'])) {			if(!empty($where)){				$where .= ' AND siteid='.$this->siteid;			}else{				pc_base::load_sys_class('format','', 0);				$data= '';				include $this->admin_tpl('comment_listinfo');				exit;			}		}else{			$where = 'siteid='.$this->siteid;  		} 				$order = '`id` DESC';		pc_base::load_sys_class('format','', 0);		$this->comment_data_db->table_name($tableid);		$data = $this->comment_data_db->listinfo($where, $order, $page, 10);		$pages = $this->comment_data_db->pages;		include $this->admin_tpl('comment_listinfo');	}	public function del() {		if (isset($_GET['dosubmit']) && $_GET['dosubmit']) {			$ids = $_GET['ids'];			$tableid = isset($_GET['tableid']) ? intval($_GET['tableid']) : 0;			$r = $this->comment_db->get_one(array(), 'MAX(tableid) AS tableid');			$max_table = $r['tableid'];			if (!$tableid || $max_table<$tableid) showmessage(L('illegal_operation'));			$this->comment_data_db->table_name($tableid);			$site = $this->comment_setting_db->site($this->siteid);			if (is_array($ids)) {				foreach ($ids as $id) {					$comment_info = $this->comment_data_db->get_one(array('id'=>$id), 'commentid, userid, username');					//判断总数是否为0  					$comment_allinfo = $this->comment_db->get_one(array('commentid'=>$comment_info['commentid']),'*');					if($comment_allinfo['total']<=0){						showmessage('评论统计不正常,请返回检查!', HTTP_REFERER);					}					$this->comment_db->update(array('total'=>'-=1'), array('commentid'=>$comment_info['commentid']));					$this->comment_data_db->delete(array('id'=>$id));					//当评论ID不为空,站点配置了删除的点数,支付模块存在的时候,删除用户的点数。					if (!empty($comment_info['userid']) && !empty($site['del_point']) && module_exists('pay')) {						pc_base::load_app_class('spend', 'pay', 0);						$op_userid = param::get_cookie('userid');						$op_username = param::get_cookie('admin_username');						spend::point($site['del_point'], L('comment_point_del', '', 'comment'), $comment_info['userid'], $comment_info['username'], $op_userid, $op_username);					}				}				$ids = implode(',', $ids);			} elseif (is_numeric($ids)) {				$id = intval($ids);				$comment_info = $this->comment_data_db->get_one(array('id'=>$id), 'commentid, userid, username');				//判断总数是否为0 				$comment_allinfo = $this->comment_db->get_one(array('commentid'=>$comment_info['commentid']),'*');				if($comment_allinfo['total']<=0){					showmessage('评论统计不正常,请返回检查!', HTTP_REFERER);				}				$this->comment_db->update(array('total'=>'-=1'), array('commentid'=>$comment_info['commentid']));				$this->comment_data_db->delete(array('id'=>$id));				//当评论ID不为空,站点配置了删除的点数,支付模块存在的时候,删除用户的点数。				if (!empty($comment_info['userid']) && !empty($site['del_point']) && module_exists('pay')) {					pc_base::load_app_class('spend', 'pay', 0);					$op_userid = param::get_cookie('userid');					$op_username = param::get_cookie('admin_username');					spend::point($site['del_point'], L('comment_point_del', '', 'comment'), $comment_info['userid'], $comment_info['username'], $op_userid, $op_username);				}			} else {				showmessage(L('illegal_operation'));			}			showmessage(L('operation_success'), HTTP_REFERER);		}	}}
 |