Codeigniter CRUD Controller & View Code Generator

Simple tool to generate Create, Read, Update, Delete, View code for Codeigniter Controller & View



Enter controller class name


Enter model class name which has login, permission check



Enter page name


Enter URL for index page


Enter URL for dahsboard page


Enter URL for list page


Enter URL for view page, should add /(slash) at the end of url


Enter URL for create page, do not add /(slash) at the end of url


Enter URL for update page, should add /(slash) at the end of url


Enter URL for delete page, should add /(slash) at the end of url


Enter URL for Javascript, should add /(slash) at the end of url


Enter URL for CSS, should add /(slash) at the end of url


Select SSL for the page


Enter base variable name for this page


Enter base variable name for this page


Enter main template file name


Enter list view file name


Enter form view file name


Enter detail view file name


Enter model name


Enter get result function in model


Enter get function in model


Enter store function in model


Enter update function in model


Enter primary key field in table without table alias


Enter primary key field in table without table alias


Enter columns for the table

DB Column Field Label Display in Search? Search Type Search Query Display in List? Is Sortable? Display in Form? Form Type Display in View? Functions
Functions
Route
		$route['backend/users']					= "backend/backend_users/index";
		$route['backend/users/create']				= "backend/backend_users/user_form";
		$route['backend/users/update/(:num)']			= "backend/backend_users/user_form/$1";
		$route['backend/users/delete/(:num)']			= "backend/backend_users/delete_user/$1";
		$route['backend/users/view/(:num)']			= "backend/backend_users/view_user/$1";
	
