X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=application%2Fcontrollers%2Fvideo.php;h=4ffa089a6542cec96153a17826522e5bc6d33ca0;hb=faf92fa039c2be353c94d0d0e8e488e56eaa5058;hp=019fa2c0437e9fbe2ce58b259d53809eb4507dac;hpb=09add6ca11db3ca299f73fbc92f4f2d0aed1daa8;p=living-lab-site.git diff --git a/application/controllers/video.php b/application/controllers/video.php index 019fa2c..4ffa089 100644 --- a/application/controllers/video.php +++ b/application/controllers/video.php @@ -13,7 +13,7 @@ class Video extends CI_Controller { { parent::__construct(); - //$this->lang->load('video'); + $this->lang->load('video'); } public function index() @@ -21,6 +21,33 @@ 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( + ), + //'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('video/watch_view', $data, TRUE); + $this->load->view('echo', array('output'=> + $this->_ajax_comment(TRUE, $video_id))); + + $this->load->view('footer'); + $this->load->view('html_end'); + } + /** * The page used for watching a video * @@ -31,18 +58,23 @@ class Video extends CI_Controller { */ public function watch($id, $name = NULL, $plugin = NULL) { - $this->load->helper('url'); - // ** // ** LOADING MODEL // ** // Retrieve video information. $this->load->model('videos_model'); + $this->videos_model->inc_views($id); $data['video'] = $this->videos_model->get_video($id, $name); + $categories = $this->config->item('categories'); + $data['video']['category_name'] = + $categories[ $data['video']['category_id'] ]; $data['plugin_type'] = ($plugin === NULL ? 'auto' : $plugin); + $data['user_id'] = $this->session->userdata('user_id'); + if ($data['user_id'] === FALSE) + $data['user_id'] = ''; // Display page. - $params = array( 'title' => $data['video']['title'] . ' -- ' + $params = array( 'title' => $data['video']['title'] . ' – ' . $this->config->item('site_name'), 'css' => array( 'jquery.ui.nsvideo.css', @@ -79,7 +111,92 @@ class Video extends CI_Controller { } /** - * AJAX page which retrieves a video plugin. + * 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('', + ''); + $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. * * The view associated with this controller should be parameter type * concatenated with '_plugin_view' and must be located in @@ -95,7 +212,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).