X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?p=living-lab-site.git;a=blobdiff_plain;f=application%2Fcontrollers%2Fvideo.php;h=eb4ed80c7630ad9638db097ff93e8b462655e40f;hp=5f5ab9f9f71820c86ebfb34bf7b4dcd605458477;hb=080b37a97e93691b3ba1c4aa3982a143167115a7;hpb=6db375a0706b5328fbd53be4dd2e517c96560ea6 diff --git a/application/controllers/video.php b/application/controllers/video.php index 5f5ab9f..eb4ed80 100644 --- a/application/controllers/video.php +++ b/application/controllers/video.php @@ -21,6 +21,37 @@ class Video extends CI_Controller { } + public function test($video_id) + { + // Display page. + $params = array( 'title' => $this->config->item('site_name'), + 'css' => array( + 'video.css' + ), + 'js' => array( + 'jquery.ui.ajax_links_maker.js' + ), + //'metas' => array('description'=>'','keywords'=>'') + ); + $this->load->library('html_head_params', $params); + + // ** + // ** LOADING VIEWS + // ** + $this->load->view('html_begin', $this->html_head_params); + $this->load->view('header'); + + $main_params['content'] = + $this->load->view('echo', array('output'=> + $this->_ajax_comment(TRUE, $video_id)), + 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'); + } + /** * The page used for watching a video * @@ -54,7 +85,8 @@ class Video extends CI_Controller { 'video.css' ), 'js' => array( - 'jquery.ui.nsvideo.js' + 'jquery.ui.nsvideo.js', + 'jquery.ui.ajax_links_maker.js' ), //'metas' => array('description'=>'','keywords'=>'') ); @@ -69,6 +101,9 @@ class Video extends CI_Controller { // TODO remove old AJAX plugin content // $data['plugin_content'] = $this->_plugin('ns-html5', // $data['video']['url'][0], TRUE); + + // Comments + $data['comments'] = $this->_ajax_comment(TRUE, $id); // ** // ** LOADING VIEWS @@ -82,30 +117,275 @@ class Video extends CI_Controller { $this->load->view('footer'); $this->load->view('html_end'); } + +// public function upload() +// { +// $this->load->library('form_validation'); +// +// $this->form_validation->set_error_delimiters('', +// ''); +// $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('', +// ''); +// } +// 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('', + ''); + $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 likes count for video with the specified id and returns to - * the client as plain text the number if likes. + * 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 $video_id - * @param string $user_id + * @param string $comment_id */ - public function ajax_vote($action, $video_id, $user_id = NULL) + public function ajax_vote_comment($action, $comment_id) { - $video_id = intval($video_id); - $user_id = intval($user_id); + $comment_id = intval($comment_id); + $user_id = $this->session->userdata('user_id'); $this->load->model('videos_model'); - $res = $this->videos_model->vote($video_id, $user_id, + $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('', + ''); + + 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('', + '')); + } + + return FALSE; + } + /** - * AJAX page which retrieves a video plugin. + * 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 @@ -121,7 +401,7 @@ class Video extends CI_Controller { } /** - * Video plugin controller + * 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).