Controller Code  Download backend_users.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class backend_users extends CI_Controller {
    public $template = array();
    function __construct()
    {
        parent::__construct();
        
        if($this->staff_model->check_login_status() == false)
        {
            $message = array(
                  'result'  =>  false
                , 'type'    =>  "error"
                , 'message' =>  $this->lang->line('session_timeout_login_again')
            );
            if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message); redirect(site_url('backend', true)."?r=".urlencode($_SERVER['REQUEST_URI'])); }
        }
        
        if($this->staff_model->check_permission('backend_users') == false)
        {
            $message = array(
                  'result'  =>  false
                , 'type'    =>  "error"
                , 'message' =>  $this->lang->line('dont_have_permission_access_page')
            );
            if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message); redirect(site_url('backend/dashboard', true)); 
            }
        }
        
        $params = array(
			  'page_name'			=>	'Users'
			, 'page_name_singular'	=>	'User'
		);
        $this->template['preload'] = $this->staff_model->get_prerequisite($params);
        
    }
    public function index()
    {
        $is_json = $this->input->get("json");
            
        $breadcrumbs = array(
              array( 'link'     =>      site_url('backend/dashboard', true),                    'text'      =>      'Dashboard' )
            , array( 'link'     =>      '',                                                         'text'      =>      'Users' )
        );
        $this->template['breadcrumbs'] = $breadcrumbs;
        
        $message = array();
        
        if($this->session->flashdata('message'))
        {
            $message = $this->session->flashdata('message');
        }
       
            
        $search_options = array(
              'status'          =>  1
        );
            
        if(isset($_GET) && !empty($_GET))
        {
            array_walk($_GET, 'trim');
            array_walk($_GET, 'xss_clean');
        }
            
        $paging_url = site_url('backend/users', true)."?search=true";
            
        $paging_url_params = "";
        $filter_str = "";
       
        
		//FIXME: Please check validation of query
        if($this->input->get('user_type') != "")
        {
            $search_options['user_type'] = $this->input->get('user_type');
            $paging_url .= "&user_type=".$search_options['user_type'];
            $filter_str .= "<div class='col-lg-4'><strong>User Type:</strong>&nbsp;".$search_options['user_type']."</div>";
        }
        if($this->input->get('first_name') != "")
        {
             $search_options['first_name_like'] = $this->input->get('first_name');
             $paging_url_params .= "&first_name=".$search_options['first_name_like'];
             $filter_str .= "<div class='col-lg-4'><strong>First Name</strong>&nbsp;".$search_options['first_name_like']."</div>";
        }
        if($this->input->get('last_name') != "")
        {
             $search_options['last_name_like'] = $this->input->get('last_name');
             $paging_url_params .= "&last_name=".$search_options['last_name_like'];
             $filter_str .= "<div class='col-lg-4'><strong>Last Name</strong>&nbsp;".$search_options['last_name_like']."</div>";
        }
        if($this->input->get('email') != "")
        {
             $search_options['user_email_like'] = $this->input->get('email');
             $paging_url_params .= "&email=".$search_options['user_email_like'];
             $filter_str .= "<div class='col-lg-4'><strong>Email</strong>&nbsp;".$search_options['user_email_like']."</div>";
        }
        if($this->input->get('reg_date') != "")
        {
            $date = $this->input->get('reg_date');
            $date = au_date_to_mysql($date); 
            if(strtotime($date) != -1)
            {
                $search_options['created_at'] = $date; 
                $paging_url .= "&reg_date=".$search_options['created_at'];
                $filter_str .= "<div class='col-lg-4'><strong>Registration Date:</strong>&nbsp;".date("d/m/Y", strtotime($search_options['created_at']))."</div>";
            }
            unset($date);
        }
                
                
        $sort_order_fields = array(
              array(
                     'label'        =>  'ID DESC'
                   , 'value'        =>  'user_id_desc'        
                   , 'order_by'     =>  'usr.user_id DESC'
               )
             , array(
                     'label'        =>  'ID ASC'
                   , 'value'        =>  'user_id_asc'
                   , 'order_by'     =>  'usr.user_id ASC'        
                )
             
             , array(
                  'label'        =>  'First Name ASC'
                , 'value'        =>  'first_name_asc'
                , 'order_by'     =>  'usr.first_name ASC'        
             )
             , array(
                  'label'        =>  'First Name DESC'
                , 'value'        =>  'first_name_desc'
                , 'order_by'     =>  'usr.first_name DESC'        
             )
	
             , array(
                  'label'        =>  'Last Name ASC'
                , 'value'        =>  'last_name_asc'
                , 'order_by'     =>  'usr.last_name ASC'        
             )
             , array(
                  'label'        =>  'Last Name DESC'
                , 'value'        =>  'last_name_desc'
                , 'order_by'     =>  'usr.last_name DESC'        
             )
	
             , array(
                  'label'        =>  'Email ASC'
                , 'value'        =>  'user_email_asc'
                , 'order_by'     =>  'usr.user_email ASC'        
             )
             , array(
                  'label'        =>  'Email DESC'
                , 'value'        =>  'user_email_desc'
                , 'order_by'     =>  'usr.user_email DESC'        
             )
	
             , array(
                  'label'        =>  'Registration Date ASC'
                , 'value'        =>  'created_at_asc'
                , 'order_by'     =>  'usr.created_at ASC'        
             )
             , array(
                  'label'        =>  'Registration Date DESC'
                , 'value'        =>  'created_at_desc'
                , 'order_by'     =>  'usr.created_at DESC'        
             )
	
             //FIXME: Expand here to have more order by
        );
        $this->template['sort_order_fields'] = $sort_order_fields;
                
        $search_options['order_by'] = "usr.user_id DESC";
        $search_options['search_order_by'] = "user_id_desc";
        if($this->input->get('order_by'))
        {
             $selected_sort_order_field = array_search_r($sort_order_fields, 'value', $this->input->get('order_by'));
                        
             if(!empty($selected_sort_order_field))
             {
                  $selected_sort_order_field = $selected_sort_order_field[0];
                  $search_options['search_order_by'] = $selected_sort_order_field['value'];
                  $paging_url .= "&order_by=".$search_options['search_order_by'];
                  $search_options['order_by'] = $selected_sort_order_field['order_by'];
             }
        }
        
        $this->template['filter_str'] = $filter_str;
                   
        $total_rows = $this->user_model->get_users_result($search_options)->num_rows();
        $this->template['total_rows'] = $total_rows;
		
        $per_page = $this->input->get('per_page');
		$per_page = (int)$per_page;
		if($per_page == 0){ $per_page = 10; }
        
        $paging_config = array(
              'base_url'                    =>  $paging_url
            , 'total_rows'                  =>  $total_rows
            , 'per_page'                    =>  $per_page
            , 'num_links'                   =>  5
            , 'page_query_string'           =>  true
            , 'query_string_segment'        =>  'page'
            , 'full_tag_open'               =>  '<ul class="pagination">'
            , 'full_tag_close'              =>  '</ul>'
            , 'first_link'                  =>  'First'
            , 'first_tag_open'              =>  '<li class="prev">'
            , 'first_tag_close'             =>  '</li>'
            , 'last_link'                   =>  'Last'
            , 'last_tag_open'               =>  '<li class="next">'
            , 'last_tag_close'              =>  '</li>'
            , 'next_link'                   =>  'Next'
            , 'next_tag_open'               =>  '<li class="next">'
            , 'next_tag_close'              =>  '</li>'
            , 'prev_link'                   =>  'Prev'
            , 'prev_tag_open'               =>  '<li class="prev">'
            , 'prev_tag_close'              =>  '</li>'
            , 'cur_tag_open'                =>  '<li class="active"><span>'
            , 'cur_tag_close'               =>  '</span></li>'
            , 'num_tag_open'                =>  '<li class="paging_num_{::page}">'
            , 'num_tag_close'               =>  '</li>'
        );
        
        $this->pagination->initialize($paging_config);
        
        $page        = $this->input->get('page');
        $paging_url_params .= "&page=".(int)$page;
        $page_offset = ($page > 1? $page - 1: 0) * $paging_config['per_page'];
        $search_options['limit'] = $paging_config['per_page'];
        $search_options['offset'] = $page_offset;
                
            
        $users = $this->user_model->get_users($search_options, $paging_config['per_page'], $page_offset, $total_rows);
        $this->template['users'] = $users;
        $this->template['search_options'] = $search_options;
		
        $this->template['paging_url_params'] = $paging_url_params;
        
        $this->session->set_userdata('backend_users_paging_url_params', $paging_url_params);
            
        $this->template['main_content']     = 'users/users_list_view';
        
        $this->template['ssl']      = true;
        $this->template['message']  = $message;
        $this->load->view($this->config->item('template').'/template/main_template', $this->template);
    }

         
    function view_user()
    {
        $message = array();
        
        if($this->session->flashdata('message'))
        {
            $message = $this->session->flashdata('message');
        }

        $user_id = $this->uri->segment(4);
        if($user_id == false)
        {
             $message = array(
                  'result'  =>  false
                , 'type'    =>  "error"
                , 'message' =>  $this->lang->line('sorry_system_couldnt_find_requested_information')
            );
            if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message);  redirect(site_url('backend/users', true)); }
        }
        
        $view_mode = "view";
        $search_options = array(
              'user_id' =>  $user_id
            , 'status'                    =>  1
        );
        $user = $this->user_model->get_users($search_options);
        if(empty($user))
        {
            $message = array(
                  'result'  =>  false
                , 'type'    =>  "error"
                , 'message' =>  $this->lang->line('sorry_system_couldnt_find_requested_information')
            );
            if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message);  redirect(site_url('backend/users', true)); }
        }
        
        $user = $user[0];
        $this->template['user'] = $user;
        
        //##################################################################
        // START: Breadcrumbs
        $breadcrumbs = array(
              array( 'link'     =>      site_url('backend/dashboard', true), 'text'      =>     'Dashboard' )
            , array( 'link'     =>      site_url('backend/users', true) ,     'text'      =>     'Users' )
            , array( 'link'     =>      '',                                     'text'      =>     'View User' )
            
        );
        $this->template['breadcrumbs'] = $breadcrumbs;
        // FINISH: Breadcrumbs
        //##################################################################
        $this->template['view_mode'] = $view_mode;
        $this->template['message']  = $message;
        
        $this->template['main_content']     = 'users/user_detail_view';
        $this->template['ssl']      = true;
        $this->load->view($this->config->item('template').'/template/main_template', $this->template);
        
    }
        

    public function user_form()
    {
        $is_json = $this->input->get("json");
        
        $message = array();
        
        if($this->session->flashdata('message'))
        {
            $message = $this->session->flashdata('message');
        }

        $user_id = $this->uri->segment(4);
        $view_mode = "create";
        if($this->uri->segment(3) == "update" && $user_id != "")
        {
            $view_mode = "update";
            $search_options = array(
                  'user_id'       =>  $user_id
                , 'status'                        =>  1
            );
            $user_info = $this->user_model->get_users($search_options);
            if(empty($user_info))
            {
                $message = array(
                      'result'  =>  false
                    , 'type'    =>  "error"
                    , 'message' =>  $this->lang->line('sorry_system_couldnt_find_requested_information')
                );
                if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message);  redirect(site_url('backend/users', true)); }
            }
            
            $user_info = $user_info[0];
            $this->template['user_info'] = $user_info;
        }
        
        
        if($this->input->post('submitted') == true)
        {
            if($this->_validate_user($view_mode) == false)
            {
                $message = array(
                      'result'      =>  false
                    , 'type'        =>  "error"
                    , 'message'     =>  validation_errors()
                );
                if($is_json == true) { echo json_encode($message);die; }
            }
            else
            {
                    
                  $user_type				= $this->input->post('user_type');
                  $first_name				= $this->input->post('first_name');
                  $last_name				= $this->input->post('last_name');
                  $user_email				= $this->input->post('user_email');
                  $user_password				= $this->input->post('user_password');
                  $last_login_at				= null;
                  $enabled				= $this->input->post('enabled');
                  $status				= 1;
                  $created_at				= date("Y/m/d H:i:s");
                  $modified_at				= date("Y/m/d H:i:s");
                                
                if($view_mode == "create")
                {
                    $new_user_info = array(
                               
                            'user_type'				=>		$user_type
                          , 'first_name'				=>		$first_name
                          , 'last_name'				=>		$last_name
                          , 'user_email'				=>		$user_email
                          , 'user_password'				=>		$user_password
                          , 'last_login_at'				=>		$last_login_at
                          , 'enabled'				=>		$enabled
                          , 'status'				=>		$status
                          , 'created_at'				=>		$created_at
                          , 'modified_at'				=>		$modified_at
                    );
                    
                    $result = $this->user_model->store_user($new_user_info);
                    if($result == true)
                    {
                        $new_user_info['user_id'] = $this->db->insert_id();
                        $message = array(
                              'result'      =>  true
                            , 'type'        =>  "success"
                            , 'message'     =>  $this->lang->line('requested_information_created_successfully')
                        );
                        
                        if($is_json == true) { echo json_encode($message);die; }
                        $this->session->set_flashdata('message', $message);
                        redirect(site_url('backend/users/view/'.$new_user_info['user_id'], true));
                    }
                    else
                    {
                        $message = array(
                              'result'      =>  false
                            , 'type'        =>  "error"
                            , 'message'     =>  $this->lang->line('sorry_was_error_occurred_try_again')
                        );
                        if($is_json == true) { echo json_encode($message);die; }
                    }
                }
                elseif($view_mode == "update")
                {
                       $new_user_info = array(
                               
                            'user_id'				=>		$user_id
                          , 'user_type'				=>		$user_type
                          , 'first_name'				=>		$first_name
                          , 'last_name'				=>		$last_name
                          , 'user_email'				=>		$user_email
                          , 'user_password'				=>		$user_password
                          , 'enabled'				=>		$enabled
                          , 'modified_at'				=>		$modified_at                         
                      );
                    
                    $result = $this->user_model->update_user($new_user_info);
                    if($result == true)
                    {
                        $message = array(
                              'result'      =>  true
                            , 'type'        =>  "success"
                            , 'message'     =>  $this->lang->line('requested_information_updated_successfully')
                        );
                        
                        if($is_json == true) { echo json_encode($message);die; }
                        $this->session->set_flashdata('message', $message);
                        redirect(site_url('backend/users/view/'.$new_user_info['user_id'], true));
                    }
                    else
                    {
                        $message = array(
                              'result'      =>  false
                            , 'type'        =>  "error"
                            , 'message'     =>  $this->lang->line('sorry_was_error_occurred_try_again')
                        );
                        if($is_json == true) { echo json_encode($message);die; }
                    }
                }
            }
        }
        
        
        
        //##################################################################
        // START: Breadcrumbs
        $breadcrumbs = array(
              array( 'link'     =>      site_url('backend/dashboard', true),                  'text'      =>      'Dashboard')
            , array( 'link'     =>      site_url('backend/users', true) ,                      'text'      =>      'Users' )
            
        );
        if($view_mode == "create") { $breadcrumbs[] = array( 'link' => '', 'text' => 'New User' ); }
        elseif($view_mode == "update") { $breadcrumbs[] = array( 'link' => '', 'text' => 'Update User' ); }
        $this->template['breadcrumbs'] = $breadcrumbs;
        // FINISH: Breadcrumbs
        //##################################################################
        $this->template['view_mode'] = $view_mode;
        $this->template['message']  = $message;
        
        $this->template['main_content']     = 'users/user_form_view';
        $this->template['ssl']      = true;
        $this->load->view($this->config->item('template').'/template/main_template', $this->template);
    }
      
    private function _validate_user($view_mode)
    {
        
            $this->form_validation->set_rules('user_type',                'User Type',       'trim|required|callback__validate_user_type');
            $this->form_validation->set_rules('first_name',                'First Name',       'trim|required|max_length[250]');
            $this->form_validation->set_rules('last_name',                'Last Name',       'trim|required|max_length[250]');
            $this->form_validation->set_rules('user_email',                'Email',       'trim|required|max_length[250]|valid_email');
            $this->form_validation->set_rules('user_password',                'Password',       'trim|required|min_length[6]|max_length[200]');
            $this->form_validation->set_rules('enabled',                'Enabled',       'trim|required|numeric');
            
            
        if($this->form_validation->run() == false)
        {
            return false;
        }
        else
        {
           return true;
        }
        
    }
        
        
    //FIXME: Change validation code and message.
    function _validate_user_type($value)
    {
        $validate_result = false;
        if($validate_result == false)
        {
            $this->form_validation->set_message('_validate_user_type', "Entered User Type is not correct. Please check and try again" );
            return false;
        }
        return true;
    }
		  	
      
    function delete_user()
    {
            
        $is_json = $this->input->get("json");
        
        $message = array();
        
        if($this->session->flashdata('message'))
        {
            $message = $this->session->flashdata('message');
        }

        $user_id = $this->uri->segment(4);
            
        $user_info = array();
        $view_mode = "delete";
        if($user_id != "")
        {
            $search_options = array(
                  'user_id'      =>  $user_id
                , 'status'    =>  1
            );
            $user_info = $this->user_model->get_users($search_options);
        }
        if(empty($user_info))
        {
            $message = array(
                  'result'  =>  false
                , 'type'    =>  "error"
                , 'message' =>  $this->lang->line('sorry_system_couldnt_find_requested_information')
            );
            if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message); redirect(site_url('backend/users', true)); }
        }
        
        $user_info = $user_info[0];
        
        $new_user_info = array(
              'user_id'       =>  $user_id
            , 'status'                         =>  0
        );
        $result = $this->user_model->update_user($new_user_info);
        if($result == true)
        {
            $message = array(
                  'result'  =>  true
                , 'type'    =>  "success"
                , 'message' =>  $this->lang->line('requested_information_deleted_successfully')
            );
            if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message); redirect(site_url('backend/users', true)); }
        }
        else
        {
            $message = array(
                  'result'  =>  false
                , 'type'    =>  "error"
                , 'message' =>  $this->lang->line('sorry_system_couldnt_delete_requested_information')
            );
            if($this->input->get('json') == true) { echo json_encode($message); } else { $this->session->set_flashdata('message', $message); redirect(site_url('backend/users', true)); }
        }
        die;
    }

}
List View Code  Download users_list_view.php
<?php
    if(!empty($message))
    {
        $class = "alert-info";
        if(isset($message['type']) && $message['type'] == "error")
        {
            $class="alert-danger";
        }
        if(isset($message['type']) && $message['type'] == "success")
        {
            $class="alert-success";
        }
?>
<div class="alert alert-block <?php echo $class;?>">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <strong>Attention!</strong><br />
    <?php echo $message['message'];?>
</div>
<?php
    }
