CI = & get_instance(); } function main() { if ( ! $this->CI->input->post_get('token')) { $this->CI->apilib->make_error("토큰 값이 넘어오지 않았습니다"); } $token = $this->CI->input->post_get('token'); $app_id = (int) trim($this->CI->input->post_get('app_id')); if (empty($app_id)) { $this->CI->apilib->make_error("어플 아이디가 넘어오지 않았습니다"); } $con_id = (int) trim($this->CI->input->post('con_id')); if (empty($con_id)) { $this->CI->apilib->make_error("데이터 고유 아이디가 넘어오지 않았습니다"); } $com_id = (int) trim($this->CI->input->post('com_id')); $this->CI->load->model(array('Contents_model', 'Contents_comment_model')); $sessionuser = $this->CI->User_model->get_by_token($app_id, $token); if ( ! element('user_id', $sessionuser)) { $this->CI->apilib->make_error("로그인 한 회원만 댓글을 입력할 수 있습니다"); } $contents = $this->CI->Contents_model->get_one($con_id); if ( ! element('con_id', $contents)) { $this->CI->apilib->make_error("존재하지 않는 컨텐츠입니다."); } $reply_com_id = (int) trim($this->CI->input->post('reply_com_id')); $com_content = trim($this->CI->input->post('com_content')); if (empty($com_content)) { $this->CI->apilib->make_error("댓글 내용이 입력되지 않았습니다"); } // mode : new, modify, reply $mode = 'new'; if ($com_id) { $mode = 'modify'; } else if ($reply_com_id) { $mode = 'reply'; } $comment = ''; if ($mode == 'modify') { $comment = $this->CI->Contents_comment_model->get_one($com_id); if ( ! element('com_id', $comment)) { $this->CI->apilib->make_error("존재하지 않는 댓글입니다."); } if (element('user_id', $comment) != element('user_id', $sessionuser)) { $this->CI->apilib->make_error("본인의 댓글만 수정이 가능합니다."); } } $com_reply = ''; if ($mode == 'reply') { $origin = $this->CI->Contents_comment_model->get_one($reply_com_id); if ( ! element('com_id', $origin)) { $this->CI->apilib->make_error("존재하지 않는 댓글에 답변을 달려고 시도하고 있습니다"); } //if (element('com_reply', $origin)) { // $this->CI->apilib->make_error("답변댓글에는 더 이상 답변댓글을 입력하실 수가 없습니다"); //} $reply_len = strlen(element('com_reply', $origin)) + 1; $begin_reply_char = 'A'; $end_reply_char = 'Z'; $reply_number = +1; $this->CI->db->select('MAX(SUBSTRING(com_reply, ' . $reply_len . ', 1)) as reply', false); $this->CI->db->where('com_num', element('com_num', $origin)); $this->CI->db->where('SUBSTRING(com_reply, ' . $reply_len . ', 1) <>', ''); if (element('com_id', $origin)) { $this->CI->db->like('com_reply', element('com_reply', $origin), 'after'); } $result = $this->CI->db->get('contents_comment'); $row = $result->row_array(); if ( ! element('reply', $row)) { $reply_char = $begin_reply_char; } elseif (element('reply', $row) === $end_reply_char) { // A~Z은 26 입니다. $this->CI->apilib->make_error("더 이상 답변하실 수 없습니다.\\n답변은 26개 까지만 가능합니다"); } else { $reply_char = chr(ord(element('reply', $row)) + $reply_number); } $com_reply = element('com_reply', $origin) . $reply_char; $com_reply_user_id = element('user_id', $origin); } if ($mode == 'new') { $com_num = $this->CI->Contents_comment_model->next_comment_num(); $insertdata = array( 'con_id' => $con_id, 'app_id' => $app_id, 'con_user_id' => element('user_id', $contents), 'user_id' => element('user_id', $sessionuser), 'com_num' => $com_num, 'com_reply' => '', 'com_content' => $com_content, 'com_created_at' => cdate('Y-m-d H:i:s'), 'com_updated_at' => cdate('Y-m-d H:i:s'), ); $com_id = $this->CI->Contents_comment_model->insert($insertdata); } else if ($mode == 'reply') { $com_num = element('com_num', $origin); $insertdata = array( 'con_id' => $con_id, 'app_id' => $app_id, 'con_user_id' => element('user_id', $contents), 'user_id' => element('user_id', $sessionuser), 'com_num' => $com_num, 'com_reply' => $com_reply, 'com_reply_user_id' => $com_reply_user_id, 'com_content' => $com_content, 'com_created_at' => cdate('Y-m-d H:i:s'), 'com_updated_at' => cdate('Y-m-d H:i:s'), ); $com_id = $this->CI->Contents_comment_model->insert($insertdata); } else if ($mode == 'modify') { $updatedata = array( 'com_content' => $com_content, 'com_updated_at' => cdate('Y-m-d H:i:s'), ); $this->CI->Contents_comment_model->update($com_id, $updatedata); } $arr = array( 'result' => 'ok', 'token' => $token, 'app_id' => $app_id, 'con_id' => $con_id, 'com_id' => $com_id, ); return $arr; } }