32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
| <?php
 | |
| 
 | |
| // Logger plugin bootstrap
 | |
| register_hook('logger.system_init', function(array $context) {
 | |
|     // Load plugin-specific LoggerFactory class
 | |
|     require_once __DIR__ . '/models/LoggerFactory.php';
 | |
|     [$logger, $userIP] = LoggerFactory::create($context['db']);
 | |
| 
 | |
|     // Expose to globals for routing logic
 | |
|     $GLOBALS['logObject'] = $logger;
 | |
|     $GLOBALS['user_IP']   = $userIP;
 | |
| });
 | |
| 
 | |
| // Add to allowed URLs
 | |
| register_hook('filter_allowed_urls', function($urls) {
 | |
|     $urls[] = 'logs';
 | |
|     return $urls;
 | |
| });
 | |
| 
 | |
| // Configuration for top menu injection
 | |
| define('LOGS_MAIN_MENU_SECTION', 'main'); // section of the top menu
 | |
| define('LOGS_MAIN_MENU_POSITION', 20);    // lower = earlier in menu
 | |
| register_hook('main_menu', function($ctx) {
 | |
|     $section = defined('LOGS_MAIN_MENU_SECTION') ? LOGS_MAIN_MENU_SECTION : 'main';
 | |
|     $position = defined('LOGS_MAIN_MENU_POSITION') ? LOGS_MAIN_MENU_POSITION : 100;
 | |
|     // We use $section/$position for sorting/insertion logic in the menu template
 | |
|     echo '
 | |
|                         <a class="dropdown-item" href="?page=logs">
 | |
|                             <i class="fas fa-list"></i>Logs
 | |
|                         </a>';
 | |
| });
 |