mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| class Plugins {
 | |
| 
 | |
|     private static $plugins = array();
 | |
| 
 | |
| 
 | |
|     public static function start() {
 | |
|         global $config;
 | |
|         if (file_exists($config['plugin_dir'])) {
 | |
|             // $plugin_files = scandir($config['plugin_dir']);
 | |
|             $plugin_files = dbFetchRows("SELECT * FROM `plugins` WHERE `plugin_active` = '1'");
 | |
|             foreach ($plugin_files as $plugins) {
 | |
|                 $plugin_info = pathinfo($config['plugin_dir'].'/'.$plugins['plugin_name'].'/'.$plugins['plugin_name'].'.php');
 | |
|                 if ($plugin_info['extension'] == 'php') {
 | |
|                     if (is_file($config['plugin_dir'].'/'.$plugins['plugin_name'].'/'.$plugins['plugin_name'].'.php')) {
 | |
|                         self::load($config['plugin_dir'].'/'.$plugins['plugin_name'].'/'.$plugins['plugin_name'].'.php', $plugin_info['filename']);
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
| 
 | |
|             return true;
 | |
|         }
 | |
|         else {
 | |
|             return false;
 | |
|         }
 | |
| 
 | |
|     }//end start()
 | |
| 
 | |
| 
 | |
|     public static function load($file, $pluginName)
 | |
|     {
 | |
|         include $file;
 | |
|         $plugin = new $pluginName;
 | |
|         $hooks  = get_class_methods($plugin);
 | |
| 
 | |
|         foreach ($hooks as $hookName) {
 | |
|             if ($hookName{0} != '_') {
 | |
|                 self::$plugins[$hookName][] = $pluginName;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return $plugin;
 | |
| 
 | |
|     }//end load()
 | |
| 
 | |
| 
 | |
|     public static function call($hook, $params=false) {
 | |
|         if (count(self::$plugins[$hook]) != 0) {
 | |
|             foreach (self::$plugins[$hook] as $name) {
 | |
|                 if (!is_array($params)) {
 | |
|                     call_user_func(array($name, $hook));
 | |
|                 }
 | |
|                 else {
 | |
|                     call_user_func_array(array($name, $hook), $params);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|     }//end call()
 | |
| }//end class
 |