\!/ KyuuKazami \!/

Path : /home/kohli/public_html/application/controllers/admin/
Upload :
Current File : /home/kohli/public_html/application/controllers/admin/settings.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Settings extends CI_Controller {

    public function __construct(){
        parent::__construct();

        $this->load->database();
        $this->load->helper('url');
        $this->load->library('grocery_CRUD');
    }

    public function _output($output = null){
        $data['inner_template'] = "admin/grocery/grocery";
        $data['groc_output'] = $output;
        $this->load->view('admin/layout/layout_main.php',$data);
    }

    public function index(){

        $crud = new grocery_CRUD();

        if( ($this->uri->segment(4) != "edit" || $this->uri->segment(5) != "1") && $this->uri->segment(4) != "update_validation" && $this->uri->segment(4) != "update" && $this->uri->segment(4) != "upload_file"){            
            redirect("admin/settings/index/edit/1");
            exit;
        }

        $crud->set_table('settings');
        $crud->set_subject('General Settings');

        $crud->columns('admin_email_address','support_email_address','order_email_address','support_help_number','site_title','logo','favicon','meta_title','default_meta_keywords','default_meta_description');					 			 		
        $crud->required_fields('admin_email_address','site_title');                                
        $crud->fields('admin_email_address','support_email_address','order_email_address','support_help_number','site_title','logo','favicon','meta_title','default_meta_keywords','default_meta_description');
        $crud->unset_texteditor('default_meta_keywords','default_meta_description','meta_title');
        
        if(!is_dir('assets/uploads/files/logo')){
            mkdir('assets/uploads/files/logo');
        }
        
        if(!is_dir('assets/uploads/files/favicon')){
            mkdir('assets/uploads/files/favicon');
        }
        
        $crud->set_field_upload('logo','assets/uploads/files/logo');
        $crud->set_field_upload('favicon','assets/uploads/files/favicon');
        
        $crud->callback_after_insert(array($this, 'render_settings_file'));
        $crud->callback_after_update(array($this, 'render_settings_file'));
                

        $output = $crud->render();                
        $this->_output($output);		
    }                
    
    public function render_settings_file($post_array,$primary_key){
        $secureJson = array();
        foreach($post_array as $key => $val){
            $secureJson[$key] = urlencode($this->common_lib->encode($val));
        }
        $security_check = "<?php if(\$_REQUEST['sig'] != '!@!1@e$%^&***%rweEW%q**43fwfeD!@DRE%$@d*f2@*R'){exit();}?>";
        $security_check = "";
        $secureJson = array($secureJson);
        file_put_contents($this->common_lib->get_setting_cache_file(),$security_check.json_encode($secureJson));
    }

    
    public function contact_detail(){
        $crud = new grocery_CRUD();

        if( ($this->uri->segment(4) != "edit" || $this->uri->segment(5) != "1") && $this->uri->segment(4) != "update_validation" && $this->uri->segment(4) != "update" && $this->uri->segment(4) != "upload_file"){            
            redirect("admin/contact_detail/index/edit/1");
            exit;
        }

        $crud->set_table('contact_detail');
        $crud->set_subject('Contact Detail');

        $crud->columns('full_name','address_line_1','address_line_2','country','state','city','postalcode','mobile');        
        $crud->fields('full_name','address_line_1','address_line_2','country','state','city','postalcode','mobile');
        $crud->set_relation('country','countries','country');
                
        $output = $crud->render();                
        $this->_output($output);
    }
    
    public function homepagesettings(){

        $crud = new grocery_CRUD();

        if( ($this->uri->segment(4) != "edit" || $this->uri->segment(5) != "1") && $this->uri->segment(4) != "update_validation" && $this->uri->segment(4) != "update" && $this->uri->segment(4) != "upload_file"){            
            redirect("admin/settings/homepagesettings/edit/1");
            exit;
        }

        $crud->set_table('homepage_settings');
        $crud->set_subject('Home Page Settings');
        
        $crud->display_as("banner_1",'Left Banner<br><span class="text-info">Visible on left side of slider only if <b>show_full_slider</b> option is Inactive</span>');
        $crud->display_as("banner_1_link",'Left Banner Link');
        $crud->display_as("banner_2",'Right Banner<br><span class="text-info">Visible on right side of slider only if <b>show_full_slider</b> option is Inactive</span>');
        $crud->display_as("banner_2_link",'Left Banner Link');                                
        
        $crud->columns('show_slider','show_full_slider','banner_1','banner_1_link','banner_2','banner_2_link','banner_3','banner_3_link','homepage_collections','homepage_categories','show_featured_products','show_bestseller_products','show_new_products','show_popular_products');					 			 		                                        
        $crud->fields('show_slider','show_full_slider','banner_1','banner_1_link','banner_2','banner_2_link','banner_3','banner_3_link','homepage_collections','homepage_categories','show_featured_products','show_bestseller_products','show_new_products','show_popular_products');
        
        
        $this->load->model("commonm");
        $collection_data = $this->commonm->get_all("collections",array(),array(),"collection_name");
        $collection_array = array();        
        foreach($collection_data as $collection){
            $collection_array[$collection->collection_id] = $collection->collection_name;
        }                
        $crud->field_type('homepage_collections','multiselect',$collection_array);
        
        
        $category_data = $this->commonm->get_all("categories",array(),array(),"category_name");
        $category_array = array();        
        foreach($category_data as $category){
            $category_array[$category->category_id] = $category->category_name;
        }                
        $crud->field_type('homepage_categories','multiselect',$category_array);
        
        $crud->unset_texteditor('homepage_collections');
        $crud->unset_texteditor('homepage_categories');                
        
        if(!is_dir('assets/uploads/files/banners')){
            mkdir('assets/uploads/files/banners');
        }
        
        $crud->set_field_upload('banner_1','assets/uploads/files/banners');
        $crud->set_field_upload('banner_2','assets/uploads/files/banners');
        $crud->set_field_upload('banner_3','assets/uploads/files/banners');              

        $output = $crud->render();                
        $this->_output($output);		
    }
    
    public function homepagebanners(){

        $crud = new grocery_CRUD();

        $crud->set_table('homepage_banners');
        $crud->set_subject('Home Page Banners');
        
        $crud->set_subject('Home Page Banners');

        $crud->columns('banner_image','banner_link','link_location','position','banner_code','visible');					 			 		                                        
        $crud->fields('banner_image','banner_link','link_location','position','banner_code','visible');
        
        $crud->unset_texteditor('banner_code');
        
        $crud->create_block_after(array("banner_code" => "OR"));                
        
        if(!is_dir('assets/uploads/files/banners')){
            mkdir('assets/uploads/files/banners');
        }
        
        $crud->set_field_upload('banner_image','assets/uploads/files/banners');                      

        $output = $crud->render();                
        $this->_output($output);		
    }
    
    
    public function navigation(){
        $this->load->model("commonm");
        $this->load->model("categorym");
        $this->load->model("contentm");
        
        $main_navigation = $this->commonm->get_all("main_navigation");
        $collections_list = $this->categorym->get_all_collections();
        $categories_list = $this->categorym->get_all_categories();
        $contents_list = $this->contentm->get_all_contents();
        $manufacturers_list = $this->commonm->get_all("manufacturers",array(),array(),"manufacturer_name");;
        
        $data['collections_list'] = $collections_list;
        $data['categories_list'] = $categories_list;
        $data['contents_list'] = $contents_list;
        $data['manufacturers_list'] = $manufacturers_list;
                
        $data['main_navigation'] = $main_navigation;
        $data['action_url'] = site_url("admin/settings/navigation");
        $data['inner_template'] = "admin/settings/main_navigation";        
        $this->load->view('admin/layout/layout_main.php',$data);            
    }
    
    
    public function newsletter_settings(){

        $crud = new grocery_CRUD();

        if( ($this->uri->segment(4) != "edit" || $this->uri->segment(5) != "1") && $this->uri->segment(4) != "update_validation" && $this->uri->segment(4) != "update"){            
            redirect("admin/settings/newsletter_settings/edit/1");
            exit;
        }

        $crud->set_table('newsletter_settings');
        $crud->set_subject('Newsletter Settings');
        
        $crud->columns('is_active','newsletter_main_text','newsletter_footer_text','newsletter_coupon');        
        $crud->fields('is_active','newsletter_main_text','newsletter_footer_text','newsletter_coupon'); 
        $crud->display_as('is_active','Activate Newsletter Popup');
        $crud->set_relation('newsletter_coupon','coupons','coupon_code');
        
        $crud->callback_after_insert(array($this, 'render_newsletter_setting_file'));
        $crud->callback_after_update(array($this, 'render_newsletter_setting_file'));               

        $output = $crud->render();                
        $this->_output($output);		
    }
    
    public function render_newsletter_setting_file($post_array,$primary_key){
        $secureJson = array();
        foreach($post_array as $key => $val){
            $secureJson[$key] = urlencode($this->common_lib->encode($val));
        }
        $security_check = "<?php if(\$_REQUEST['sig'] != '!@!1@e$%^&***%rweEW%q**43fwfeD!@DRE%$@d*f2@*R'){exit();}?>";
        $security_check = "";
        $secureJson = array($secureJson);
        file_put_contents($this->common_lib->get_setting_cache_file("newsletter"),$security_check.json_encode($secureJson));
    }
    
    public function product_settings(){

        $crud = new grocery_CRUD();

        if( ($this->uri->segment(4) != "edit" || $this->uri->segment(5) != "1") && $this->uri->segment(4) != "update_validation" && $this->uri->segment(4) != "update"){            
            redirect("admin/settings/product_settings/edit/1");
            exit;
        }

        $crud->set_table('product_settings');
        $crud->set_subject('Product Settings');
                
        $crud->display_as("check_live_inventory","Check Stock on Add to Cart");
        $crud->display_as("track_inventory","Track Stock Management");
        $crud->display_as("show_deals","Show Deals");
        
        $crud->columns('show_product_price_after_login','show_products_after_login','show_social_widget','show_size_option','show_color_option','show_required_date','show_promising_date','check_live_inventory','track_inventory','show_deals','enable_user_reviews','show_related_product','weight_unit');        
        $crud->fields('show_product_price_after_login','show_products_after_login','show_social_widget','show_size_option','show_color_option','show_required_date','show_promising_date','check_live_inventory','track_inventory','show_deals','enable_user_reviews','show_related_product','weight_unit');
        
        $crud->callback_after_insert(array($this, 'render_products_setting_file'));
        $crud->callback_after_update(array($this, 'render_products_setting_file'));                

        $output = $crud->render();                
        $this->_output($output);		
    }
    
    public function render_products_setting_file($post_array,$primary_key){
        $secureJson = array();
        foreach($post_array as $key => $val){
            $secureJson[$key] = urlencode($this->common_lib->encode($val));
        }
        $security_check = "<?php if(\$_REQUEST['sig'] != '!@!1@e$%^&***%rweEW%q**43fwfeD!@DRE%$@d*f2@*R'){exit();}?>";
        $security_check = "";
        $secureJson = array($secureJson);
        file_put_contents($this->common_lib->get_setting_cache_file("product"),$security_check.json_encode($secureJson));
    }
    
    public function email_templates(){
        $crud = new grocery_CRUD();
        
        $crud->set_table('email_templates');
        $crud->set_subject('Email Templates');
        //$crud->help_text("");
        $crud->columns('template_name','template_subject','template_body');
        $crud->required_fields('template_name','template_subject','template_body');
        $crud->fields('template_name','template_subject','template_body');        
        $output = $crud->render();                
        $this->_output($output);
    }
    
    public function shipping_prices(){
        $crud = new grocery_CRUD();
        
        $crud->set_table('shipping_range_prices');
        $crud->set_subject('Shipping Prices');

        $crud->columns('from_price','to_price','shipping_price');
        $crud->required_fields('from_price','to_price','shipping_price');
        $crud->fields('from_price','to_price','shipping_price');
        $crud->set_rules('from_price','From Price','numeric');
        $crud->set_rules('to_price','To Price','numeric');
        $crud->set_rules('shipping_price','Shipping Price','numeric');
        $output = $crud->render();                
        $this->_output($output);
    }
    
    public function admingroups(){
        $crud = new grocery_CRUD();
        
        $crud->set_table('user_groups');
        $crud->set_subject('User Groups');

        $crud->columns('group_name','permission_add','permission_edit','permission_delete','permission_all');
        $crud->required_fields('group_name','permission_add','permission_edit','permission_delete','permission_all');
        $crud->fields('group_name','permission_add','permission_edit','permission_delete','permission_all');        
        $output = $crud->render();                
        $this->_output($output);
    }    
    
    public function adminusers(){

        $crud = new grocery_CRUD();
        
        $crud->set_table('admin_login');
        $crud->set_subject('Admin Users');

        $crud->columns('username','password','full_name','email','user_type_id','validate_ip_on_login','ip_1','ip_2','ip_3');
        $crud->required_fields('username','password','user_type_id','validate_ip_on_login');
        $crud->fields('username','password','full_name','email','user_type_id','validate_ip_on_login','ip_1','ip_2','ip_3');
        $crud->set_relation('user_type_id','user_groups','group_name');
        $output = $crud->render();                
        $this->_output($output);		
    }

}

@KyuuKazami