PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.65
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.65
51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / extensions / Activity_Log / templates / admin-page.php

admin-page.php in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.65, at includes/extensions/Activity_Log/templates/admin-page.php

157 lines 6.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Activity Log admin page.
4 *
5 * @package King_Addons
6 */
7
8 if (!defined('ABSPATH')) {
9 exit;
10 }
11
12 $theme_mode = get_user_meta(get_current_user_id(), 'king_addons_theme_mode', true);
13 $allowed_theme_modes = ['dark', 'light', 'auto'];
14 if (!in_array($theme_mode, $allowed_theme_modes, true)) {
15 $theme_mode = 'dark';
16 }
17
18 $tabs = [
19 'dashboard' => [
20 'label' => esc_html__('Dashboard', 'king-addons'),
21 'icon' => 'dashicons-chart-area',
22 ],
23 'logs' => [
24 'label' => esc_html__('Logs', 'king-addons'),
25 'icon' => 'dashicons-clipboard',
26 ],
27 'alerts' => [
28 'label' => esc_html__('Alerts', 'king-addons'),
29 'icon' => 'dashicons-warning',
30 ],
31 'settings' => [
32 'label' => esc_html__('Settings', 'king-addons'),
33 'icon' => 'dashicons-admin-generic',
34 ],
35 'export' => [
36 'label' => esc_html__('Export', 'king-addons'),
37 'icon' => 'dashicons-download',
38 ],
39 'tools' => [
40 'label' => esc_html__('Tools', 'king-addons'),
41 'icon' => 'dashicons-admin-tools',
42 ],
43 ];
44
45 $current_page = isset($_GET['page']) ? sanitize_key($_GET['page']) : 'king-addons-activity-log';
46 $base_url = admin_url('admin.php?page=' . $current_page);
47 $current_view = array_key_exists($view, $tabs) ? $view : 'dashboard';
48
49 $can_manage = current_user_can('manage_options');
50 if (!$can_manage) {
51 $tabs = [
52 'logs' => [
53 'label' => esc_html__('Logs', 'king-addons'),
54 'icon' => 'dashicons-clipboard',
55 ],
56 ];
57 $current_view = 'logs';
58 }
59
60 $message_code = isset($_GET['message']) ? sanitize_key($_GET['message']) : '';
61 $messages = [
62 'saved' => esc_html__('Settings saved.', 'king-addons'),
63 'alerts_saved' => esc_html__('Alert settings saved.', 'king-addons'),
64 'purged' => esc_html__('Old logs purged.', 'king-addons'),
65 'error_export' => esc_html__('Export failed.', 'king-addons'),
66 ];
67 $has_message = $message_code !== '' && isset($messages[$message_code]);
68 $is_error_message = strpos($message_code, 'error_') === 0;
69
70 $logging_enabled = !empty($settings['enabled']);
71 ?>
72
73 <script>
74 document.body.classList.add('ka-admin-v3');
75 (function() {
76 const mode = '<?php echo esc_js($theme_mode); ?>';
77 const mql = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
78 const isDark = mode === 'auto' ? !!(mql && mql.matches) : mode === 'dark';
79 document.documentElement.classList.toggle('ka-v3-dark', isDark);
80 document.body.classList.toggle('ka-v3-dark', isDark);
81 })();
82 </script>
83
84 <div class="ka-admin-wrap kng-activity-admin">
85 <div class="ka-admin-header">
86 <div class="ka-admin-header-left">
87 <div class="ka-admin-header-icon blue">
88 <span class="dashicons dashicons-shield-alt"></span>
89 </div>
90 <div>
91 <h1 class="ka-admin-title"><?php esc_html_e('Activity Log', 'king-addons'); ?></h1>
92 <p class="ka-admin-subtitle"><?php esc_html_e('Audit critical actions across your WordPress site in Premium style inspired clarity.', 'king-addons'); ?></p>
93 </div>
94 </div>
95 <div class="ka-admin-header-actions">
96 <span class="ka-status <?php echo $logging_enabled ? 'ka-status-enabled' : 'ka-status-disabled'; ?>">
97 <span class="ka-status-dot"></span>
98 <?php echo $logging_enabled ? esc_html__('Enabled', 'king-addons') : esc_html__('Disabled', 'king-addons'); ?>
99 </span>
100 <div class="ka-v3-segmented" id="ka-v3-theme-segment" role="radiogroup" aria-label="Theme" data-active="<?php echo esc_attr($theme_mode); ?>">
101 <span class="ka-v3-segmented-indicator" aria-hidden="true"></span>
102 <button type="button" class="ka-v3-segmented-btn" data-theme="light" aria-pressed="<?php echo $theme_mode === 'light' ? 'true' : 'false'; ?>">
103 <span class="ka-v3-segmented-icon" aria-hidden="true">☀︎</span>
104 <?php esc_html_e('Light', 'king-addons'); ?>
105 </button>
106 <button type="button" class="ka-v3-segmented-btn" data-theme="dark" aria-pressed="<?php echo $theme_mode === 'dark' ? 'true' : 'false'; ?>">
107 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
108 <?php esc_html_e('Dark', 'king-addons'); ?>
109 </button>
110 <button type="button" class="ka-v3-segmented-btn" data-theme="auto" aria-pressed="<?php echo $theme_mode === 'auto' ? 'true' : 'false'; ?>">
111 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
112 <?php esc_html_e('Auto', 'king-addons'); ?>
113 </button>
114 </div>
115 </div>
116 </div>
117
118 <div class="ka-tabs kng-activity-tabs">
119 <?php foreach ($tabs as $key => $tab) : ?>
120 <a class="ka-tab <?php echo $current_view === $key ? 'active' : ''; ?>" href="<?php echo esc_url(add_query_arg(['view' => $key], $base_url)); ?>">
121 <span class="dashicons <?php echo esc_attr($tab['icon']); ?>"></span>
122 <?php echo esc_html($tab['label']); ?>
123 </a>
124 <?php endforeach; ?>
125 </div>
126
127 <?php if ($has_message) : ?>
128 <div class="ka-alert <?php echo $is_error_message ? 'ka-alert-error' : ''; ?>">
129 <span class="dashicons <?php echo $is_error_message ? 'dashicons-warning' : 'dashicons-yes'; ?>"></span>
130 <?php echo esc_html($messages[$message_code]); ?>
131 </div>
132 <?php endif; ?>
133
134 <?php
135 switch ($current_view) {
136 case 'logs':
137 include __DIR__ . '/view-logs.php';
138 break;
139 case 'alerts':
140 include __DIR__ . '/view-alerts.php';
141 break;
142 case 'settings':
143 include __DIR__ . '/view-settings.php';
144 break;
145 case 'export':
146 include __DIR__ . '/view-export.php';
147 break;
148 case 'tools':
149 include __DIR__ . '/view-tools.php';
150 break;
151 default:
152 include __DIR__ . '/view-dashboard.php';
153 break;
154 }
155 ?>
156 </div>
157