?>     
<div class="panel panel-info">
    <div class="panel-heading">
        Search Criteria <input type="button" value="Show Criteria" id="btn-search-filter" class="btn btn-xs btn-info pull-right" onclick="toggle_search_filters();" style="margin-right:10px;"/> <input type="button" value="Reset" class="btn btn-xs btn-success pull-right" onclick="reset_search_filters();" style="margin-right:10px;" />
    </div>
    <div id="wrapper-search-filter" class="panel-body" style="display:none;">
        <form id="frm-search-filters" class="form-horizontal" method="get" action="" role="form">
            <input type="hidden" name="search" value="true" />
            
            <div class="form-group col-lg-6">
                <label for="search_user_type" class="col-lg-3 control-label">User Type</label>
                <div class="col-lg-9">
                	<select id="search_user_type" name="user_type" class="form-control input-sm">
                     	<option value="">All</option>   
                     	<!-- FIXME: Expand here to display all options -->
                     </select>
                    <p class="help-block">Help Block</p>
                </div>
            </div>
		   
            <div class="form-group col-lg-6">
                <label for="search_first_name" class="col-lg-3 control-label">First Name</label>
                <div class="col-lg-9">
                    <input type="text" class="form-control input-sm" id="search_first_name" name="first_name" placeholder="Enter First Name" value="<?php echo isset($search_options['first_name_like']) ? $search_options['first_name_like'] : '';?>" />
                    <p class="help-block">Help Block</p>
                </div>
            </div>
		   
            <div class="form-group col-lg-6">
                <label for="search_last_name" class="col-lg-3 control-label">Last Name</label>
                <div class="col-lg-9">
                    <input type="text" class="form-control input-sm" id="search_last_name" name="last_name" placeholder="Enter Last Name" value="<?php echo isset($search_options['last_name_like']) ? $search_options['last_name_like'] : '';?>" />
                    <p class="help-block">Help Block</p>
                </div>
            </div>
		   
            <div class="form-group col-lg-6">
                <label for="search_email" class="col-lg-3 control-label">Email</label>
                <div class="col-lg-9">
                    <input type="text" class="form-control input-sm" id="search_email" name="email" placeholder="Enter Email" value="<?php echo isset($search_options['user_email_like']) ? $search_options['user_email_like'] : '';?>" />
                    <p class="help-block">Help Block</p>
                </div>
            </div>
		   
            <div class="form-group col-lg-6">
                <label for="search_reg_date" class="col-lg-3 control-label">Registration Date</label>
                <div class="col-lg-9">
                    <input type="text" class="form-control input-sm date-picker" id="search_reg_date" name="reg_date" placeholder="Choose Registration Date" value="<?php echo isset($search_options['created_at']) ? date("d/m/Y", strtotime($search_options['created_at'])) : '';?>" />
                    <p class="help-block">Help Block</p>
                </div>
            </div>
		   
            <div class="clearfix"></div>
            <div class="form-group col-lg-12">
                <div class="col-lg-12 text-center">
                	<input type="hidden" name="per_page" value="<?php echo $search_options['limit'];?>" />
                	<input type="hidden" name="order_by" value="<?php echo $search_options['search_order_by'];?>" />
                    <button type="submit" class="btn btn-primary btn-sm">
                        Search
                    </button>
                </div>
            </div>
        </form>
    </div>
