first stage finished: ready to publish to production; does not support users and...
[living-lab-site.git] / application / controllers / catalog.php
index e6d2c0d..3ed020f 100644 (file)
 <?php
 
 /**
- * Class Catalog controlls video hierarchy and searching
+ * Class Catalog controls video hierarchy and searching
  *
  * @category   Controller
  * @author             Călin-Andrei Burloiu
  */
 class Catalog extends CI_Controller {
        
+       public function __construct()
+       {
+               parent::__construct();
+               
+               //$this->lang->load('catalog');
+       }       
+       
        public function index()
        {
+               // **
+               // ** LOADING MODEL
+               // **
                // Retrieve videos summary.
                $this->load->model('videos_model');
-               $data['videos'] = $this->videos_model->get_videos_summary();
+               foreach ($this->config->item('categories') as $id => $name)
+               {
+                       // Videos
+                       $vs_data['videos'] = $this->videos_model->get_videos_summary(
+                               $id, 0, $this->config->item('videos_per_row'));
+                       
+                       // Category
+                       $vs_data['category_title'] = $name ?
+                               $this->lang->line("ui_categ_$name") : $name;
+                       $vs_data['category_id'] = $id;
+                       
+                       // Pagination (not required)
+                       $vs_data['pagination'] = '';
+                       
+                       $data['videos_summaries'][] = 
+                               $this->load->view('catalog/videos_summary_view', 
+                               $vs_data, TRUE);
+               }
                
                $params = array(        'title' => $this->config->item('site_name'),
-                                                       //'stylesheets' => array(),
-                                                       //'javascripts' => array(),
+                                                       'css' => array(
+                                                               'catalog.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');
+               $this->load->view('header', array('selected_menu' => 'home'));
                
-               $this->load->view('catalog/index_view', $data);
+               $main_params['content'] = $this->load->view('catalog/index_view', $data, TRUE);
+               $main_params['side'] = $this->load->view('side_default.php', NULL, TRUE);
+               $this->load->view('main', $main_params);
                
                $this->load->view('footer');
                $this->load->view('html_end');
        }
        
-       public function test()
+       public function test($page = 0)
        {
-               $this->load->helper('url');
+               $params = array(        'title' => 'Test - '. $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', array('selected_menu' => 'home'));
                
-               echo '<a href="/">link</a>';
+               $this->load->view('echo', array('output'=>'Test Page', 'clear'=>TRUE));
+               
+               $this->load->view('footer');
+               $this->load->view('html_end');
        }
        
-       public function category($category_id)
+       public function category($category_name, $offset = 0)
        {
+               // **
+               // ** LOADING MODEL
+               // **
+               // Video Category
+               $categories = $this->config->item('categories');
+               $category_id = array_search($category_name, $categories);
+               $vs_data['category_name'] = $category_name;
+               $vs_data['category_id'] = $category_id;
+               $vs_data['category_title'] = $category_name ?
+               $this->lang->line("ui_categ_$category_name") : $category_name;          
+               
                // Retrieve videos summary.
                $this->load->model('videos_model');
-               $data['videos'] = $this->videos_model->get_videos_summary($category_id);
-               $categories = $this->config->item('categories');
-               $data['category'] = $categories[$category_id];
-               $data['category_id'] = $category_id;
+               $vs_data['videos'] = $this->videos_model->get_videos_summary(
+                       $vs_data['category_id'], intval($offset),
+                       $this->config->item('videos_per_page'));
+               
+               // Pagination
+               $this->load->library('pagination');
+               $pg_config['base_url'] = site_url("catalog/category/$category_id/");
+               $pg_config['uri_segment'] = 4;
+               $pg_config['total_rows'] = $this->videos_model->get_videos_count(
+                       $category_id);
+               $pg_config['per_page'] = $this->config->item('videos_per_page');
+               $this->pagination->initialize($pg_config);
+               $vs_data['pagination'] = $this->pagination->create_links();
+               
+               // Video Summary
+               $data['video_summary'] = $this->load->view('catalog/videos_summary_view',
+                       $vs_data, TRUE);
                
                $params = array(        'title' => $this->config->item('site_name'),
-                                                       'stylesheets' => array('catalog.css'),
-                                                       //'javascripts' => array(),
+                                                       'css' => array(
+                                                               'catalog.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');
                
-               $this->load->view('catalog/category_view', $data);
+               $main_params['content'] = $this->load->view('catalog/category_view', $data, TRUE);
+               $main_params['side'] = $this->load->view('side_default.php', NULL, TRUE);
+               $this->load->view('main', $main_params);
                
                $this->load->view('footer');
                $this->load->view('html_end');