Views: 4004
Codeigniter follows MVC pattern
So, Here we will create separate pages for Model, View & Controller
for Model, the page name will be Model_modulename.php Ex: Model_banner.php
Respectively for Controller, page name will be Modulename.php Ex: Banner.php
For views we will create multiple pages separately for Add, Edit and View .
The names will be view_banner_add.php, view_banner_edit.php & view_banner_view.php
Autoload.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
| -------------------------------------------------------------------
| AUTO-LOADER
| -------------------------------------------------------------------
| This file specifies which systems should be loaded by default.
|
| In order to keep the framework as light-weight as possible only the
| absolute minimal resources are loaded by default. For example,
| the database is not connected to automatically since no assumption
| is made regarding whether you intend to use it. This file lets
| you globally define which systems you would like loaded with every
| request.
|
| -------------------------------------------------------------------
| Instructions
| -------------------------------------------------------------------
|
| These are the things you can load automatically:
|
| 1. Packages
| 2. Libraries
| 3. Drivers
| 4. Helper files
| 5. Custom config files
| 6. Language files
| 7. Models
|
*/
/*
| -------------------------------------------------------------------
| Auto-load Packages
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['packages'] = array(APPPATH.'third_party', '/usr/local/shared');
|
*/
$autoload['packages'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Libraries
| -------------------------------------------------------------------
| These are the classes located in system/libraries/ or your
| application/libraries/ directory, with the addition of the
| 'database' library, which is somewhat of a special case.
|
| Prototype:
|
| $autoload['libraries'] = array('database', 'email', 'session');
|
| You can also supply an alternative library name to be assigned
| in the controller:
|
| $autoload['libraries'] = array('user_agent' => 'ua');
*/
//$autoload['libraries'] = array();
$autoload['libraries'] = array('database', 'session', 'form_validation', 'pagination', 'user_agent');
/*
| -------------------------------------------------------------------
| Auto-load Drivers
| -------------------------------------------------------------------
| These classes are located in system/libraries/ or in your
| application/libraries/ directory, but are also placed inside their
| own subdirectory and they extend the CI_Driver_Library class. They
| offer multiple interchangeable driver options.
|
| Prototype:
|
| $autoload['drivers'] = array('cache');
|
| You can also supply an alternative property name to be assigned in
| the controller:
|
| $autoload['drivers'] = array('cache' => 'cch');
|
*/
$autoload['drivers'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Helper Files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['helper'] = array('url', 'file');
*/
//$autoload['helper'] = array();
$autoload['helper'] = array('url','file','form','html','active_class');
/*
| -------------------------------------------------------------------
| Auto-load Config files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['config'] = array('config1', 'config2');
|
| NOTE: This item is intended for use ONLY if you have created custom
| config files. Otherwise, leave it blank.
|
*/
$autoload['config'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Language files
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['language'] = array('lang1', 'lang2');
|
| NOTE: Do not include the "_lang" part of your file. For example
| "codeigniter_lang.php" would be referenced as array('codeigniter');
|
*/
$autoload['language'] = array();
/*
| -------------------------------------------------------------------
| Auto-load Models
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['model'] = array('first_model', 'second_model');
|
| You can also supply an alternative model name to be assigned
| in the controller:
|
| $autoload['model'] = array('first_model' => 'first');
*/
$autoload['model'] = array();
Config.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/*
|--------------------------------------------------------------------------
| Base Site URL
|--------------------------------------------------------------------------
|
| URL to your CodeIgniter root. Typically this will be your base URL,
| WITH a trailing slash:
|
| http://example.com/
|
| WARNING: You MUST set this value!
|
| If it is not set, then CodeIgniter will try guess the protocol and path
| your installation, but due to security concerns the hostname will be set
| to $_SERVER['SERVER_ADDR'] if available, or localhost otherwise.
| The auto-detection mechanism exists only for convenience during
| development and MUST NOT be used in production!
|
| If you need to allow multiple domains, remember that this file is still
| a PHP script and you can easily do that on your own.
|
*/
date_default_timezone_set('Asia/Kolkata');
$config['base_url'] = '';
/*
|--------------------------------------------------------------------------
| Index File
|--------------------------------------------------------------------------
|
| Typically this will be your index.php file, unless you've renamed it to
| something else. If you are using mod_rewrite to remove the page set this
| variable so that it is blank.
|
*/
$config['index_page'] = 'index.php';
/*
|--------------------------------------------------------------------------
| URI PROTOCOL
|--------------------------------------------------------------------------
|
| This item determines which server global should be used to retrieve the
| URI string. The default setting of 'REQUEST_URI' works for most servers.
| If your links do not seem to work, try one of the other delicious flavors:
|
| 'REQUEST_URI' Uses $_SERVER['REQUEST_URI']
| 'QUERY_STRING' Uses $_SERVER['QUERY_STRING']
| 'PATH_INFO' Uses $_SERVER['PATH_INFO']
|
| WARNING: If you set this to 'PATH_INFO', URIs will always be URL-decoded!
*/
$config['uri_protocol'] = 'REQUEST_URI';
/*
|--------------------------------------------------------------------------
| URL suffix
|--------------------------------------------------------------------------
|
| This option allows you to add a suffix to all URLs generated by CodeIgniter.
| For more information please see the user guide:
|
| https://codeigniter.com/user_guide/general/urls.html
*/
$config['url_suffix'] = '';
/*
|--------------------------------------------------------------------------
| Default Language
|--------------------------------------------------------------------------
|
| This determines which set of language files should be used. Make sure
| there is an available translation if you intend to use something other
| than english.
|
*/
$config['language'] = 'english';
/*
|--------------------------------------------------------------------------
| Default Character Set
|--------------------------------------------------------------------------
|
| This determines which character set is used by default in various methods
| that require a character set to be provided.
|
| See http://php.net/htmlspecialchars for a list of supported charsets.
|
*/
$config['charset'] = 'UTF-8';
/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the 'hooks' feature you must enable it by
| setting this variable to TRUE (boolean). See the user guide for details.
|
*/
$config['enable_hooks'] = FALSE;
/*
|--------------------------------------------------------------------------
| Class Extension Prefix
|--------------------------------------------------------------------------
|
| This item allows you to set the filename/classname prefix when extending
| native libraries. For more information please see the user guide:
|
| https://codeigniter.com/user_guide/general/core_classes.html
| https://codeigniter.com/user_guide/general/creating_libraries.html
|
*/
$config['subclass_prefix'] = 'MY_';
/*
|--------------------------------------------------------------------------
| Composer auto-loading
|--------------------------------------------------------------------------
|
| Enabling this setting will tell CodeIgniter to look for a Composer
| package auto-loader script in application/vendor/autoload.php.
|
| $config['composer_autoload'] = TRUE;
|
| Or if you have your vendor/ directory located somewhere else, you
| can opt to set a specific path as well:
|
| $config['composer_autoload'] = '/path/to/vendor/autoload.php';
|
| For more information about Composer, please visit http://getcomposer.org/
|
| Note: This will NOT disable or override the CodeIgniter-specific
| autoloading (application/config/autoload.php)
*/
$config['composer_autoload'] = FALSE;
/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| This lets you specify which characters are permitted within your URLs.
| When someone tries to submit a URL with disallowed characters they will
| get a warning message.
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| The configured value is actually a regular expression character group
| and it will be executed as: ! preg_match('/^[<permitted_uri_chars>]+$/i
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
/*
|--------------------------------------------------------------------------
| Enable Query Strings
|--------------------------------------------------------------------------
|
| By default CodeIgniter uses search-engine friendly segment based URLs:
| example.com/who/what/where/
|
| You can optionally enable standard query string based URLs:
| example.com?who=me&what=something&where=here
|
| Options are: TRUE or FALSE (boolean)
|
| The other items let you set the query string 'words' that will
| invoke your controllers and its functions:
| example.com/index.php?c=controller&m=function
|
| Please note that some of the helpers won't work as expected when
| this feature is enabled, since CodeIgniter is designed primarily to
| use segment based URLs.
|
*/
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';
/*
|--------------------------------------------------------------------------
| Allow $_GET array
|--------------------------------------------------------------------------
|
| By default CodeIgniter enables access to the $_GET array. If for some
| reason you would like to disable it, set 'allow_get_array' to FALSE.
|
| WARNING: This feature is DEPRECATED and currently available only
| for backwards compatibility purposes!
|
*/
$config['allow_get_array'] = TRUE;
/*
|--------------------------------------------------------------------------
| Error Logging Threshold
|--------------------------------------------------------------------------
|
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
| 0 = Disables logging, Error logging TURNED OFF
| 1 = Error Messages (including PHP errors)
| 2 = Debug Messages
| 3 = Informational Messages
| 4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
| array(2) = Debug Messages, without Error Messages
|
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
/*
|--------------------------------------------------------------------------
| Error Logging Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/logs/ directory. Use a full server path with trailing slash.
|
*/
$config['log_path'] = '';
/*
|--------------------------------------------------------------------------
| Log File Extension
|--------------------------------------------------------------------------
|
| The default filename extension for log files. The default 'php' allows for
| protecting the log files via basic scripting, when they are to be stored
| under a publicly accessible directory.
|
| Note: Leaving it blank will default to 'php'.
|
*/
$config['log_file_extension'] = '';
/*
|--------------------------------------------------------------------------
| Log File Permissions
|--------------------------------------------------------------------------
|
| The file system permissions to be applied on newly created log files.
|
| IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal
| integer notation (i.e. 0700, 0644, etc.)
*/
$config['log_file_permissions'] = 0644;
/*
|--------------------------------------------------------------------------
| Date Format for Logs
|--------------------------------------------------------------------------
|
| Each item that is logged has an associated date. You can use PHP date
| codes to set your own date formatting
|
*/
$config['log_date_format'] = 'Y-m-d H:i:s';
/*
|--------------------------------------------------------------------------
| Error Views Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/views/errors/ directory. Use a full server path with trailing slash.
|
*/
$config['error_views_path'] = '';
/*
|--------------------------------------------------------------------------
| Cache Directory Path
|--------------------------------------------------------------------------
|
| Leave this BLANK unless you would like to set something other than the default
| application/cache/ directory. Use a full server path with trailing slash.
|
*/
$config['cache_path'] = '';
/*
|--------------------------------------------------------------------------
| Cache Include Query String
|--------------------------------------------------------------------------
|
| Whether to take the URL query string into consideration when generating
| output cache files. Valid options are:
|
| FALSE = Disabled
| TRUE = Enabled, take all query parameters into account.
| Please be aware that this may result in numerous cache
| files generated for the same page over and over again.
| array('q') = Enabled, but only take into account the specified list
| of query parameters.
|
*/
$config['cache_query_string'] = FALSE;
/*
|--------------------------------------------------------------------------
| Encryption Key
|--------------------------------------------------------------------------
|
| If you use the Encryption class, you must set an encryption key.
| See the user guide for more info.
|
| https://codeigniter.com/user_guide/libraries/encryption.html
|
*/
$config['encryption_key'] = 'aQH76B8hIMuUUVY7ggu1Eo3Rg2KCiqeb';
/*
|--------------------------------------------------------------------------
| Session Variables
|--------------------------------------------------------------------------
|
| 'sess_driver'
|
| The storage driver to use: files, database, redis, memcached
|
| 'sess_cookie_name'
|
| The session cookie name, must contain only [0-9a-z_-] characters
|
| 'sess_expiration'
|
| The number of SECONDS you want the session to last.
| Setting to 0 (zero) means expire when the browser is closed.
|
| 'sess_save_path'
|
| The location to save sessions to, driver dependent.
|
| For the 'files' driver, it's a path to a writable directory.
| WARNING: Only absolute paths are supported!
|
| For the 'database' driver, it's a table name.
| Please read up the manual for the format with other session drivers.
|
| IMPORTANT: You are REQUIRED to set a valid save path!
|
| 'sess_match_ip'
|
| Whether to match the user's IP address when reading the session data.
|
| WARNING: If you're using the database driver, don't forget to update
| your session table's PRIMARY KEY when changing this setting.
|
| 'sess_time_to_update'
|
| How many seconds between CI regenerating the session ID.
|
| 'sess_regenerate_destroy'
|
| Whether to destroy session data associated with the old session ID
| when auto-regenerating the session ID. When set to FALSE, the data
| will be later deleted by the garbage collector.
|
| Other session cookie settings are shared with the rest of the application,
| except for 'cookie_prefix' and 'cookie_httponly', which are ignored here.
|
*/
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
/*
|--------------------------------------------------------------------------
| Cookie Related Variables
|--------------------------------------------------------------------------
|
| 'cookie_prefix' = Set a cookie name prefix if you need to avoid collisions
| 'cookie_domain' = Set to .your-domain.com for site-wide cookies
| 'cookie_path' = Typically will be a forward slash
| 'cookie_secure' = Cookie will only be set if a secure HTTPS connection exists.
| 'cookie_httponly' = Cookie will only be accessible via HTTP(S) (no javascript)
|
| Note: These settings (with the exception of 'cookie_prefix' and
| 'cookie_httponly') will also affect sessions.
|
*/
$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
/*
|--------------------------------------------------------------------------
| Standardize newlines
|--------------------------------------------------------------------------
|
| Determines whether to standardize newline characters in input data,
| meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value.
|
| WARNING: This feature is DEPRECATED and currently available only
| for backwards compatibility purposes!
|
*/
$config['standardize_newlines'] = FALSE;
/*
|--------------------------------------------------------------------------
| Global XSS Filtering
|--------------------------------------------------------------------------
|
| Determines whether the XSS filter is always active when GET, POST or
| COOKIE data is encountered
|
| WARNING: This feature is DEPRECATED and currently available only
| for backwards compatibility purposes!
|
*/
$config['global_xss_filtering'] = FALSE;
/*
|--------------------------------------------------------------------------
| Cross Site Request Forgery
|--------------------------------------------------------------------------
| Enables a CSRF cookie token to be set. When set to TRUE, token will be
| checked on a submitted form. If you are accepting user data, it is strongly
| recommended CSRF protection be enabled.
|
| 'csrf_token_name' = The token name
| 'csrf_cookie_name' = The cookie name
| 'csrf_expire' = The number in seconds the token should expire.
| 'csrf_regenerate' = Regenerate token on every submission
| 'csrf_exclude_uris' = Array of URIs which ignore CSRF checks
*/
$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();
/*
|--------------------------------------------------------------------------
| Output Compression
|--------------------------------------------------------------------------
|
| Enables Gzip output compression for faster page loads. When enabled,
| the output class will test whether your server supports Gzip.
| Even if it does, however, not all browsers support compression
| so enable only if you are reasonably sure your visitors can handle it.
|
| Only used if zlib.output_compression is turned off in your php.ini.
| Please do not use it together with httpd-level output compression.
|
| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
| means you are prematurely outputting something to your browser. It could
| even be a line of whitespace at the end of one of your scripts. For
| compression to work, nothing can be sent before the output buffer is called
| by the output class. Do not 'echo' any values with compression enabled.
|
*/
$config['compress_output'] = FALSE;
/*
|--------------------------------------------------------------------------
| Master Time Reference
|--------------------------------------------------------------------------
|
| Options are 'local' or any PHP supported timezone. This preference tells
| the system whether to use your server's local time as the master 'now'
| reference, or convert it to the configured one timezone. See the 'date
| helper' page of the user guide for information regarding date handling.
|
*/
$config['time_reference'] = 'local';
/*
|--------------------------------------------------------------------------
| Rewrite PHP Short Tags
|--------------------------------------------------------------------------
|
| If your PHP installation does not have short tag support enabled CI
| can rewrite the tags on-the-fly, enabling you to utilize that syntax
| in your view files. Options are TRUE or FALSE (boolean)
|
| Note: You need to have eval() enabled for this to work.
|
*/
$config['rewrite_short_tags'] = FALSE;
/*
|--------------------------------------------------------------------------
| Reverse Proxy IPs
|--------------------------------------------------------------------------
|
| If your server is behind a reverse proxy, you must whitelist the proxy
| IP addresses from which CodeIgniter should trust headers such as
| HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify
| the visitor's IP address.
|
| You can use both an array or a comma-separated list of proxy addresses,
| as well as specifying whole subnets. Here are a few examples:
|
| Comma-separated: '10.0.1.200,192.168.5.0/24'
| Array: array('10.0.1.200', '192.168.5.0/24')
*/
$config['proxy_ips'] = '';
Model Page (Model_banner.php)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Model_banner extends CI_Model
{
function get_auto_increment_id()
{
$sql = "SHOW TABLE STATUS LIKE 'banners_info'";
$query = $this->db->query($sql);
return $query->result_array();
}
function show() {
$sql = "SELECT * FROM banners_info ORDER BY banner_id ASC";
$query = $this->db->query($sql);
return $query->result_array();
}
function add($data) {
$this->db->insert('banners_info',$data);
return $this->db->insert_id();
}
function update($id,$data) {
$this->db->where('banner_id',$id);
$this->db->update('banners_info',$data);
//$this->db->insert_batch('movies_info', $data);
}
function delete($id)
{
$this->db->where('banner_id',$id);
$this->db->delete('banners_info');
}
function get_banner($id)
{
$sql = 'SELECT * FROM banners_info WHERE banner_id=?';
$query = $this->db->query($sql,array($id));
return $query->first_row('array');
}
function banner_check($id)
{
$sql = 'SELECT * FROM banners_info WHERE banner_id=?';
$query = $this->db->query($sql,array($id));
return $query->first_row('array');
}
/*function get_movie_casts($id)
{
$sql = 'SELECT * FROM movies_info WHERE movie_id=?';
$query = $this->db->query($sql,array($id));
return $query->first_row('array');
}*/
}
View Pages (Creating Add, Edit & View pages)
view_banner_add.php
<?php
if(!$this->session->userdata('id')) {
redirect(base_url().'admin');
}
?>
<!-- Content Header (Page header) -->
<section class="content-header">
<div class="pull-left">
<h1> <i class="fa fa-arrow-circle-o-right"></i> Add Banner</h1>
</div>
<div class="pull-right">
<a href="<?php echo base_url(); ?>admin/banner/view" class="btn btn-primary btn-sm">View All</a>
</div>
</section>
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-md-12">
<?php
if($this->session->flashdata('error')) {
?>
<div class="callout callout-danger">
<p><?php echo $this->session->flashdata('error'); ?></p>
</div>
<?php
}
if($this->session->flashdata('success')) {
?>
<div class="callout callout-success">
<p><?php echo $this->session->flashdata('success'); ?></p>
</div>
<?php
}
?>
<!-- form start -->
<!-- <form class="form-horizontal"> -->
<?php echo form_open_multipart(base_url().'admin/banner/add',array('class' => 'form-horizontal')); ?>
<div class="box box-info">
<div class="box-body">
<div class="form-group">
<label for="" class="col-sm-2 control-label">Banner Title</label>
<div class="col-sm-6" style="padding-top:6px;">
<input type="text" autocomplete="off" class="form-control" name="banner_title">
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">Image</label>
<div class="col-sm-6" style="padding-top:6px;">
<input type="file" name="banner_image">(Only jpg, jpeg, gif and png are allowed)
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">Description</label>
<div class="col-sm-6" style="padding-top:6px;">
<textarea class="form-control" name="banner_description" style="height:60px;"></textarea>
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">Status</label>
<div class="col-sm-6" style="padding-top:6px;">
<select class="form-control select2" name="status" style="width: 100%;">
<option selected="selected">Enable</option>
<option>Disable</option>
</select>
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label"></label>
<div class="col-sm-6">
<button type="submit" class="btn btn-success pull-left" name="banner_add">Submit</button>
</div>
</div>
</div>
</div>
<?php echo form_close(); ?>
<!-- </form> -->
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<!-- END CUSTOM TABS -->
</section>
<!-- /.content -->
<!-- Added for Product & Customer Autofetch ALSO Menu AJAX Work-->
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
view_banner_edit.php
<?php
if(!$this->session->userdata('id')) {
redirect(base_url().'admin');
}
?>
<!-- Content Header (Page header) -->
<section class="content-header">
<div class="pull-left">
<h1> <i class="fa fa-arrow-circle-o-right"></i> Edit Banner</h1>
</div>
<div class="pull-right">
<a href="<?php echo base_url(); ?>admin/banner/view" class="btn btn-primary btn-sm">View All</a>
</div>
</section>
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-md-12">
<?php
if($this->session->flashdata('error')) {
?>
<div class="callout callout-danger">
<p><?php echo $this->session->flashdata('error'); ?></p>
</div>
<?php
}
if($this->session->flashdata('success')) {
?>
<div class="callout callout-success">
<p><?php echo $this->session->flashdata('success'); ?></p>
</div>
<?php
}
?>
<!-- form start -->
<!-- <form class="form-horizontal"> -->
<?php echo form_open_multipart(base_url().'admin/banner/edit/'.$banner['banner_id'],array('class' => 'form-horizontal')); ?>
<div class="box box-info">
<div class="box-body">
<div class="form-group">
<label for="" class="col-sm-2 control-label">Banner Title</label>
<div class="col-sm-6" style="padding-top:6px;">
<input type="text" autocomplete="off" class="form-control" name="banner_title" value="<?php echo $banner['banner_title']; ?>">
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">Existing Image</label>
<div class="col-sm-9" style="padding-top:5px">
<img src="<?php echo base_url(); ?>public/images/banners/<?php echo $banner['banner_image']; ?>" alt="Existing Image" style="width:125px;">
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">Image</label>
<div class="col-sm-6" style="padding-top:6px;">
<input type="file" name="banner_image">(Only jpg, jpeg, gif and png are allowed)
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">Description</label>
<div class="col-sm-6" style="padding-top:6px;"><textarea class="form-control" name="banner_description" style="height:120px;"><?php echo $banner['banner_description']; ?></textarea>
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label">Status</label>
<div class="col-sm-6" style="padding-top:6px;">
<select class="form-control select2" name="status" style="width: 100%;">
<option selected="selected">Enable</option>
<option>Disable</option>
</select>
</div>
</div>
<div class="form-group">
<label for="" class="col-sm-2 control-label"></label>
<div class="col-sm-6">
<button type="submit" class="btn btn-success pull-left" name="banner_edit">Submit</button>
</div>
</div>
</div>
</div>
<?php echo form_close(); ?>
<!-- </form> -->
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<!-- END CUSTOM TABS -->
</section>
<!-- /.content -->
<!-- Added for Product & Customer Autofetch ALSO Menu AJAX Work-->
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
view_banner_view.php
<?php
if(!$this->session->userdata('id')) {
redirect(base_url().'admin');
}
?>
<!-- Content Header (Page header) -->
<section class="content-header">
<span class="pull-left">
<h1>
<h1> <i class="fa fa-arrow-circle-o-right"></i> View Banners</h1>
<!-- <small>advanced tables</small> -->
</h1>
</span>
<div class="pull-right">
<a href="<?php echo base_url(); ?>admin/banner/add" class="btn btn-primary btn-md">Add Banner</a>
</div>
</section>
<!-- Main content -->
<section class="content">
<div class="row">
<div class="col-xs-12">
<?php
if($this->session->flashdata('error')) {
?>
<div class="callout callout-danger">
<p><?php echo $this->session->flashdata('error'); ?></p>
</div>
<?php
}
if($this->session->flashdata('success')) {
?>
<div class="callout callout-success">
<p><?php echo $this->session->flashdata('success'); ?></p>
</div>
<?php
}
?>
<div class="box">
<div class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr>
<th>#</th>
<th>Title</th>
<th>Image</th>
<th>Status</th>
<th>Options</th>
</tr>
</thead>
<tbody>
<?php
$i=0;
foreach ($banner as $row) {
$i++;
?>
<tr>
<td><?php echo $row['banner_id']; ?></td>
<td><?php echo $row['banner_title']; ?></td>
<td>
<img width="125px" src="<?php echo base_url(); ?>public/images/banners/<?php echo $row['banner_image']; ?>">
</td>
<td><?php echo $row['status']; ?></td>
<td>
<a href="<?php echo base_url(); ?>admin/banner/edit/<?php echo $row['banner_id']; ?>" class="btn btn-primary btn-xs"><i class="fa fa-pencil"></i></a>
<a href="<?php echo base_url(); ?>admin/banner/delete/<?php echo $row['banner_id']; ?>" class="btn btn-danger btn-xs" onClick="return confirm('Are you sure?');"><i class="fa fa-trash-o"></i></a>
</td>
</tr>
<?php
}
?>
</tbody>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
<!-- Added for Product & Customer Autofetch ALSO Menu AJAX Work-->
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<!-- <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> -->
<!-- <script src="https://code.jquery.com/jquery-1.12.4.js"></script> -->
<!-- <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> -->
<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.1/js/dataTables.buttons.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.flash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.html5.min.js"></script>
<script src="https://cdn.datatables.net/buttons/1.6.1/js/buttons.print.min.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.6.1/css/buttons.dataTables.min.css">
<script>
$(document).ready(function() {
$('#example1').DataTable( {
// Sets the row-num-selection "Show %n entries" for the user
"lengthMenu":
[ 10, 50, 100, 250, 500, 1000, 2500, 5000 ],
// Set the default no. of rows to display
"pageLength": 25,
dom: 'Bfrtip',
buttons: [
'pageLength',
{
extend: 'excelHtml5',
filename: 'Banners'
},
{
extend: 'csvHtml5',
filename: 'Banners'
},
{
extend: 'pdfHtml5',
filename: 'Banners'
},
{
extend: 'copyHtml5',
filename: 'Banners'
}
]
/*buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
]*/
} );
} );
</script>
<!-- Movie View Page Script -->
<!-- page script -->
<script>
$(function () {
$('#example1').DataTable()
$('#example2').DataTable({
'paging' : true,
'lengthChange': false,
'searching' : false,
'ordering' : true,
'info' : true,
'autoWidth' : false
})
})
</script>
Controller Page (Banner.php)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Banner extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('admin/Model_common');
$this->load->model('admin/Model_banner');
}
public function view()
{
$data['setting'] = $this->Model_common->get_setting_data();
$data['banner'] = $this->Model_banner->show();
$this->load->view('admin/view_header',$data);
$this->load->view('admin/view_banner_view',$data);
$this->load->view('admin/view_footer');
}
public function add()
{
//$this->load->model('admin/Model_dropdownlist');
//$getMovieGenres = $this->Model_dropdownlist->getMovieGenres();
$data['setting'] = $this->Model_common->get_setting_data();
$error = '';
$success = '';
if(isset($_POST['banner_add'])) {
$valid = 1;
$this->form_validation->set_rules('banner_title', 'Banner Title', 'trim|required');
$this->form_validation->set_rules('banner_description', 'Description', 'trim|required');
$this->form_validation->set_rules('status', 'Status', 'trim|required');
if($this->form_validation->run() == FALSE) {
$valid = 0;
$error .= validation_errors();
}
$path = $_FILES['banner_image']['name'];
$path_tmp = $_FILES['banner_image']['tmp_name'];
if($path!='') {
$ext = pathinfo( $path, PATHINFO_EXTENSION );
$file_name = basename( $path, '.' . $ext );
$ext_check = $this->Model_common->extension_check_photo($ext);
if($ext_check == FALSE) {
$valid = 0;
$error .= 'You must have to upload jpg, jpeg, gif or png file for featured photo<br>';
}
} else {
$valid = 0;
$error .= 'You must have to select a photo for featured photo<br>';
}
if($valid == 1)
{
$next_id = $this->Model_banner->get_auto_increment_id();
foreach ($next_id as $row) {
$ai_id = $row['Auto_increment'];
}
//$final_name = 'testimonial-'.$ai_id.'.'.$ext;
//$final_name = $path.'.'.$ext;
$final_name = $path;
move_uploaded_file( $path_tmp, './public/images/banners/'.$final_name );
/*$val_movie_genre = $this->input->post('movie_genre');
foreach($val_movie_genre as $row)
{
//$movie_genre .= $row . ', ';
$movie_genre = $movie_genre . $row. ",";
}
$movie_genre = substr($movie_genre, 0, -1);
$val_movie_country = $this->input->post('movie_country');
foreach($val_movie_country as $row1)
{
//$movie_country .= $row1 . ', ';
$movie_country = $movie_country . $row1. ",";
}
$movie_country = substr($movie_country, 0, -1);*/
$form_data = array(
'banner_title' => $_POST['banner_title'],
'banner_image' => $final_name,
'banner_description' => $_POST['banner_description'],
'status' => $_POST['status']
);
$this->Model_banner->add($form_data);
$success = 'Banner is added successfully!';
$this->session->set_flashdata('success',$success);
redirect(base_url().'admin/banner/view');
}
else
{
$this->session->set_flashdata('error',$error);
redirect(base_url().'admin/banner/add');
}
} else {
$this->load->view('admin/view_header',$data);
$this->load->view('admin/view_banner_add',$data);
$this->load->view('admin/view_footer');
}
}
public function edit($id)
{
// If there is no testimonial in this id, then redirect
$tot = $this->Model_banner->banner_check($id);
if(!$tot) {
redirect(base_url().'admin/banner/view');
exit;
}
$data['setting'] = $this->Model_common->get_setting_data();
$error = '';
$success = '';
if(isset($_POST['banner_edit']))
{
$valid = 1;
$this->form_validation->set_rules('banner_title', 'Banner Title', 'trim|required');
$this->form_validation->set_rules('banner_description', 'Description', 'trim|required');
$this->form_validation->set_rules('status', 'Status', 'trim|required');
if($this->form_validation->run() == FALSE) {
$valid = 0;
$error .= validation_errors();
}
$path = $_FILES['banner_image']['name'];
$path_tmp = $_FILES['banner_image']['tmp_name'];
if($path!='') {
$ext = pathinfo( $path, PATHINFO_EXTENSION );
$file_name = basename( $path, '.' . $ext );
//$file_name = basename( $path );
$ext_check = $this->Model_common->extension_check_photo($ext);
if($ext_check == FALSE) {
$valid = 0;
$error .= 'You must have to upload jpg, jpeg, gif or png file for featured photo<br>';
}
}
if($valid == 1)
{
$data['banner'] = $this->Model_banner->get_banner($id);
//$final_name = $path;
if($path == '') {
$form_data = array(
'banner_title' => $_POST['banner_title'],
//'banner_image' => $final_name,
'banner_description' => $_POST['banner_description'],
'status' => $_POST['status']
);
$this->Model_banner->update($id,$form_data);
}
if($path != '') {
unlink('./public/images/banners/'.$data['banner']['banner_image']);
//unlink('./public/uploads/'.$data['news']['banner']);
//$final_name = 'news-'.$id.'.'.$ext;
//$file_name = basename( $path );
$final_name = $path.'.'.$ext;
move_uploaded_file( $path_tmp, './public/images/banners/'.$final_name );
/*$final_name1 = 'news-banner-'.$id.'.'.$ext1;
move_uploaded_file( $path_tmp1, './public/uploads/'.$final_name1 );*/
$form_data = array(
'banner_title' => $_POST['banner_title'],
'banner_image' => $final_name,
'banner_description' => $_POST['banner_description'],
'status' => $_POST['status']
);
$this->Model_banner->update($id,$form_data);
}
/*else {
unlink('./public/images/banners/'.$data['banner']['banner_image']);
//$final_name = 'testimonial-'.$id.'.'.$ext;
//$final_name = $path.'.'.$ext;
$final_name = $path;
move_uploaded_file( $path_tmp, './public/images/banners/'.$final_name );
$form_data = array(
'banner_title' => $_POST['banner_title'],
'banner_image' => $final_name,
'banner_description' => $_POST['banner_description'],
'status' => $_POST['status']
);
$this->Model_banner->update($id,$form_data);
}*/
$success = 'Banner is updated successfully';
$this->session->set_flashdata('success',$success);
redirect(base_url().'admin/banner/view');
}
else
{
$this->session->set_flashdata('error',$error);
redirect(base_url().'admin/banner/edit'.$id);
}
} else {
$data['banner'] = $this->Model_banner->get_banner($id);
$this->load->view('admin/view_header',$data);
$this->load->view('admin/view_banner_edit',$data);
$this->load->view('admin/view_footer');
}
}
public function delete($id)
{
// If there is no testimonial in this id, then redirect
$tot = $this->Model_banner->banner_check($id);
if(!$tot) {
redirect(base_url().'admin/banner/view');
exit;
}
$data['banner'] = $this->Model_banner->get_banner($id);
if($data['banner']) {
unlink('./public/images/'.$data['banner']['banner_image']);
}
$this->Model_banner->delete($id);
$success = 'Banner is deleted successfully';
$this->session->set_flashdata('success',$success);
redirect(base_url().'admin/banner/view');
}
}