</div>
<div class="panel panel-primary">
    <div class="panel-heading">
    	<div class="pull-left padder-xxs">
	    	<strong>Users</strong> (<?php echo $total_rows;?> User<?php echo $total_rows > 1 ? "s":"";?>)
    	</div>
    	<div class="pull-right">
    		<label for="per_page" class="m-n">Show
    			<select id="per_page" onchange="per_page();" class="black">
    				<?php
    					for($i = 10; $i <= 100; $i = $i+40)
						{
							$selected = $search_options['limit'] == $i ? 'selected="selected"' : '';
					?>
					<option value="<?php echo $i;?>" <?php echo $selected;?>><?php echo $i;?> rows</option>
					<?php
						}
    				?>
    			</select>
    		</label>
    	</div>
    	<div class="clearfix"></div>
    </div>
    <div class="panel-body">
        <div class="row">
              <div class="col-lg-12">
                   <i class="fa fa-bullhorn"></i> Help text for the page
              </div>
         </div>
        <?php
            if(isset($filter_str) && $filter_str != "")
            {
        ?>
        <br />
        <div class="row">
             <div class="col-lg-12">
                  <strong><i class="fa fa-info-circle"></i> Search Criteria</strong><br />
        <?php
                echo $filter_str;
        ?>
             </div>
        </div>
        <?php
            }
        ?>
    </div>
    <?php
        $current_order_by = $search_options['search_order_by'];
    ?>
    <table class="table table-hover">
    <thead>
    <tr>
        <th class="col-lg-1 text-center">
        	<?php
                $field_order_by = "user_id_desc";
                $field_icon = "<span class='fa fa-sort-desc'></span>";
                if($field_order_by == $current_order_by)
                {
                    $field_order_by = "user_id_asc";
                    $field_icon = "<span class='fa fa-sort-asc'></span>";
                }
            ?>
            <a href="javascript:sort_by('<?php echo $field_order_by;?>');">
            #
            <?php
                if($current_order_by == "user_id_desc" || $current_order_by == "user_id_asc")
                {
                    echo $field_icon;   
                }
            ?>
            </a>
        </th>
        
        <th class="">
        	<?php
                $field_order_by = "first_name_desc";
                $field_icon = "<span class='fa fa-sort-desc'></span>";
                if($field_order_by == $current_order_by)
                {
                    $field_order_by = "first_name_asc";
                    $field_icon = "<span class='fa fa-sort-asc'></span>";
                }
            ?>
            <a href="javascript:sort_by('<?php echo $field_order_by;?>');">
            First Name
            <?php
                if($current_order_by == "first_name_desc" || $current_order_by == "first_name_asc")
                {
                    echo $field_icon;   
                }
            ?>
            </a>
        </th>
	
        <th class="">
        	<?php
                $field_order_by = "last_name_desc";
                $field_icon = "<span class='fa fa-sort-desc'></span>";
                if($field_order_by == $current_order_by)
                {
                    $field_order_by = "last_name_asc";
                    $field_icon = "<span class='fa fa-sort-asc'></span>";
                }
            ?>
            <a href="javascript:sort_by('<?php echo $field_order_by;?>');">
            Last Name
            <?php
                if($current_order_by == "last_name_desc" || $current_order_by == "last_name_asc")
                {
                    echo $field_icon;   
                }
            ?>
            </a>
        </th>
	
        <th class="">
        	<?php
                $field_order_by = "user_email_desc";
                $field_icon = "<span class='fa fa-sort-desc'></span>";
                if($field_order_by == $current_order_by)
                {
                    $field_order_by = "user_email_asc";
                    $field_icon = "<span class='fa fa-sort-asc'></span>";
                }
            ?>
            <a href="javascript:sort_by('<?php echo $field_order_by;?>');">
            Email
            <?php
                if($current_order_by == "user_email_desc" || $current_order_by == "user_email_asc")
                {
                    echo $field_icon;   
                }
            ?>
            </a>
        </th>
	
        <th class="">
        	<?php
                $field_order_by = "created_at_desc";
                $field_icon = "<span class='fa fa-sort-desc'></span>";
                if($field_order_by == $current_order_by)
                {
                    $field_order_by = "created_at_asc";
                    $field_icon = "<span class='fa fa-sort-asc'></span>";
                }
            ?>
            <a href="javascript:sort_by('<?php echo $field_order_by;?>');">
            Registration Date
            <?php
                if($current_order_by == "created_at_desc" || $current_order_by == "created_at_asc")
                {
                    echo $field_icon;   
                }
            ?>
            </a>
        </th>
	
        <th class="">
        	<?php
                $field_order_by = "modified_at_desc";
                $field_icon = "<span class='fa fa-sort-desc'></span>";
                if($field_order_by == $current_order_by)
                {
                    $field_order_by = "modified_at_asc";
                    $field_icon = "<span class='fa fa-sort-asc'></span>";
                }
            ?>
            <a href="javascript:sort_by('<?php echo $field_order_by;?>');">
            Last Updated At
            <?php
                if($current_order_by == "modified_at_desc" || $current_order_by == "modified_at_asc")
                {
                    echo $field_icon;   
                }
            ?>
            </a>
        </th>
	
        <th class="col-lg-2 text-center">
            Functions
        </th>
    </tr>
    </thead>
    <tbody>
        <?php
            if(!empty($users))
            {
                foreach($users as $user_key => $user)
                {
                    $class = "";
        ?>
        <tr class="<?php echo $class;?>">
            <td class="text-center">
                <?php echo $user['user_id'];?>
            </td>
            
        <td id="first-name-<?php echo $user_key;?>" class="">
                <?php echo $user['first_name']; ?>
        </td>
	
        <td id="last-name-<?php echo $user_key;?>" class="">
                <?php echo $user['last_name']; ?>
        </td>
	
        <td id="email-<?php echo $user_key;?>" class="">
                <?php echo $user['user_email']; ?>
        </td>
	
        <td id="reg-date-<?php echo $user_key;?>" class="">
                <?php echo $user['created_at']; ?>
        </td>
	
        <td id="last-updated-<?php echo $user_key;?>" class="">
                <?php echo $user['modified_at']; ?>
        </td>
	
            <td class="">
            	<div class="btn-group btn-block padder-n">
				  	<button class="btn btn-default btn-block btn-sm dropdown-toggle" type="button" data-toggle="dropdown">
					    Actions <span class="caret"></span>
				  	</button>
				  	<ul class="dropdown-menu">
				    	<li role="presentation">
					    	<a role="menuitem" tabindex="-1" href="<?php echo site_url('backend/users/view/'.$user['user_id'], true);?>">&nbsp;<span class="fa fa-eye"></span> &nbsp;View</a>
					    </li>
					    <li role="presentation">
					    	<a role="menuitem" tabindex="-1" href="<?php echo site_url('backend/users/update/'.$user['user_id'], true);?>">&nbsp;<span class="fa fa-edit"></span> &nbsp;Update</a>
					    </li>
					    <li role="presentation" class="divider"></li>
					    <li role="presentation">
					    	<a role="menuitem" tabindex="-1" href="<?php echo site_url('backend/users/delete/'.$user['user_id'], true);?>">&nbsp;<span class="fa fa-times"></span> Delete</a>
					    </li>
					</ul>
				</div>
            </td>
        </tr>
        <?php
                }
            }
            else 
            {
        ?>
        <tr>
            <td colspan="10" class="text-center">
                No row
            </td>
        </tr>
        <?php    
            }
        ?>
    </tbody>
    </table>
    <div class="panel-footer">
        <?php echo $this->pagination->create_links();?>
    </div>
