<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Category extends CI_Controller {
public function __construct() {
parent::__construct();
date_default_timezone_set("Asia/Riyadh");
$this->load->model('Category_model');
$this->load->model('Dashboard_model');
if(!$this->session->userdata('logged_in')) {
redirect(base_url('Login'));
}
$role = roleManagement();
if(!array_key_exists('Category',$role)){
redirect(base_url('Dashboard'));
}
}
function listCategory(){
$template['page'] = 'Category/viewCategoryList';
$template['menu'] = 'Category Management';
$template['smenu'] = 'View Category List';
$template['pTitle'] = "Category Management";
$template['pDescription'] = "View Category List";
$template['categoryData'] = $this->Category_model->getCategoryData();
$this->load->view('template',$template);
}
function addCategory(){
$this->load->model('Category_model');
$template['categoryData'] = $this->Category_model->getCategoryData();
$template['page'] = 'Category/categoryAddForm';
$template['menu'] = 'Category Management';
$template['smenu'] = 'Add Category';
$template['pTitle'] = "Add Category";
$template['pDescription'] = "Create New Category";
$this->load->view('template',$template);
}
function createCategory(){
$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
if(!isset($_POST) || empty($_POST)){
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/addCategory'));
}
$err = 0;
$errMsg = '';
if(!isset($_POST['category_name_EN']) || empty($_POST['category_name_EN'])){
$err = 1;
$errMsg = 'Provide a Category Name in English';
} else if ($err == 0 &&
(!isset($_FILES) || empty($_FILES) || !isset($_FILES['category_image_EN']) ||
empty($_FILES['category_image_EN']))){
$err = 1;
$errMsg = 'Provide a Category Icon';
} else if($err == 0 && (!isset($_FILES) || empty($_FILES) ||
!isset($_FILES['category_banner'])||empty($_FILES['category_banner']))){
$err = 1;
$errMsg = 'Provide a Category Banner Image';
}
if($err == 0){
$this->load->library('upload');
$config = set_upload_service("assets/uploads/services");
$config['file_name'] = time()."_".$_FILES['category_banner']['name'];
$this->upload->initialize($config);
if(!$this->upload->do_upload('category_banner')){
$err = 1;
$errMsg = $this->upload->display_errors();
}else{
$upload_data = $this->upload->data();
$_POST['category_banner'] = $config['upload_path']."/".$upload_data['file_name'];
}
$language = getLanguages();
foreach($language AS $lang) {
if(!isset($_FILES['category_image_'.$lang]['name']) ||
empty($_FILES['category_image_'.$lang]['name'])){
continue;
}
$config['file_name'] = time()."_".$_FILES['category_image_'.$lang]['name'];
$this->upload->initialize($config);
if(!$this->upload->do_upload('category_image_'.$lang)){
$err = 1;
$errMsg = $this->upload->display_errors();
break;
}else{
$upload_data = $this->upload->data();
$_POST['category_image_'.$lang]=$config['upload_path']."/".$upload_data['file_name'];
}
}
}
if($err == 1){
$flashMsg['message'] = $errMsg;
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/addCategory'));
}
$status = $this->Category_model->createCategory($_POST);
if($status == 1){
$flashMsg['class'] = 'success';
$flashMsg['message'] = 'Category Created';
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/listCategory'));
}
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/addCategory'));
}
function editCategory($category_id=''){
$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
if(empty($category_id) || empty(decode_param($category_id))){
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/listCategory'));
}
$template['page'] = 'Category/categoryAddForm';
$template['menu'] = 'Category Management';
$template['smenu'] = 'Edit Category';
$template['pTitle'] = "Edit Category";
$template['pDescription'] = "Update Category Data";
$template['category_id'] = $category_id;
$template['categoryData'] = $this->Category_model->getCategoryData(decode_param($category_id));
$this->load->view('template',$template);
}
function updateCategory($category_id=''){
$flashMsg = array('message'=>'Something went wrong, please try again..!','class'=>'error');
if(!isset($_POST) || empty($_POST) || empty($category_id)){
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/listCategory'));
}
$err = 0;
$errMsg = '';
if(!isset($_POST['category_name_EN']) || empty($_POST['category_name_EN'])){
$err = 1;
$errMsg = 'Provide a Category Name in English';
}
if($err == 0){
$this->load->library('upload');
$config = set_upload_service("assets/uploads/services");
$language = getLanguages();
foreach($language AS $lang) {
if(!isset($_FILES['category_image_'.$lang]['name']) ||
empty($_FILES['category_image_'.$lang]['name'])){
continue;
}
$config['file_name'] = time()."_".$_FILES['category_image_'.$lang]['name'];
$this->upload->initialize($config);
if($this->upload->do_upload('category_image_'.$lang)){
$upload_data = $this->upload->data();
$_POST['category_image_'.$lang]=$config['upload_path']."/".$upload_data['file_name'];
}
}
$config['file_name'] = time()."_".$_FILES['category_banner']['name'];
$this->upload->initialize($config);
if($this->upload->do_upload('category_banner')){
$upload_data = $this->upload->data();
$_POST['category_banner'] = $config['upload_path']."/".$upload_data['file_name'];
}
}
if($err == 1){
$flashMsg['message'] = $errMsg;
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/editCategory/'.$category_id));
}
$status = $this->Category_model->updateCategory(decode_param($category_id),$_POST);
if($status == 1){
$flashMsg['class'] = 'success';
$flashMsg['message'] = 'Category Created';
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/listCategory'));
}
$this->session->set_flashdata('message',$flashMsg);
redirect(base_url('Category/editCategory/'.$category_id));
}
function changeStatus(){
if(!isset($_POST) || !isset($_POST['category_id']) || empty($_POST['category_id']) ||
!isset($_POST['status']) || $_POST['status'] == ''){
echo json_encode(array('status'=>'0'));exit;
}
$status = $_POST['status'];
$category_id = decode_param($_POST['category_id']);
$resp = $this->Category_model->changeStatus($category_id,$status);
if($resp){
echo json_encode(array('status'=>'1'));exit;
}
echo json_encode(array('status'=>'0'));exit;
}
function categoryOrdering(){
$template['page'] = 'Category/categoryOrder';
$template['menu'] = 'Category Ordering';
$template['smenu'] = 'Order Category List';
$template['pTitle'] = "Category Ordering";
$template['pDescription'] = "Order Category List";
$template['categoryData'] = $this->Category_model->getCategoryData('','1');
$this->load->view('template',$template);
}
function catReorder(){
if(!isset($_POST) || !isset($_POST['category_order']) || empty($_POST['category_order'])){
echo json_encode(array('status'=>'0'));exit;
}
$resp = $this->Category_model->catReorder($_POST['category_order']);
if($resp){
echo 1;exit;
}
echo 0;exit;
}
}
?>