+
+// public function upload()
+// {
+// $this->load->library('form_validation');
+//
+// $this->form_validation->set_error_delimiters('<span class="error">',
+// '</span>');
+// $error_upload = '';
+//
+// if ($this->form_validation->run('upload'))
+// {
+// if ($_FILES['video-upload-file']['tmp_name'])
+// {
+// // Upload library
+// $config_upload['upload_path'] = './data/upload';
+// $this->load->library('upload', $config_upload);
+//
+// $b_validation = $this->upload->do_upload('video-upload-file');
+// $error_upload =
+// $this->upload->display_errors('<span class="error">',
+// '</span>');
+// }
+// else
+// {
+// $b_validation = FALSE;
+// }
+// }
+// else
+// $b_validation = FALSE;
+//
+// if ($b_validation === FALSE)
+// {
+// $params = array('title' =>
+// $this->lang->line('ui_nav_menu_upload')
+// .' – '
+// . $this->config->item('site_name'),
+// //'metas' => array('description'=>'')
+// );
+// $this->load->library('html_head_params', $params);
+//
+// // **
+// // ** LOADING VIEWS
+// // **
+// $this->load->view('html_begin', $this->html_head_params);
+// $this->load->view('header',
+// array('selected_menu' => 'upload'));
+//
+// $main_params['content'] = $this->load->view(
+// 'video/upload_view',
+// array('error_upload'=> $error_upload),
+// TRUE);
+// $main_params['side'] = $this->load->view('side_default', NULL, TRUE);
+// $this->load->view('main', $main_params);
+//
+// $this->load->view('footer');
+// $this->load->view('html_end');
+// }
+// else
+// {
+//
+// }
+// }
+
+ public function upload()
+ {
+ $this->load->library('form_validation');
+
+ $this->form_validation->set_error_delimiters('<span class="error">',
+ '</span>');
+ $error_upload = '';
+
+ if ($this->form_validation->run('upload') === FALSE)
+ {
+ $params = array('title' =>
+ $this->lang->line('ui_nav_menu_upload')
+ .' – '
+ . $this->config->item('site_name'),
+ //'metas' => array('description'=>'')
+ );
+ $this->load->library('html_head_params', $params);
+
+ // **
+ // ** LOADING VIEWS
+ // **
+ $this->load->view('html_begin', $this->html_head_params);
+ $this->load->view('header',
+ array('selected_menu' => 'upload'));
+
+ $main_params['content'] = $this->load->view(
+ 'video/upload_view',
+ array('error_upload'=> $error_upload),
+ TRUE);
+ $main_params['side'] = $this->load->view('side_default', NULL, TRUE);
+ $this->load->view('main', $main_params);
+
+ $this->load->view('footer');
+ $this->load->view('html_end');
+ }
+ else
+ {
+
+ }
+ }
+
+ /**
+ * Increments (dis)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)
+ {
+ $video_id = intval($video_id);
+ $user_id = $this->session->userdata('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;
+ }
+ /**
+ * Increments (dis)likes count for a comment with a specified id and returns
+ * to the client as plain text the number if likes.
+ *
+ * @param string $action 'like' or 'dislike'
+ * @param string $comment_id
+ */
+ public function ajax_vote_comment($action, $comment_id)
+ {
+ $comment_id = intval($comment_id);
+ $user_id = $this->session->userdata('user_id');
+ $this->load->model('videos_model');
+
+ $res = $this->videos_model->vote_comment($comment_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>');
+
+ if ($this->form_validation->run('comment_video'))
+ {
+ $this->load->model('videos_model');
+ $user_id = intval($this->session->userdata('user_id'));
+ $comment = $this->input->post('comment');
+
+ $this->videos_model->comment_video($video_id, $user_id, $comment);
+ }
+
+ // **
+ // ** 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['hottest_comments'] = $this->videos_model->get_video_comments(
+ $video_id, 0, 2, 'hottest');
+ $data['video_id'] = $video_id;
+ $data['user_id'] = $this->session->userdata('user_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);
+ }
+
+ public function _valid_tags($tags)
+ {
+ $tok = strtok($tags, ',');
+ while ($tok != FALSE)
+ {
+ $tok = trim($tok);
+ if (!ctype_alnum($tok))
+ return FALSE;
+
+ $tok = strtok(',');
+ }
+
+ return TRUE;
+ }
+
+ public function _required_upload($file)
+ {
+ if ($_FILES['video-upload-file']['tmp_name'])
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
+ public function _valid_upload($file)
+ {
+ if ($_FILES['video-upload-file']['tmp_name'])
+ {
+ // Upload library
+ $config_upload = array();
+ $config_upload['upload_path'] = './data/upload';
+ $config_upload['allowed_types'] = '*';
+ $this->load->library('upload', $config_upload);
+
+ if ($this->upload->do_upload('video-upload-file'))
+ {
+ return TRUE;
+ }
+
+ $this->form_validation->set_message('_valid_upload',
+ $this->upload->display_errors('<span class="error">',
+ '</span>'));
+ }
+
+ return FALSE;
+ }
+
+ /**
+ * OBSOLETE: AJAX page which retrieves a video plugin.
+ *
+ * The view associated with this controller should be parameter type
+ * concatenated with '_plugin_view' and must be located in
+ * 'application/views/video'.
+ *
+ * @param string $type 'ns-vlc', 'ns-html5'
+ */
+ public function plugin($type)
+ {
+ $url = $this->input->post('url', TRUE);
+
+ $this->_plugin($type, $url);
+ }
+
+ /**
+ * OBSOLETE: Video plugin controller
+ *
+ * See plugin function for details. If the second parameter is TRUE
+ * the output is return instead of being displayed (used in preloading).
+ */
+ public function _plugin($type, $url, $return_output=FALSE)
+ {
+ if ($type == 'ns-html5')
+ $data['url'] = 'tribe://' . $url;
+ else if ($type == 'ns-vlc')
+ $data['url'] = $url;
+
+ $output = $this->load->view('video/'. $type . '_plugin_view', $data,
+ $return_output);
+
+ if ($return_output)
+ return $output;
+ }
+