</div>
<hr />
<div class="panel panel-warning">
    <div class="panel-heading">
        <h3 class="panel-title">Functions</h3>
    </div>

	<div class="panel-body">
		<div class="row">
            <div class="col-lg-4">
                <a href="<?php echo site_url('backend/users/create', true);?>" class="btn btn-info btn-block" >
                  <span class="fa fa-plus"></span> Create New User
                </a>
            </div>
            <div class="col-lg-4">
            	
            </div>
            <div class="col-lg-4">
            </div>
        </div>        	
    </div>
</div>
<script>
    $(document).ready(function(){
        $(".btn-delete").click(function(){
            if(confirm("Are you sure to delete selected information? Please press OK if you agree.") == false)
            {
                return false;
            }
        });
        
    });
    
    function reset_search_filters()
    {
        $("input[type='text']", $("#frm-search-filters")).val('');
        $("select", $("#frm-search-filters")).val('');
    }
    
    function sort_by(order_by)
    {
        $("input[name='order_by']", $("#frm-search-filters")).val(order_by);
        $("#frm-search-filters").submit();
    }
    
    function per_page()
    {
    	var per_page = $("#per_page").val();
        $("input[name='per_page']", $("#frm-search-filters")).val(per_page);
        $("#frm-search-filters").submit();
    }
    
    function toggle_search_filters()
    {
        $("#wrapper-search-filter").toggle();
        if($("#wrapper-search-filter").is(":visible"))
        {
            $("#btn-search-filter").val("Hide Criteria");
        }
        else
        {
            $("#btn-search-filter").val("Show Criteria");
        }
    }     
