load->model('pray_model'); } public function index() { if ($this->isMobile()) { $this->mobile(); } else { $this->desktop(); } } private function desktop() { $section = $this->uri->segment(2); $article = $this->uri->segment(3); $this->data['sectionCategory'] = NEWS_SECTION_CATEGORY; if (is_numeric($article)) { $this->article($article); $this->load->view('templates/pray/pray-article', $this->data); } elseif ($section) { if ($this->section()) { $this->load->view('templates/pray/pray-' . $section, $this->data); } else { $this->{$section}(); } } else { $this->main(); $this->load->view('templates/pray/pray-home', $this->data); } } private function mobile() { $section = $this->uri->segment(2); $article = $this->uri->segment(3); if (is_numeric($article)) { $this->load->view('mobile/pray/pray-article', $this->data); } else if ($article) { $this->load->view('mobile/pray/pray-editor', $this->data); } elseif ($section) { $this->load->view('mobile/pray/pray-section', $this->data); } else { $this->load->view('mobile/pray/pray-home', $this->data); } } private function main() { $this->setSections(); $this->data['prayon'] = $this->pray_model->getPaging(15, 0) ->get()->result(); $this->data['posts'] = $this->post_model->getPostsByCategoryId( array_column($this->category_model->getCategoriesBySlug([ 'vclip', 'together', 'story', 'art' ])->get()->result(), 'categoryID'), 5 )->get()->result(); $this->data['featured'] = $this->data['posts'][0]; foreach ($this->data as $k => $v) { getPostsImageUrl($this->data[$k]); } } private function getCategoryIdBySlug($slug) { return $this->category_model->getCategoriesBySlug($slug)->get()->row()->categoryID; } private function getPostsByCategorySlug($slug) { return $this->post_model->getPostsByCategoryId($this->getCategoryIdBySlug($slug), 20); } private function section() { $this->setSections(); foreach ($this->data as $k => $v) { getPostsImageUrl($this->data[$k]); } if (isset($this->sections[$this->uri->segment(2)])) { $this->data['posts'] = &$this->data[$this->uri->segment(2)]; return true; } } private function article($article) { $this->load->model('comment_model'); $this->data['comments'] = $this->comment_model->getByPostId($article) ->where('parentID', 0) ->join('cm_user', 'cm_comment.userID=cm_user.userID', 'left') ->select('*, 0 like, 0 bad, 0 replies')->get()->result(); $this->comment_model->getRepliesAndRankings($this->data['comments']); $this->data['post'] = $this->post_model->getPost($article); foreach ($this->data as $k => $v) { getPostsImageUrl($this->data[$k]); } } private function setSections() { $this->sections = [ 'prayon' => ['', function () { $this->data['prayon'] = array_reverse($this->pray_model->getPaging(15, 0)->select('py.*, 0 bookmark, 0 like, 0 bad, 0 bookmarks') ->get()->result()); $this->pray_model->getBookmarksAndRankings($this->data['prayon']); }], 'vclip' => ['vclip', function () { $this->data['vclip'] = $this->getPostsByCategorySlug($this->sections['vclip'][0]) ->join('cm_post_video v', 'p.postID=v.postID', 'left') ->join('cm_user u', 'p.userID=u.userID', 'left') ->select("if(u.nickname = '' or u.nickname is null, u.userName, u.nickName) as author") ->get()->result(); }], 'together' => ['together', function () { $this->data['pages'] = []; $this->data['together'] = $this->post_model->getPagePostsByCategoryId($this->getCategoryIdBySlug($this->sections['together'][0]), 29) ->join('cm_user u', 'p.userID=u.userID', 'left') ->select("*,if(u.nickname = '' or u.nickname is null, u.userName, u.nickName) as author, p.postID postSeq") ->get()->result(); }], 'story' => ['story', function () { $this->data['story'] = $this->getPostsByCategorySlug($this->sections['story'][0]) ->join('cm_user u', 'p.userID=u.userID', 'left') ->select("if(u.nickname = '' or u.nickname is null, u.userName, u.nickName) as author") ->get()->result(); }], 'art' => ['art', function () { $this->data['art'] = $this->getPostsByCategorySlug($this->sections['art'][0]) ->join('cm_user u', 'p.userID=u.userID', 'left') ->select("if(u.nickname = '' or u.nickname is null, u.userName, u.nickName) as author")->get()->result(); }] ]; foreach ($this->sections as $k => $s) { $s[0] || $this->uri->segment(2) == $k ? $s[1]() : ''; } } public function rating() { $data = [ 'prayID' => $this->input->post('prayId'), 'userID' => getSessionUser()->is ? getSessionUser()->userID : 0, 'title' => $this->input->post('title'), 'dateUpdated' => date('Y-m-d H:i:s') ]; if ($insertId = $this->pray_model->bookmark($data)) { $this->response(array('code' => 200, 'rating' => 0)); // $this->response(array('code' => 200, 'rating' => $this->pray_model->getPrayRankingCountByTitle($data['prayID'], $data['title']))); } else { $this->response(array('code' => 500, 'error' => '서버오류가 발생했습니다')); } } }