phpnuxbill/system/autoload/Hookers.php

55 lines
1.6 KiB
PHP
Raw Normal View History

2022-09-21 15:15:00 +08:00
<?php
2023-10-12 16:55:42 +08:00
/**
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
* by https://t.me/ibnux
**/
2022-09-21 15:15:00 +08:00
$menu_registered = array();
/**
* Register for global menu
* @param string name Name of the menu
* @param bool admin true if for admin and false for customer
* @param string function function to run after menu clicks
* @param string position position of menu, use AFTER_ for root menu |
* Admin/Sales menu: AFTER_DASHBOARD, CUSTOMERS, PREPAID, SERVICES, REPORTS, VOUCHER, AFTER_ORDER, NETWORK, SETTINGS, AFTER_PAYMENTGATEWAY
* | Customer menu: AFTER_DASHBOARD, ORDER, HISTORY, ACCOUNTS
* @param string icon from ion icon, ion-person, only for AFTER_
2024-01-17 11:54:31 +08:00
* @param string label for showing label or number of notification or update
* @param string color Label color
2022-09-21 15:15:00 +08:00
*/
2024-01-17 11:54:31 +08:00
function register_menu($name, $admin, $function, $position, $icon = '', $label = '', $color = 'success')
2022-09-21 15:15:00 +08:00
{
global $menu_registered;
$menu_registered[] = [
"name" => $name,
"admin" => $admin,
"position" => $position,
"icon" => $icon,
2024-01-17 05:19:38 +08:00
"function" => $function,
"label" => $label,
"color" => $color
2022-09-21 15:15:00 +08:00
];
}
$hook_registered = array();
function register_hook($action, $function){
$hook_registered[] = [
'action' => $action,
'function' => $function
];
}
function run_hook($action){
global $hook_registered;
foreach($hook_registered as $hook){
if($hook['action'] == $action){
if(function_exists($hook['function'])){
call_user_func($hook['function']);
}
}
}
}