+ * Increments likes count for video with the specified id and returns to
+ * the client as plain text the number if likes.
+ *
+ * @param string $action 'like' or 'dislike'
+ * @param string $video_id
+ * @param string $user_id
+ */
+ public function ajax_vote($action, $video_id, $user_id = NULL)
+ {
+ $video_id = intval($video_id);
+ $user_id = intval($user_id);
+ $this->load->model('videos_model');
+
+ $res = $this->videos_model->vote($video_id, $user_id,
+ (strcmp($action, 'like') == 0 ? TRUE : FALSE));
+
+ if ($res !== -1)
+ echo $res;
+ }
+
+ public function ajax_comment($video_id,
+ $ordering = 'newest', $offset = '0')
+ {
+ $this->_ajax_comment(FALSE, $video_id, $ordering, $offset);
+ }
+
+ public function _ajax_comment($return_output, $video_id,
+ $ordering = 'newest', $offset = '0')
+ {
+ $video_id = intval($video_id);
+
+ $this->load->library('form_validation');
+ $this->form_validation->set_error_delimiters('<span class="error">',
+ '</span>');
+ $this->form_validation->run('comment_video');
+
+ // **
+ // ** MODEL **
+ // **
+ $this->load->model('videos_model');
+ $data['comments'] = $this->videos_model->get_video_comments($video_id,
+ $offset, $this->config->item('video_comments_per_page'), $ordering);
+ $data['comments_count'] =
+ $this->videos_model->get_video_comments_count($video_id);
+ $data['video_id'] = $video_id;
+
+ // Pagination
+ $this->load->library('pagination');
+ $pg_config['base_url'] = site_url("video/ajax_comment/$video_id/$ordering/");
+ $pg_config['uri_segment'] = 5;
+ $pg_config['total_rows'] = $data['comments_count'];
+ $pg_config['per_page'] = $this->config->item('video_comments_per_page');
+ $this->pagination->initialize($pg_config);
+ $data['comments_pagination'] = $this->pagination->create_links();
+
+ // **
+ // ** VIEWS **
+ // **
+ $output = $this->load->view('video/comments_view',
+ $data, $return_output);
+
+ if ($return_output)
+ return $output;
+ }
+
+ public function _is_user_loggedin($param)
+ {
+ if (! $this->session->userdata('user_id'))
+ return FALSE;
+
+ return TRUE;
+ }
+
+ public function _do_comment($comment)
+ {
+ // Note: Videos_model must be already loaded.
+ $this->load->model('videos_model');
+
+ $video_id = intval($this->input->post('video-id'));
+ $user_id = intval($this->session->userdata('user_id'));
+
+ $this->videos_model->comment_video($video_id, $user_id, $comment);
+ }
+
+ /**
+ * OBSOLETE: AJAX page which retrieves a video plugin.