Server : nginx/1.22.1
System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/www.jkmold.com/phpcms/modules/comment/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpcms/modules/comment/comment_admin.php
<?php

defined('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);

		}

	}

}