Codeigniter Tutorials
- What is codeigniter?
- Application_Architecture
- MVC Architecture
- HMVC Architecture
- Codeigniter Configuration
- Remove index.php from url in codeigniter
- MVC Concept
- View
- Alternate PHP Syntax for View Files
- Routing
- Codeigniter URL
- Get Current URL
- Previous page URL get
- Seo Friendly URL
- Slug Create in codeigniter
- What is _remap() function
- Remove controller name from url in codeigniter
- Codeigniter Controller Class
- Class Constructor
- GET $ POST method in Codeigniter
- Models
- Basepath, Apppath, FCPATH
- URI Segment
- Page Redirect
- Helper class
- Custom Helper class
- Form Helper
- Common Helper Functions
- Common Function
- Array Problems
- Call controller in Helper
- Add active class to menu using Helper class
- Custom Library
- Custom Library Example
- when to use get_instance()
- Codeigniter Hook
- how to work inline css in codeigniter
- Custom 404 page
- 404 custom error page
- Create custom config file in codeigniter
- How to set and get config item value
- How to Speed Up CodeIgniter App?
- Codeigniter Functions
- Session
- cookies
- How to Set & Get Tempdata in Codeigniter
- flash messages in Codeigniter
- Flashdata
- Encryption and Decryption In CodeIgniter
- Codeigniter security
- csrf token form security
- Password Hashing
- Form Validation
- Custom Validation
- Registration Form with validation
- Server Side Form Validation
- Validate Select Option Field
- Date Format Validation
- Date Format change in codeigniter
- Date Functions
- DOB Validation
- CI CRUD
- User SignUp
- User Login
- User Logout
- Login Account
- Login form with RememberMe
- Login Form with session
- User change password
- Change Password with Callback Validation to Check Old Password
- Forgot password
- Reset password
- Insert data in database
- Fetch data from database
- Update data in database
- Delete data in database
- File Upload
- Image Upload with resize Image
- Upload Multiple file and images
- Upload Multiple images with CRUD
- File and image update
- Upload Image Using Ajax.
- Email Send
- Email Send Using Email library
- Email Send Using SMTP Gmail
- Notification send
- store data in json format in DB
- Json parse
- Fetch data Using Ajax with Json data
- How to Show data Using Ajax with Json parse
- Get JSON Data from PHP Script using jQuery Ajax
- Insert data Using Ajax
- Submit data Using Ajax with form validation
- How to show data Using Ajax in codeigniter
- Insert & Update Using Ajax
- Registration Form With Validation Using Ajax in codeigniter
- Delete data Using Ajax Confirmation
- Delete All data Using checkbox selection
- Ajax CSRF Token
- Ajax Post
- Ajax serverside form validation
- Contact form using AJAX with form validation
- DataTable Using Ajax dynamically
- DataTables pagination using AJAX with Custom filter
- DataTables AJAX Pagination with Search and Sort in codeigniter
- DataTables in Codeigniter using Ajax
- Ajax Custom Serarch
- Ajax Live Data Search using Jquery PHP MySql
- Ajax Custom Serarch and sorting in datatable
- Dynamic Search Using Ajax
- Autocomplete using jquery ajax
- Jquery Ajax Autocomplete Search using Typeahead
- Dynamic Dependent Dropdown Using Ajax
- Dynamic Dependent Dropdown list Using Ajax
- Dynamic Dependent Dropdown in codeigniter using Ajax
- ajax username/email availability check using JQuery
- Check Email Availability Using Ajax
- Data Load on mouse scroll
- Ajax CI Pagination
- Pagination in codeigniter
- Ajax Codeigniter Pagination
- email exists or not using ajax with json
- CRUD using AJAX With Modal popup in CI
- Add / Show Data on modal popup using Ajax
- Modal popup Validation using Ajax
- Data show on Modal popup Using Ajax
- Add / Remove text field dynamically using jquery ajax
- How to Add/Delete Multiple HTML Rows using JavaScript
- Delete Multiple Rows using Checkbox
- Multiple Checkbox value
- Form submit using jquery Example
- REST & SOAP API
- Multi-Language implementation in CodeIgniter
- How to pass multiple array in view
- Captcha
- create zip file and download
- PhpOffice PhpSpreadsheet Library (Export data in excel sheet)
- data export in excel sheet
- Excel File generate in Codeigniter using PHPExcel
- Dompdf library
- tcpdf library
- Html table to Excel & docs download
- CI Database Query
- Database Query
- SQL Injection Prevention
- Auth Model
- Join Mysql
- Tree View in dropdown option list
- OTP Integration in codeigniter
- curl post
- download file using curl
- Sweet Alert
- Sweet alert Delete & Success
- Log Message in Codeigniter
- Menu & Submenu show dynamically
- Set Default value in input box
- Cron Jobs
- Stored Procedure
- Display Loading Image when AJAX call is in Progress
- Send SMS
- IP Address
- Codeigniter Tutorialspoint
- Website Link
- How To Create Dynamic Xml Sitemap In Codeigniter
- Paypal Payment Integration
- Get Latitude and Longitude From Address in Codeigniter Using google map API
- How To Create Simple Bar Chart In Codeigniter Using AmCharts?
- dynamic Highcharts in Codeigniter
- Barcode in Codeigniter
- Codeigniter Interview Questions
- Project
What is Codeigniter Hook?
hooks are events which can be called before and after the execution of a program. It allows executing a script with specific path in the CodeIgniter execution process without modifying the core files. For example, it can be used where you need to check whether a user is logged in or not before the execution of controller. Using hook will save your time in writing code multiple times.
There are two hook files in CodeIgniter. One is application/config/hooks.php folder and other is application /hooks folder.
In other language, if you want to run a code every time after controller constructor is loaded, you can specify that script path in hooks.
How to enable Hook?
go to application/config/config.php file and set it TRUE as shown below.
$config['enable_hooks'] = TRUE;
How to define hook?
A hook can be defined in the application/config/hooks.php file. Each hook is defined as an array consisting of the following terms.
$hook['pre_controller'] = array(
'class' => 'Class-name',
'function' => 'function-name',
'filename' => 'file-name.php',
'filepath' => 'hooks',
'params' => array('element1', 'element2', 'element3')
);
class - Here, you have to mention the name of your class defined in the hooks.php file. If you are using procedural function instead of a class, leave it blank.
function - Mention the function name you are calling.
filename - The file name created in application/hooks folder and containing class and function name mentioned above.
filepath - Here you have to mention the name of the directory which contains your script. Your script must be located inside the application folder. If your script is located in application/hooks folder, then your path will be simply hooks. But if your script is located in application/hooks/office folder, then your path will be hooks/office.
params - It includes the parameters which you want to pass in your script and it's optional.
Hook Points
The list of hook points is shown below.
Multiple calls to the same Hook
You can use array multi-dimensional to use the same hook point with more than one script.
$hook['pre_controller'][] = array(
'class' => 'Classname1',
'function' => 'functionname1',
'filename' => 'filename1.php',
'filepath' => 'hooks',
'params' => array('element1', 'element2', 'element3')
);
$hook['pre_controller'][] = array(
'class' => 'Classname2',
'function' => 'functionname2',
'filename' => 'filename2.php',
'filepath' => 'hooks',
'params' => array('element4', 'element5', 'element6')
);
Bracket [] enables you to have same hook point with multiple scripts. Your execution order will be same as the array defined.
Example :-
Create a Controller file example.php in application/controller folder
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Example extends CI_Controller {
public function index()
{
echo "CodeIgniter Tutorial";
}
}
Create a hooks file exm.php in application/hooks folder.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Exm extends CI_Controller {
public function tut()
{
echo "Welcome to JavaTpoint. This is ";
}
}
?>
Now you have to define your hook in the application/config/hooks folder.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$hook['pre_controller'] = array(
'class' => 'Exm',
'function' => 'tut',
'filename' => 'exm.php',
'filepath' => 'hooks',
);
?>
Now again run your program with the same URL and see the result.
http://itechtuto.com/hook/example
welcome to itechtuto. this is codeigniter tutorial.
How to Implement Hooks in Codeigniter
CodeIgniter hook allows you to execute a script with the specific path within the CodeIgniter execution process without updating or modifying core files. If you need to execute a code that should be run every time after the controller is created, then you specify that script path in the hook.
Enabling Hooks
$config['enable_hooks'] = TRUE;
Defining a Hook
The hooks are defined in the app / config / hooksf file. Each hook is specified as an array with this prototype:
$hook['pre_controller'] = array(
'class' => 'MyHook',
'function' => 'Myfunction',
'filename' => 'MyHook.php',
'filepath' => 'hooks',
'params' => array('element1', 'element2', 'element3')
);
Multiple calls to the same Hook
You can use multi-dimensional array to use the same hook point with more than one script, like this:
$hook['pre_controller'][] = array(
'class' => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params' => array('element1', 'element2', 'element3')
);
$hook['pre_controller'][] = array(
'class' => 'MyClass2',
'function' => 'Myfunction2',
'filename' => 'Myclass2.php',
'filepath' => 'hooks',
'params' => array('element4', 'element5', 'element6')
);
Hook Example
create a controller called Test.php. In it, place this code and save it to your application/controllers/ directory:
<?php
class Test extends CI_Controller {
public function index() {
echo " world !";
}
}
?>
create a controller called myhook.php. In it, place this code and save it to your application/hooks/ directory:
<?php
class Myhook extends CI_Controller {
public function index() {
echo "Hello";
}
}
?>
We need to define the hooks in the application/config/hooks directory:
$hook['pre_controller'] = array(
'class' => 'Myhook',
'function' => 'index',
'filename' => 'Myhook.php',
'filepath' => 'hooks',
'params' => array()
);
Example :
File : Application/hook/Myhook.php
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Myhook
{
public function test()
{
require_once APPPATH.'views/maintenance.php';
exit;
}
}
?>
Application/config/hook.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$hook['pre_system'] = array(
'class' => 'Myhook',
'function' => 'test',
'filename' => 'Myhook.php',
'filepath' => 'hooks',
);
view
<!DOCTYPE html>
<html lang="en">
<head>
<metacharset="utf-8">
<title>Site Under Maintenance</title>
</head>
<body>
<h1>We'll be up and running Soon...</h1>
<div>
<div>
<p>We're just doing some nerdy stuff to our Website to make it even better.</p>
</div>
</div>
</body>
</html>