HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/triad-infosec/wp-content/plugins/simple-history/inc/services/class-menu-service.php
<?php

namespace Simple_History\Services;

use Simple_History\Simple_History;
use Simple_History\Menu_Manager;

/**
 * Service class that handles menu registration and organization.
 */
class Menu_Service extends Service {
	/** @var Menu_Manager Menu manager instance. */
	private $menu_manager;

	/**
	 * Constructor.
	 *
	 * @param Simple_History $simple_history Simple History instance.
	 */
	public function __construct( $simple_history ) {
		$this->simple_history = $simple_history;
		$this->menu_manager = new Menu_Manager();
	}

	/**
	 * Called when service is loaded.
	 * Adds required filters and actions.
	 */
	public function loaded() {
		// Register the pages early.
		// add_action( 'init', [ $this, 'register_pages' ], 10 );
		// Services handle their page registration where appropriate.

		// Register menus late in admin_menu so other plugins can modify their menus first.
		add_action( 'admin_menu', [ $this, 'register_admin_menus' ], 100 );
		add_action( 'current_screen', [ $this, 'redirect_menu_pages' ] );
	}

	/**
	 * Register WordPress admin menus.
	 */
	public function register_admin_menus() {
		$this->menu_manager->register_pages();
	}

	/**
	 * Get the menu manager instance.
	 *
	 * @return Menu_Manager
	 */
	public function get_menu_manager() {
		return $this->menu_manager;
	}

	/**
	 * Checks if current request is for a menu page
	 * that should be redirected to it's first child.
	 * This is usually used to select the first sub-tab.
	 */
	public function redirect_menu_pages() {
		$this->menu_manager->redirect_menu_pages();
	}
}