4 * Class Catalog controls video hierarchy and searching
7 * @author Călin-Andrei Burloiu
9 class Catalog extends CI_Controller {
11 public function __construct()
13 parent::__construct();
15 //$this->lang->load('catalog');
18 public function index()
23 // Retrieve videos summary.
24 $this->load->model('videos_model');
25 foreach ($this->config->item('categories') as $id => $name)
28 $vs_data['videos'] = $this->videos_model->get_videos_summary(
29 $id, 0, $this->config->item('videos_per_row'));
32 $vs_data['category_name'] = $name;
33 $vs_data['category_title'] = $name ?
34 $this->lang->line("ui_categ_$name") : $name;
35 $vs_data['category_id'] = $id;
37 // Pagination (not required)
38 $vs_data['pagination'] = '';
40 $data['videos_summaries'][] =
41 $this->load->view('catalog/videos_summary_view',
45 $params = array( 'title' => $this->config->item('site_name'),
50 //'metas' => array('description'=>'','keywords'=>'')
52 $this->load->library('html_head_params', $params);
57 $this->load->view('html_begin', $this->html_head_params);
58 $this->load->view('header', array('selected_menu' => 'home'));
60 $main_params['content'] = $this->load->view('catalog/index_view', $data, TRUE);
61 $main_params['side'] = $this->load->view('side_default', NULL, TRUE);
62 $this->load->view('main', $main_params);
64 $this->load->view('footer');
65 $this->load->view('html_end');
68 public function test($page = 0)
70 $params = array( 'title' => 'Test - '. $this->config->item('site_name'),
73 //'metas' => array('description'=>'','keywords'=>'')
75 $this->load->library('html_head_params', $params);
80 $this->load->view('html_begin', $this->html_head_params);
81 $this->load->view('header', array('selected_menu' => 'home'));
83 $this->load->view('echo', array('output'=>'Test Page', 'clear'=>TRUE));
85 $this->load->view('footer');
86 $this->load->view('html_end');
89 public function category($category_name, $offset = 0)
95 $vs_data = $this->_get_category_data($category_name);
97 // Retrieve videos summary.
98 $this->load->model('videos_model');
99 $vs_data['videos'] = $this->videos_model->get_videos_summary(
100 $vs_data['category_id'], intval($offset),
101 $this->config->item('videos_per_page'));
104 $this->load->library('pagination');
105 $pg_config['base_url'] = site_url("catalog/category/$category_name/");
106 $pg_config['uri_segment'] = 4;
107 $pg_config['total_rows'] = $this->videos_model->get_videos_count(
108 $vs_data['category_id']);
109 $pg_config['per_page'] = $this->config->item('videos_per_page');
110 $this->pagination->initialize($pg_config);
111 $vs_data['pagination'] = $this->pagination->create_links();
114 // $data['video_summary'] = $this->load->view('catalog/videos_summary_view',
117 $params = array( 'title' => $this->config->item('site_name'),
122 //'metas' => array('description'=>'','keywords'=>'')
124 $this->load->library('html_head_params', $params);
129 $this->load->view('html_begin', $this->html_head_params);
130 $this->load->view('header');
132 // $main_params['content'] = $this->load->view('catalog/category_view', $data, TRUE);
133 $main_params['content'] =
134 $this->load->view('catalog/videos_summary_view', $vs_data, TRUE);
135 $main_params['side'] = $this->load->view('side_default', NULL, TRUE);
136 $this->load->view('main', $main_params);
138 $this->load->view('footer');
139 $this->load->view('html_end');
142 public function search($search_query = "", $offset = 0, $category_name = NULL)
144 // Redirect to an URL which contains search string if data was passed
145 // via POST method and not via URL segments.
146 $str_post_search = $this->input->post('search', TRUE);
147 if ($search_query === "" && $str_post_search !== FALSE)
148 redirect('catalog/search/'. $this->input->post('search', TRUE));
154 $results_data = $this->_get_category_data($category_name);
155 if ($results_data === NULL)
156 $results_data = array('category_id'=>NULL);
158 $results_data['search_query'] = $search_query;
160 // Check if search string is valid.
161 if (strlen($search_query) < 4)
163 $results_data['videos'] = NULL;
167 // Retrieve search results.
168 $this->load->model('videos_model');
169 $results_data['count'] = $this->videos_model->search_videos(
171 $results_data['videos'] = $this->videos_model->search_videos(
172 $search_query, intval($offset),
173 $this->config->item('search_results_per_page'),
174 $results_data['category_id']);
175 if ($results_data['videos'] === NULL)
176 $results_data['videos'] = array();
179 $this->load->library('pagination');
180 $pg_config['base_url'] = site_url("catalog/search/$search_query/");
181 $pg_config['uri_segment'] = 4;
182 $pg_config['total_rows'] = $results_data['count'];
183 $pg_config['per_page'] =
184 $this->config->item('search_results_per_page');
185 $this->pagination->initialize($pg_config);
186 $results_data['pagination'] = $this->pagination->create_links();
189 $params = array( 'title' => $this->config->item('site_name'),
194 //'metas' => array('description'=>'','keywords'=>'')
196 $this->load->library('html_head_params', $params);
201 $this->load->view('html_begin', $this->html_head_params);
202 $this->load->view('header');
205 $main_params['content'] =
206 $this->load->view('catalog/search_results_view',
207 $results_data, TRUE);
208 $main_params['side'] = $this->load->view('side_default', NULL, TRUE);
209 $this->load->view('main', $main_params);
211 $this->load->view('footer');
212 $this->load->view('html_end');
215 public function _get_category_data($category_name)
217 if ($category_name === NULL)
220 $categories = $this->config->item('categories');
221 $category_id = array_search($category_name, $categories);
222 $results_data['category_name'] = $category_name;
223 $results_data['category_id'] = $category_id;
224 $results_data['category_title'] = $category_name ?
225 $this->lang->line("ui_categ_$category_name") : $category_name;
227 return $results_data;
231 /* End of file catalog.php */
232 /* Location: ./application/controllers/catalog.php */