Creating First Extension
Here we introduce IceHrm extensions and covers the steps needed to create a basic extension
Introduction
IceHrm extensions allow developers to extend the features offered by IceHrm without making changes to the IceHrm core. Here we will start building an extension to list some tasks for employees
Create the directory
icehrm/extensions
if it doesn't existCreate a directory named
tasks
insideicehrm/extensions
Code for this extension is here: https://github.com/gamonoid/icehrm/tree/feature/custom-extentions-example/extensions/tasks
Add meta.json file
The meta.json file for this extension should look like:
menu: the name of the main menu and the icon for the main menu
label: the name of the menu item that will be created by this extension
icon: the icon for the menu that will hold the extension
user_levels: which types of users will be able to see and use the extension (in this case Admins / Managers and Employees)
headless: if true this extension will not have any UI visibility. It'll just function as a background module
manager: the main class which will control the extension
model_namespace: the namespace which will hold all the database model classes
Add Extension Manager Class
Extension.php
Adding Extension Include File
Every extension should have an include file with the same name as the extension. In our example, it will be tasks.php
tasks.php
Adding the View file
Every extension must have a view file if it's not running on headless mode. File should always be <extension_dir>/web/index.php
web/index.php
Here we use a core class from Icehrm to get the currently logged in user
Load the Extension in IceHrm
Visit http://icehrm.os
and you should see the My Tasks menu
Last updated