PluginProbe
Inactive Logout / trunk
Inactive Logout vtrunk
3.6.3 trunk 1.9.9 2.0.2 3.3.1 3.3.2 3.3.3 3.3.4 3.4.0 3.4.1 3.4.10 3.4.11 3.4.12 3.4.13 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 3.4.9 3.5.0 3.5.1 3.5.2 All 31 releases
inactive-logout / core / Backend / Menu.php

Menu.php in Inactive Logout trunk, at core/Backend/Menu.php

76 lines 1.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Codemanas\InactiveLogout\Backend;
4
5 use Codemanas\InactiveLogout\Controllers\Admin\TabController;
6
7 class Menu {
8 private static ?Menu $_instance = null;
9
10 public static function getInstance(): ?Menu {
11 if ( is_null( self::$_instance ) ) {
12 self::$_instance = new self();
13 }
14
15 return self::$_instance;
16 }
17
18 protected function __construct() {
19 add_action( 'admin_menu', [ $this, 'registerMenu' ] );
20 add_action( 'network_admin_menu', [ $this, 'multisiteMenu' ] );
21 }
22
23 public function menuDigest(): array {
24 return [
25 'title' => __( 'Inactive User Logout Settings', 'inactive-logout' ),
26 'name' => __( 'Inactive Logout', 'inactive-logout' ),
27 'capability' => 'manage_options',
28 'slug' => 'inactive-logout',
29 'callback' => [ $this, 'renderPage' ]
30 ];
31 }
32
33 /**
34 * Register Menu
35 *
36 * @return void
37 */
38 public function registerMenu() {
39 $menu = $this->menuDigest();
40 if ( is_multisite() && ! empty( get_site_option( '__ina_overrideby_multisite_setting' ) ) ) {
41 return;
42 }
43
44 add_options_page(
45 $menu['title'],
46 $menu['name'],
47 $menu['capability'],
48 $menu['slug'],
49 $menu['callback'],
50 );
51 }
52
53 /**
54 * Add menu page for multisite.
55 */
56 public function multisiteMenu() {
57 $menu = $this->menuDigest();
58 add_menu_page(
59 $menu['title'],
60 $menu['name'],
61 $menu['capability'],
62 $menu['slug'],
63 $menu['callback'],
64 );
65 }
66
67 public function renderPage() {
68 $tab = TabController::getInstance();
69 $active_tab = $tab->getActiveTab();
70
71 do_action( 'ina_before_settings_wrapper' );
72 require_once INACTIVE_LOGOUT_VIEWS . '/tpl-inactive-logout-settings.php';
73 $tab->handleTabRouter();
74 }
75 }
76