Files
cm-web-legacy/application/controllers/adm/bak/comment.php
2020-06-10 06:19:03 +09:00

103 lines
4.0 KiB
PHP
Executable File

<?php
class Comment extends MY_Controller
{
private $menuCategories = array();
public function __construct()
{
parent::__construct();
$this->load->model('editor_model');
$this->load->model('comment_model');
$this->menuCategories['은혜충전'] = $this->getSubCategoryId('grace-category');
$this->menuCategories['크로스맵TV'] = $this->getSubCategoryId('crossmaptv-category');
}
public function index()
{
$data = array(
'menuCategories' => array_keys($this->menuCategories),
'graceCategories' => $this->category_model->findById($this->categories['grace'])->result(),
'graceEditors' => $this->editor_model->findByCategoryId($this->categories['grace'])->get()->result(),
);
$this->load->view($this->adminViewFolder . 'comment', $data);
}
private function tableClause()
{
if ($this->param('term')) {
$this->db->like('l.title', $this->param('term'));
}
if ($this->param('category')) {
$this->db->like('l.category_idx', $this->param('category'));
}
if ($this->param('editor')) {
$this->db->like('p.idx', $this->param('editor'));
}
}
public function table()
{
$request = $this->getRequest();
$sort = $this->param('sort');
$sortColumns = array('comments' => 'comment_count', 'reg_date' => 'reg_date');
$this->comment_model->find()->limit($this->param('limit'))->offset($this->param('offset'))
->join('life f', 'cmt.content_idx=f.idx', 'left')
->join('category c', 'f.category_idx=c.idx', 'left')
->join('partner p', 'f.partner_idx=p.idx', 'left')
->where('cmt.content_type', '3')->where('f.is_del', 'N')->where('cmt.is_del', 'N');
if($this->param('term')) {
$this->db->group_start()->like('cmt.comment', $this->param('term'), 'both')
->or_like('f.title', $this->param('term'), 'both')->group_end();
}
$comments = $this->db->select('cmt.idx commentId, f.title, c.category_name, p.partner_name, cmt.comment, f.idx, cmt.reg_date, 0 likes, 0 bads')
->get()->result();
$commentId = array();
foreach($comments as $c) {
array_push($commentId, $c->idx);
}
if(count($comments)) {
$likes = $this->db->where_in('comment_idx', $commentId)
->select('count(idx) cnt, type_name, comment_idx')
->group_by('comment_idx, type_name')->get('comment_like_log')->result();
foreach($comments as $k => $c) {
foreach($likes as $l) {
if($c->idx == $l->comment_idx) {
if($l->type_name == 'like_count') {
$comments[$k]->likes += $l->cnt;
}else {
$comments[$k]->bads += $l->cnt;
}
}
}
}
}
if($this->param('term')) {
$this->db->group_start()->like('cmt.comment', $this->param('term'), 'both')
->or_like('f.title', $this->param('term'), 'both')->group_end();
}
$commentTotalCount = $this->comment_model->find()
->join('life f', 'cmt.content_idx=f.idx', 'left')
->where('cmt.content_type', '3')->where('f.is_del', 'N')->where('cmt.is_del', 'N')
->count_all_results();
$this->output
->set_content_type('application/json')
->set_output(json_encode(array('total' => $commentTotalCount,
'rows' => $comments)));
}
public function content_delete() {
$this->db->where('idx', $this->param('contentId'))->update($this->comment_model->table, array('is_del' => 'Y'));
if ($deleted = $this->db->affected_rows()) {
$this->response(array('deleted' => $deleted));
}
}
}