</script>
Form View Code  Download user_form_view.php
<?php
    if(!empty($message))
    {
        $class = "alert-info";
        if(isset($message['type']) && $message['type'] == "error")
        {
            $class="alert-danger";
        }
        if(isset($message['type']) && $message['type'] == "success")
        {
            $class="alert-success";
        }
?>
<div class="alert alert-block <?php echo $class;?>">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <strong>Attention!</strong><br />
    <?php echo $message['message'];?>
</div>
<?php
    }
?>

<?php
    $action_url = site_url('backend/users/create', true);
    $header = "New User";
    if($view_mode == "update")
    {
        $action_url = site_url('backend/users/update/'.$user_info['user_id'], true);
        $header = "Update User";
    }
?>
<form class="form-horizontal" method="post" action="<?php echo $action_url;?>" role="form">
    <input type="hidden" name="submitted" value="true" />
    <div class="panel panel-info">
        <div class="panel-heading">
            <h3 class="panel-title"><?php echo $header; ?></h3>
        </div>
        
        <table class="table no-margin">
        <thead>
        <tr>
            <th>
                User Information
            </th>
        </tr>        
        </thead>
        <tbody>
        <tr>
            <td>
                <div class="panel-body">
                	
                    <div class="form-group">
                         <label for="user_type" class="col-sm-4 control-label input-sm">User Type</label>
                         <div class="col-sm-8">
                              <select id="user_type" name="user_type" class="form-control input-sm">
                                   <option value="">Not Selected</option>   
                              </select>
                              <p class="help-block">Help Block</p>
                         </div>
                    </div>
                    <div class="form-group">
                         <label for="first_name" class="col-sm-4 control-label input-sm">First Name</label>
                         <div class="col-sm-8">
                              <input type="text" id="first_name" name="first_name" class="form-control input-sm required" required="true" placeholder="Enter First Name" value="<?php echo set_value('first_name', isset($user_info['first_name']) && $user_info['first_name'] != '' ? $user_info['first_name'] : '');?>" />
                              <p class="help-block">Help Block</p>
                         </div>
                    </div>
                    <div class="form-group">
                         <label for="last_name" class="col-sm-4 control-label input-sm">Last Name</label>
                         <div class="col-sm-8">
                              <input type="text" id="last_name" name="last_name" class="form-control input-sm required" required="true" placeholder="Enter Last Name" value="<?php echo set_value('last_name', isset($user_info['last_name']) && $user_info['last_name'] != '' ? $user_info['last_name'] : '');?>" />
                              <p class="help-block">Help Block</p>
                         </div>
                    </div>
                    <div class="form-group">
                         <label for="user_email" class="col-sm-4 control-label input-sm">Email</label>
                         <div class="col-sm-8">
                              <input type="email" id="user_email" name="user_email" class="form-control input-sm required" required="true" placeholder="Enter Email" value="<?php echo set_value('user_email', isset($user_info['user_email']) && $user_info['user_email'] != '' ? $user_info['user_email'] : '');?>" />
                              <p class="help-block">Help Block</p>
                         </div>
                    </div>
                    <div class="form-group">
                         <label for="user_password" class="col-sm-4 control-label input-sm">Password</label>
                         <div class="col-sm-8">
                              <input type="password" id="user_password" name="user_password" class="form-control input-sm required" required="true" placeholder="Enter Password" value="<?php echo set_value('user_password', isset($user_info['user_password']) && $user_info['user_password'] != '' ? $user_info['user_password'] : '');?>" />
                              <p class="help-block">Help Block</p>
                         </div>
                    </div>
                    <div class="form-group">
                         <label for="enabled" class="col-sm-4 control-label input-sm">Enabled</label>
                         <div class="col-sm-8">
                              <select id="enabled" name="enabled" class="form-control input-sm required" required="true">
                                   <option value="1" <?php echo set_select('enabled', 1, (isset($user_info['enabled']) && $user_info['enabled'] == 1 ? true : false));?>>Enabled</option>
                                   <option value="0" <?php echo set_select('enabled', 0, (isset($user_info['enabled']) && $user_info['enabled'] == 0 ? true : false));?>>Disabled</option>
                              </select>
                              <p class="help-block">Help Block</p>
                         </div>
                    </div>
                </div>
            </td>
        </tr>
        </tbody>
        </table>
        
        <div class="form-group">
            <div class="col-lg-12 text-center">
                <button type="submit" class="btn btn-primary">Save</button>
            </div>
        </div>
    </div>
