X-Git-Url: http://p2p-next.cs.pub.ro/gitweb/?a=blobdiff_plain;f=application%2Fcontrollers%2Fcatalog.php;h=79d0f96c0a29f08a243c7297d75c34fc14464e41;hb=14163bd2cf49ea2c6d30530515e5f27cf7b5850b;hp=49661523b402c8dd1ee680671cdf9eb1650409ce;hpb=aaa8b077bac73addd05114fd2b2ef0829412fac7;p=living-lab-site.git diff --git a/application/controllers/catalog.php b/application/controllers/catalog.php index 4966152..79d0f96 100644 --- a/application/controllers/catalog.php +++ b/application/controllers/catalog.php @@ -86,7 +86,7 @@ class Catalog extends CI_Controller { $this->load->view('html_end'); } - public function category($category_name, $offset = 0) + public function category($category_name, $ordering = 'hottest', $offset = 0) { // ** // ** LOADING MODEL @@ -98,12 +98,14 @@ class Catalog extends CI_Controller { $this->load->model('videos_model'); $vs_data['videos'] = $this->videos_model->get_videos_summary( $vs_data['category_id'], intval($offset), - $this->config->item('videos_per_page')); + $this->config->item('videos_per_page'), $ordering); + + $vs_data['ordering'] = $ordering; // Pagination $this->load->library('pagination'); - $pg_config['base_url'] = site_url("catalog/category/$category_name/"); - $pg_config['uri_segment'] = 4; + $pg_config['base_url'] = site_url("catalog/category/$category_name/$ordering/"); + $pg_config['uri_segment'] = 5; $pg_config['total_rows'] = $this->videos_model->get_videos_count( $vs_data['category_id']); $pg_config['per_page'] = $this->config->item('videos_per_page'); @@ -127,7 +129,9 @@ class Catalog extends CI_Controller { // ** LOADING VIEWS // ** $this->load->view('html_begin', $this->html_head_params); - $this->load->view('header'); + $this->load->view('header', array( + 'search_category_name'=>$vs_data['category_name'], + )); // $main_params['content'] = $this->load->view('catalog/category_view', $data, TRUE); $main_params['content'] = @@ -141,33 +145,58 @@ class Catalog extends CI_Controller { public function search($search_query = "", $offset = 0, $category_name = NULL) { + $this->load->model('videos_model'); + $this->load->library('security'); + // Redirect to an URL which contains search string if data was passed // via POST method and not via URL segments. - $str_post_search = $this->input->post('search', TRUE); + $str_post_search = $this->input->post('search'); + $str_post_category = $this->input->post('search-category'); if ($search_query === "" && $str_post_search !== FALSE) - redirect('catalog/search/'. $this->input->post('search', TRUE)); - + { + redirect('catalog/search/' + . $this->videos_model->encode_search_query($str_post_search) + . '/0' + . ($str_post_category === FALSE ? '' : "/$str_post_category")); + return; + } + // ** // ** LOADING MODEL // ** + // Search query is encoded for URL and must be decoded. + $enc_search_query = $search_query; + $search_query = $this->videos_model->decode_search_query($search_query); + + // Security filtering + $search_query = $this->security->xss_clean($search_query); + $results_data['search_query'] = $search_query; + // Category $results_data = $this->_get_category_data($category_name); if ($results_data === NULL) $results_data = array('category_id'=>NULL); - $results_data['search_query'] = $search_query; + // Page header data + $header_data['search_query'] = $search_query; + if ($category_name !== NULL) + { + $header_data['search_category_name'] = $results_data['category_name']; + } // Check if search string is valid. - if (strlen($search_query) < 4) + if (strlen($search_query) === 0) { - $results_data['videos'] = NULL; + //$results_data['videos'] = NULL; + $this->error($this->lang->line('error_search_query_empty'), + $header_data); + return; } else { // Retrieve search results. - $this->load->model('videos_model'); $results_data['count'] = $this->videos_model->search_videos( - $search_query); + $search_query, 0, 0, $results_data['category_id']); $results_data['videos'] = $this->videos_model->search_videos( $search_query, intval($offset), $this->config->item('search_results_per_page'), @@ -177,7 +206,7 @@ class Catalog extends CI_Controller { // Pagination $this->load->library('pagination'); - $pg_config['base_url'] = site_url("catalog/search/$search_query/"); + $pg_config['base_url'] = site_url("catalog/search/$enc_search_query/"); $pg_config['uri_segment'] = 4; $pg_config['total_rows'] = $results_data['count']; $pg_config['per_page'] = @@ -185,7 +214,8 @@ class Catalog extends CI_Controller { $this->pagination->initialize($pg_config); $results_data['pagination'] = $this->pagination->create_links(); } - + + // HTML head parameters $params = array( 'title' => $this->config->item('site_name'), 'css' => array( 'catalog.css' @@ -199,7 +229,7 @@ class Catalog extends CI_Controller { // ** LOADING VIEWS // ** $this->load->view('html_begin', $this->html_head_params); - $this->load->view('header'); + $this->load->view('header', $header_data); // Search Results $main_params['content'] = @@ -212,6 +242,29 @@ class Catalog extends CI_Controller { $this->load->view('html_end'); } + public function error($msg, $header_data) + { + $params = array( 'title' => 'Error - '. $this->config->item('site_name'), + //'css' => array(), + //'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', $header_data); + + $main_params['content'] = $this->load->view('error_view', array('msg'=>$msg), 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'); + } + public function _get_category_data($category_name) { if ($category_name === NULL)