123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- <?php
- /**
- * CMS评论
- *
- *
- ***/
- defined('InShopNC') or exit('Access Invalid!');
- class commentControl extends CMSHomeControl{
- public function __construct() {
- parent::__construct();
- //是否关闭投稿功能
- if(intval(C('cms_comment_flag')) !== 1) {
- showMessage(Language::get('comment_closed'),'','','error');
- }
- }
- /**
- * 评论保存
- **/
- public function comment_saveOp() {
- $data = array();
- $data['result'] = 'true';
- $comment_object_id = intval($_POST['comment_object_id']);
- $comment_type = $_POST['comment_type'];
- $model_name = '';
- $count_field = '';
- switch ($comment_type) {
- case 'article':
- $comment_type = self::ARTICLE;
- $model_name = 'cms_article';
- $count_field = 'article_comment_count';
- $comment_object_key = 'article_id';
- break;
- case 'picture':
- $comment_type = self::PICTURE;
- $model_name = 'cms_picture';
- $count_field = 'picture_comment_count';
- $comment_object_key = 'picture_id';
- break;
- default:
- $comment_type = 0;
- break;
- }
- if($comment_object_id <= 0 || empty($comment_type) || empty($_POST['comment_message'])) {
- $data['result'] = 'false';
- $data['message'] = Language::get('wrong_argument');
- self::echo_json($data);
- }
- if(!empty($_SESSION['member_id'])) {
- $param = array();
- $param['comment_type'] = $comment_type;
- $param["comment_object_id"] = $comment_object_id;
- if (strtoupper(CHARSET) == 'GBK'){
- $param['comment_message'] = Language::getGBK(trim($_POST['comment_message']));
- } else {
- $param['comment_message'] = trim($_POST['comment_message']);
- }
- $param['comment_member_id'] = $_SESSION['member_id'];
- $param['comment_time'] = time();
- $model_comment = Model('cms_comment');
- if(!empty($_POST['comment_id'])) {
- $comment_detail = $model_comment->getOne(array('comment_id'=>$_POST['comment_id']));
- if(empty($comment_detail['comment_quote'])) {
- $param['comment_quote'] = $_POST['comment_id'];
- } else {
- $param['comment_quote'] = $comment_detail['comment_quote'].','.$_POST['comment_id'];
- }
- } else {
- $param['comment_quote'] = '';
- }
- $result = $model_comment->save($param);
- if($result) {
- //评论计数加1
- $model = Model($model_name);
- $update = array();
- $update[$count_field] = array('exp',$count_field.'+1');
- $condition = array();
- $condition[$comment_object_key] = $comment_object_id;
- $model->modify($update, $condition);
- //返回信息
- $data['result'] = 'true';
- $data['message'] = Language::get('nc_common_save_succ');
- $data['member_name'] = $_SESSION['member_name'].Language::get('nc_colon');
- $data['member_avatar'] = getMemberAvatar($_SESSION['member_avatar']);
- $data['member_link'] = SITEURL.DS.'index.php?act=member_snshome&mid='.$_SESSION['member_id'];
- $data['comment_message'] = parsesmiles(stripslashes($param['comment_message']));
- $data['comment_time'] = date('Y-m-d H:i:s',$param['comment_time']);
- $data['comment_id'] = $result;
- } else {
- $data['result'] = 'false';
- $data['message'] = Language::get('nc_common_save_fail');
- }
- } else {
- $data['result'] = 'false';
- $data['message'] = Language::get('no_login');
- }
- self::echo_json($data);
- }
- /**
- * 评论列表
- **/
- public function comment_listOp() {
- $page_count = 5;
- $order = 'comment_id desc';
- if($_GET['comment_all'] === 'all') {
- $page_count = 10;
- $order = 'comment_up desc, comment_id desc';
- }
- $comment_object_id = intval($_GET['comment_object_id']);
- $comment_type = 0;
- switch ($_GET['type']) {
- case 'article':
- $comment_type = self::ARTICLE;
- break;
- case 'picture':
- $comment_type = self::PICTURE;
- break;
- }
- if($comment_object_id > 0 && $comment_type > 0) {
- $condition = array();
- $condition["comment_object_id"] = $comment_object_id;
- $condition["comment_type"] = $comment_type;
- $model_cms_comment = Model('cms_comment');
- $comment_list = $model_cms_comment->getListWithUserInfo($condition, $page_count, $order);
- Tpl::output('comment_list', $comment_list);
- if($_GET['comment_all'] === 'all') {
- Tpl::output('show_page', $model_cms_comment->showpage(2));
- }
- $comment_quote_id = '';
- $comment_quote_list = array();
- if(!empty($comment_list)) {
- foreach ($comment_list as $value) {
- if(!empty($value['comment_quote'])) {
- $comment_quote_id .= $value['comment_quote'].',';
- }
- }
- }
- if(!empty($comment_quote_id)) {
- $comment_quote_list = $model_cms_comment->getListWithUserInfo(array('comment_id'=>array('in', $comment_quote_id)));
- }
- if(!empty($comment_quote_list)) {
- $comment_quote_list = array_under_reset($comment_quote_list, 'comment_id');
- }
- Tpl::output('comment_quote_list', $comment_quote_list);
- Tpl::showpage('comment_list','null_layout');
- }
- }
- /**
- * 评论删除
- **/
- public function comment_dropOp() {
- $data['result'] = 'false';
- $data['message'] = Language::get('nc_common_del_fail');
- $comment_id = intval($_POST['comment_id']);
- if($comment_id > 0) {
- $model_comment = Model('cms_comment');
- $comment_info = $model_comment->getOne(array('comment_id'=>$comment_id));
- if($comment_info['comment_member_id'] == $_SESSION['member_id']) {
- $result = $model_comment->drop(array('comment_id'=>$comment_id));
- if($result) {
- $comment_type = $_GET['type'];
- switch ($comment_type) {
- case 'article':
- $comment_type = self::ARTICLE;
- $model_name = 'cms_article';
- $count_field = 'article_comment_count';
- $comment_object_key = 'article_id';
- break;
- case 'picture':
- $comment_type = self::PICTURE;
- $model_name = 'cms_picture';
- $count_field = 'picture_comment_count';
- $comment_object_key = 'picture_id';
- break;
- default:
- $comment_type = 0;
- break;
- }
- //评论计数减1
- $model = Model($model_name);
- $update = array();
- $update[$count_field] = array('exp',$count_field.'-1');
- $condition = array();
- $condition[$comment_object_key] = $comment_object_id;
- $model->modify($update, $condition);
- $data['result'] = 'true';
- $data['message'] = Language::get('nc_common_del_succ');
- }
- }
- }
- self::echo_json($data);
- }
- /**
- * 评论顶
- **/
- public function comment_upOp() {
- $data = array();
- $data['result'] = 'true';
- $comment_id = intval($_POST['comment_id']);
- if($comment_id > 0) {
- $model_comment_up = Model('cms_comment_up');
- $param = array();
- $param['comment_id'] = $comment_id;
- $param['up_member_id'] = $_SESSION['member_id'];
- $is_exist = $model_comment_up->isExist($param);
- if(!$is_exist) {
- $param['up_time'] = time();
- $model_comment_up->save($param);
- $model_comment = Model('cms_comment');
- $model_comment->modify(array('comment_up'=>array('exp', 'comment_up+1')), array('comment_id'=>$comment_id));
- } else {
- $data['result'] = 'false';
- $data['message'] = '顶过了';
- }
- } else {
- $data['result'] = 'false';
- $data['message'] = Language::get('wrong_argument');
- }
- self::echo_json($data);
- }
- }
|