X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=application%2Fcontrollers%2Fvideo.php;h=019fa2c0437e9fbe2ce58b259d53809eb4507dac;hb=09add6ca11db3ca299f73fbc92f4f2d0aed1daa8;hp=cb190355a21d653de8579731a41d70ede070aecb;hpb=44e76cbf029fbec96b9a91837963b872f4984004;p=living-lab-site.git diff --git a/application/controllers/video.php b/application/controllers/video.php index cb19035..019fa2c 100644 --- a/application/controllers/video.php +++ b/application/controllers/video.php @@ -1,7 +1,7 @@ lang->load('video'); } public function index() @@ -24,34 +26,94 @@ class Video extends CI_Controller { * * @param string $id DB id of the video * @param string $name `name` of the video from DB - * @param string $plugin video plugin ('vlc', 'html5'). If it's set + * @param string $plugin video plugin ('ns-vlc', 'ns-html5'). If it's set * to NULL or 'auto', the plugin is automatically selected. */ public function watch($id, $name = NULL, $plugin = NULL) { $this->load->helper('url'); + // ** + // ** LOADING MODEL + // ** // Retrieve video information. $this->load->model('videos_model'); $data['video'] = $this->videos_model->get_video($id, $name); - $data['plugin'] = ($plugin === NULL ? 'auto' : $plugin); + $data['plugin_type'] = ($plugin === NULL ? 'auto' : $plugin); // Display page. $params = array( 'title' => $data['video']['title'] . ' -- ' . $this->config->item('site_name'), - 'stylesheets' => array('jquery-ui.css', 'NextSharePC-interface.css'), - 'javascripts' => array('jquery.min.js', 'jquery-ui.min.js', 'NextSharePC-interface.js'), + 'css' => array( + 'jquery.ui.nsvideo.css', + 'video.css' + ), + 'js' => array( + 'jquery.ui.nsvideo.js' + ), //'metas' => array('description'=>'','keywords'=>'') ); $this->load->library('html_head_params', $params); + + // Preloading video plugin. + // TODO plugin auto: type and format + if ($data['plugin_type'] == 'auto') + $data['plugin_type'] = 'ns-html5'; + $data['asset_index'] = 0; + + // TODO remove old AJAX plugin content +// $data['plugin_content'] = $this->_plugin('ns-html5', +// $data['video']['url'][0], TRUE); + + // ** + // ** 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('video/watch_view', $data); $this->load->view('footer'); $this->load->view('html_end'); } + + /** + * 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); + } + + /** + * 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; + } + } /* End of file video.php */