</form>

<div class="panel panel-warning">
    <div class="panel-heading">
        <h3 class="panel-title">Functions</h3>
    </div>

	<div class="panel-body">
		<div class="row">
            <div class="col-lg-4">
                <?php
            		$purl = $this->session->userdata('backend_users_paging_url_params');
            	?>
                <a href="<?php echo site_url('backend/users', true);?><?php echo $purl != "" ? '?search=true'.$purl: '';?>" class="btn btn-info btn-block" >
                  <span class="fa fa-align-justify"></span> Back to list
                </a>
            </div>
            <div class="col-lg-4">
            	
            </div>
            <div class="col-lg-4">
            </div>
        </div>        	
    </div>
</div>


<script src="/js/backend/parsley/parsley.min.js"></script>
<script src="/js/backend/parsley/parsley.extend.js"></script>
<script src="/js/backend/autosize/jquery.autosize.min.js"></script>
<script src="/js/backend/datepicker/bootstrap-datepicker.js"></script>
<link href="/js/backend/datepicker/datepicker.css" type="text/css" rel="stylesheet" >

<script>
	$(document).ready(function(){
		$(".date-picker").datepicker({ 
            autoSize: true
       	}); 
       	
        $(".autogrow").autosize();
	});	
	
</script>
Detail View Code  Download user_detail_view.php
<?php
    if(!empty($message))
    {
        $class = "alert-info";
        if(isset($message['type']) && $message['type'] == "error")
        {
            $class="alert-danger";
        }
        if(isset($message['type']) && $message['type'] == "success")
        {
            $class="alert-success";
        }
?>
<div class="alert alert-block <?php echo $class;?>">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <strong>Attention!</strong><br />
    <?php echo $message['message'];?>
</div>
<?php
    }
