public function index()
 {
     $categoryObj = new categories_model();
     $categoryObj->where = array('published' => 1);
     $row_count = $categoryObj->count();
     // Customize pagination
     $config = $this->config->item('pagination');
     $config['base_url'] = base_url('categories');
     $config['total_rows'] = $row_count;
     $config['per_page'] = 4;
     $config['prefix'] = 'page/';
     $config["num_links"] = floor($config["total_rows"] / $config["per_page"]);
     $config['use_page_numbers'] = TRUE;
     $this->pagination->initialize($config);
     $page = $this->uri->segment(3) ? $this->uri->segment(3) : 0;
     $categoryObj->limit = $config['per_page'];
     $categoryObj->offset = $page;
     $this->data['categories'] = $categoryObj->get();
     $this->data['pagination'] = $this->pagination->create_links();
     /*----------  Meta Details  ----------*/
     $this->page = $this->config->item('pages')['categories'];
     $this->data['title'] = $this->page['title'];
     $this->data['keywords'] = $this->page['keywords'];
     $this->data['description'] = $this->page['description'];
     $this->data['social_meta_title'] = $this->page['social_meta_title'];
     $this->data['social_meta_image'] = $this->page['social_meta_image'];
     /*---------- End Meta Details  ----------*/
     $this->data['content'] = 'pages/category';
     $this->load->view('layout', $this->data);
 }
 public function edit($inserted_id)
 {
     $categoryObj = new categories_model();
     $categoryObj->id = $inserted_id;
     if ($this->input->post()) {
         $this->form_validation->set_rules('category', 'Category Name', "trim|required|xss_clean|callback_update_unique['.{$categoryObj->id}.']");
         $this->form_validation->set_message('update_unique', 'The %s that you requested is unavailable.');
         if ($this->form_validation->run() == FALSE) {
             $this->data['form'] = $categoryObj->get();
             $this->data['errors'] = '';
             $this->load->view('admin/edit-category', $this->data);
         } else {
             $categoryObj->name = $this->input->post('category', TRUE);
             $categoryObj->status = 0;
             if (!$categoryObj->update()) {
                 $this->data['form'] = $categoryObj->get();
                 $this->data['errors'] = 'Fail';
                 $this->load->view('admin/edit-category', $this->data);
             } else {
                 if (isset($_FILES['image']) && is_uploaded_file($_FILES['image']['tmp_name'])) {
                     // File Uploading
                     $config['upload_path'] = './assests/categories/';
                     $config['allowed_types'] = 'gif|jpg|png';
                     $config['max_size'] = '100';
                     $config['max_width'] = '1024';
                     $config['max_height'] = '768';
                     $config['required'] = '-1';
                     $config['file_name'] = 'category_' . $categoryObj->id;
                     $this->load->library('upload', $config);
                     if (!$this->upload->do_upload('image')) {
                         $this->session->set_flashdata('error', $this->upload->display_errors());
                         redirect('admin/category/edit/' . $categoryObj->id, 'refresh');
                     } else {
                         $data = array('upload_data' => $this->upload->data());
                         $categoryObj->image = $data['upload_data']['file_name'];
                         $categoryObj->update();
                     }
                 }
                 redirect('admin/category', 'refresh');
             }
         }
     } else {
         $this->data['form'] = $categoryObj->get();
         $this->data['errors'] = '';
         $this->load->view('admin/edit-category', $this->data);
     }
 }
 public function __construct()
 {
     parent::__construct();
     $this->data['site_details'] = $this->config->item('site_details');
     $this->load->model('categories_model');
     $this->load->model('products_model');
     $categoryObj = new categories_model();
     $categoryObj->where = array('published' => 1);
     $this->data['categories'] = $categoryObj->get();
 }
 public function __construct()
 {
     parent::__construct();
     if (!$this->ion_auth->is_admin()) {
         $this->session->set_flashdata('message', 'You must be an admin to view this page');
         redirect('users/login');
     }
     $this->data['site_details'] = $this->config->item('site_details');
     $this->load->model('categories_model');
     $this->load->model('products_model');
     $categoryObj = new categories_model();
     $categoryObj->where = array('published' => 1);
     $this->data['categories'] = $categoryObj->get();
 }
 public function index()
 {
     $productObj = new products_model();
     $productObj->limit = 4;
     $productObj->where = array('published' => 1, 'featured' => 1);
     $this->data['featured_products'] = $productObj->get();
     if ($this->data['featured_products']) {
         foreach ($this->data['featured_products'] as $product) {
             if ($product->category) {
                 $categoryObj = new categories_model();
                 $categoryObj->id = $product->category;
                 $category = $categoryObj->get();
                 $product->category = $category->name;
                 $product->category_url = $category->url;
             }
         }
     }
     $productObj = new products_model();
     $productObj->limit = 4;
     $productObj->order = array('date_published', 'desc');
     $productObj->where = array('published' => 1);
     $this->data['new_products'] = $productObj->get();
     if ($this->data['new_products']) {
         foreach ($this->data['new_products'] as $product) {
             if ($product->category) {
                 $categoryObj = new categories_model();
                 $categoryObj->id = $product->category;
                 $category = $categoryObj->get();
                 $product->category = $category->name;
                 $product->category_url = $category->url;
             }
         }
     }
     /*----------  Meta Details  ----------*/
     $this->page = $this->config->item('pages')['home'];
     $this->data['title'] = $this->page['title'];
     $this->data['keywords'] = $this->page['keywords'];
     $this->data['description'] = $this->page['description'];
     $this->data['social_meta_title'] = $this->page['social_meta_title'];
     $this->data['social_meta_image'] = $this->page['social_meta_image'];
     /*----------  End Meta Details  ----------*/
     $this->data['content'] = 'pages/home';
     $this->load->view('layout', $this->data);
 }
 public function index($product_url = '')
 {
     $categoryObj = new categories_model();
     $categoryObj->where = array('published' => 1);
     $this->data['categories'] = $categoryObj->get();
     if ($product_url && $product_url != 'page') {
         $productObj = new products_model();
         $productObj->where = array('url' => $product_url);
         $productObj->id = $productObj->get_id();
         $this->data['product'] = $productObj->get();
         if ($this->data['product']->category) {
             $categoryObj = new categories_model();
             $categoryObj->id = $this->data['product']->category;
             $category = $categoryObj->get();
             $this->data['product']->category = $category->name;
             $this->data['product']->category_url = $category->url;
         }
         /*----------  Meta Details  ----------*/
         $this->data['title'] = $this->data['product']->name . ' | ' . $this->page['title'];
         $this->data['keywords'] = $this->data['product']->meta_keywords;
         $this->data['description'] = $this->data['product']->meta_description;
         $this->data['social_meta_title'] = $this->data['product']->social_meta_title ? $this->data['product']->social_meta_title : $this->data['product']->name . ' | ' . $this->page['title'];
         $this->data['social_meta_image'] = $this->data['product']->social_meta_image ? $this->data['product']->social_meta_image : '';
         /*----------  End Meta Details  ----------*/
         $this->data['content'] = 'pages/product_view';
         $this->load->view('layout', $this->data);
     } else {
         $productObj = new products_model();
         $productObj->where = array('published' => 1);
         /*----------  Meta Details  ----------*/
         $this->data['title'] = $this->page['title'];
         $this->data['keywords'] = $this->page['keywords'];
         $this->data['description'] = $this->page['description'];
         $this->data['social_meta_title'] = $this->page['social_meta_title'];
         $this->data['social_meta_image'] = $this->page['social_meta_image'];
         /*----------  End Meta Details  ----------*/
         if ($this->input->get()) {
             if ($this->data['category_url'] = $this->input->get('category', TRUE)) {
                 $categoryObj = new categories_model();
                 $categoryObj->where = array('url' => $this->data['category_url']);
                 $categoryObj->id = $categoryObj->get_id();
                 $category = $categoryObj->get();
                 if (!$category) {
                     redirect(base_url('products'), 'location', 'refresh');
                 }
                 $this->data['heading'] = $category->name;
                 /*----------  Meta Details  ----------*/
                 $this->data['title'] = $category->name . ' | ' . $this->page['title'];
                 $this->data['keywords'] = $category->meta_keywords;
                 $this->data['description'] = $category->meta_description;
                 $this->data['current_url'] = base_url('products') . '?category=' . $this->data['category_url'];
                 $this->data['social_meta_title'] = $category->social_meta_title ? $category->social_meta_title : $category->name . ' | ' . $this->page['title'];
                 $this->data['social_meta_image'] = $category->social_meta_image ? $category->social_meta_image : '';
                 /*----------  End Meta Details  ----------*/
                 $productObj->where = array('published' => 1, 'category' => $categoryObj->id);
             } elseif ($this->data['category_url'] = $this->input->get('category', TRUE) && ($this->data['sort'] = $this->input->get('sort', TRUE))) {
                 $categoryObj = new categories_model();
                 $categoryObj->where = array('url' => $this->data['category_url']);
                 $categoryObj->id = $categoryObj->get_id();
                 $category = $categoryObj->get();
                 if (!$category) {
                     redirect(base_url('products'), 'location', 'refresh');
                 }
                 $this->data['heading'] = $category->name;
                 /*----------  Meta Details  ----------*/
                 $this->data['title'] = $category->name . ' | ' . $this->page['title'];
                 $this->data['keywords'] = $category->meta_keywords;
                 $this->data['description'] = $category->meta_description;
                 $this->data['current_url'] = base_url('products') . '?category=' . $this->data['category_url'];
                 $this->data['social_meta_title'] = $category->social_meta_title ? $category->social_meta_title : $category->name . ' | ' . $this->page['title'];
                 $this->data['social_meta_image'] = $category->social_meta_image ? $category->social_meta_image : '';
                 /*----------  End Meta Details  ----------*/
                 switch ($this->data['sort']) {
                     case 'featured':
                         $productObj->where = array('published' => 1, 'category' => $categoryObj->id);
                         $productObj->where = array('published' => 1, 'featured' => 1);
                         break;
                     case 'latest':
                         $productObj->where = array('published' => 1, 'category' => $categoryObj->id);
                         $productObj->order = array('date_published', 'desc');
                         break;
                     case 'oldest':
                         $productObj->order = array('date_published', 'asc');
                         $productObj->where = array('published' => 1, 'category' => $categoryObj->id);
                         break;
                     case 'price-high-to-low':
                         $productObj->order = array('price', 'desc');
                         $productObj->where = array('published' => 1, 'category' => $categoryObj->id);
                         break;
                     case 'price-low-to-high':
                         $productObj->order = array('price', 'asc');
                         $productObj->where = array('published' => 1, 'category' => $categoryObj->id);
                         break;
                     default:
                         $productObj->where = array('published' => 1, 'category' => $categoryObj->id);
                         break;
                 }
             } elseif ($this->data['sort'] = $this->input->get('sort', TRUE)) {
                 switch ($this->data['sort']) {
                     case 'featured':
                         $productObj->where = array('published' => 1, 'featured' => 1);
                         break;
                     case 'latest':
                         $productObj->order = array('date_published', 'desc');
                         break;
                     case 'oldest':
                         $productObj->order = array('date_published', 'asc');
                         break;
                     case 'price-high-to-low':
                         $productObj->order = array('price', 'desc');
                         break;
                     case 'price-low-to-high':
                         $productObj->order = array('price', 'asc');
                         break;
                     default:
                         # code...
                         break;
                 }
             } else {
                 redirect(base_url('products'), 'location', 'refresh');
             }
         }
         $row_count = $productObj->count();
         // Customize pagination
         $config = $this->config->item('pagination');
         $config['base_url'] = base_url('products');
         $config['total_rows'] = $row_count;
         $config['per_page'] = 8;
         $config['prefix'] = 'page/';
         $this->pagination->initialize($config);
         $page = $this->uri->segment(3) ? $this->uri->segment(3) : 0;
         $productObj->limit = $config['per_page'];
         $productObj->offset = $page;
         $this->data['products'] = $productObj->get();
         if ($this->data['products']) {
             foreach ($this->data['products'] as $product) {
                 if ($product->category) {
                     $categoryObj = new categories_model();
                     $categoryObj->id = $product->category;
                     $category = $categoryObj->get();
                     $product->category = $category->name;
                     $product->category_url = $category->url;
                 }
             }
         }
         $this->data['pagination'] = $this->pagination->create_links();
         $this->data['content'] = 'pages/products';
         $this->load->view('layout', $this->data);
     }
 }
 public function adggd()
 {
     $categoriesObj = new categories_model();
     $this->data['categories'] = $categoriesObj->get();
     if ($this->input->post()) {
         $insert_data['name'] = $this->input->post('name');
         $insert_data['description'] = $this->input->post('description');
         $insert_data['category'] = $this->input->post('category');
         $insert_data['price'] = $this->input->post('price');
         $insert_data['promotion'] = $this->input->post('promotion');
         $insert_data['promotion_price'] = $this->input->post('promotion_price');
         $insert_data['image'] = $this->input->post('image');
         $this->form_validation->set_rules('name', 'Product Name', 'required');
         $this->form_validation->set_rules('category', 'Category', 'required');
         $this->form_validation->set_rules('price', 'Price', 'required|decimal');
         $this->form_validation->set_rules('promotion[]', 'Promotion', 'required|decimal');
         $this->form_validation->set_rules('promotion_price', 'Promotion Price', 'decimal');
         //$this->form_validation->set_rules('image', 'Image', 'required');
         if ($this->form_validation->run() == FALSE) {
             $this->data['form'] = $insert_data;
             $this->data['errors'] = '';
             $this->load->view('admin/add-product', $this->data);
         } else {
             $categoriesObj = new categories_model();
             $category_id = $categoriesObj->get_id('name', $insert_data['category']);
             $productsObj = new products_model();
             $productsObj->name = $insert_data['name'];
             $productsObj->description = $insert_data['description'];
             $productsObj->price = $insert_data['price'];
             $productsObj->category = $category_id;
             $productsObj->image = 'defaults.jpg';
             $productsObj->status = 0;
             $productsObj->promotion = $insert_data['promotion'][0] == 'yes' ? 1 : 0;
             $productsObj->promotion_price = $insert_data['promotion_price'];
             $productsObj->insert();
             if (!$productsObj->id) {
                 echo "Fail";
             } else {
                 $this->data['form'] = $productsObj->get();
                 // File Uploading
                 $config['upload_path'] = './assests/products/';
                 $config['allowed_types'] = 'gif|jpg|png';
                 $config['max_size'] = '100';
                 $config['max_width'] = '1024';
                 $config['max_height'] = '768';
                 $config['file_name'] = 'products_' . $productsObj->id;
                 $this->load->library('upload', $config);
                 if (!$this->upload->do_upload('image')) {
                     $this->session->set_flashdata('error', $this->upload->display_errors());
                     redirect('admin/products/edit/' . $productsObj->id, 'refresh');
                 } else {
                     $data = array('upload_data' => $this->upload->data());
                     $productsObj->image = $data['upload_data']['file_name'];
                     $productsObj->update();
                     redirect('admin/products', 'refresh');
                 }
             }
         }
     } else {
         $this->data['errors'] = '';
         $this->load->view('admin/add-product', $this->data);
     }
 }