?>

<form class="form-horizontal" role="form">
    
    <div class="panel panel-info">
        <div class="panel-heading">
            <h3 class="panel-title">View User</h3>
        </div>
        <table class="table no-margin">
        <tbody>
        <tr>
            <td>
                <div class="panel-body">
                    
		  	<div class="form-group">
                  <label class="col-lg-4 control-label">User Type</label>
                  <div class="col-lg-8">
                       <p class="form-control-static"><?php echo $user['user_type'];?></p>
                  </div>
             </div>
		  	
		  	<div class="form-group">
                  <label class="col-lg-4 control-label">First Name</label>
                  <div class="col-lg-8">
                       <p class="form-control-static"><?php echo $user['first_name'];?></p>
                  </div>
             </div>
		  	
		  	<div class="form-group">
                  <label class="col-lg-4 control-label">Last Name</label>
                  <div class="col-lg-8">
                       <p class="form-control-static"><?php echo $user['last_name'];?></p>
                  </div>
             </div>
		  	
		  	<div class="form-group">
                  <label class="col-lg-4 control-label">Email</label>
                  <div class="col-lg-8">
                       <p class="form-control-static"><?php echo $user['user_email'];?></p>
                  </div>
             </div>
		  	
		  	<div class="form-group">
                  <label class="col-lg-4 control-label">Enabled</label>
                  <div class="col-lg-8">
                       <p class="form-control-static"><?php echo $user['enabled'];?></p>
                  </div>
             </div>
		  	
		  	<div class="form-group">
                  <label class="col-lg-4 control-label">Registration Date</label>
                  <div class="col-lg-8">
                       <p class="form-control-static"><?php echo date("d/m/Y", strtotime($user['created_at']));?></p>
                  </div>
             </div>
		  	
		  	<div class="form-group">
                  <label class="col-lg-4 control-label">Last Updated At</label>
                  <div class="col-lg-8">
                       <p class="form-control-static"><?php echo date("d/m/Y", strtotime($user['modified_at']));?></p>
                  </div>
             </div>
		  	
                </div>        
            </td>
        </tr>
        </tbody>
        </table>
        <div class="panel-footer">
            <div class="form-group">
                <div class="col-lg-12 text-center">
                   <?php
	            		$purl = $this->session->userdata('backend_users_paging_url_params');
	            	?>
	                <a href="<?php echo site_url('backend/users', true);?><?php echo $purl != "" ? '?search=true'.$purl: '';?>" class="btn btn-info" >
	                  	<span class="fa fa-align-justify"></span> Back to list
	                </a>
                    <button type="button" class="btn btn-success" onclick="location.href='<?php echo site_url('backend/users/update/'.$user['user_id'], true);?>';">Update User</button>
                    
                </div>
            </div>
        </div>
    </div>
</form>

<script>
    $(document).ready(function(){
    });
</script>