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 / Data_Table_Builder / 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/Data_Table_Builder/templates/admin-page.php

146 lines 5.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Data Table Builder 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-line',
22 ],
23 'tables' => [
24 'label' => esc_html__('All Tables', 'king-addons'),
25 'icon' => 'dashicons-grid-view',
26 ],
27 'add' => [
28 'label' => esc_html__('Add New', 'king-addons'),
29 'icon' => 'dashicons-plus',
30 ],
31 'templates' => [
32 'label' => esc_html__('Templates', 'king-addons'),
33 'icon' => 'dashicons-layout',
34 ],
35 'settings' => [
36 'label' => esc_html__('Settings', 'king-addons'),
37 'icon' => 'dashicons-admin-generic',
38 ],
39 'import-export' => [
40 'label' => esc_html__('Import Export', 'king-addons'),
41 'icon' => 'dashicons-upload',
42 ],
43 ];
44
45 $base_url = admin_url('admin.php?page=king-addons-table-builder');
46 $current_view = array_key_exists($view, $tabs) ? $view : 'dashboard';
47
48 $message_code = isset($_GET['message']) ? sanitize_key($_GET['message']) : '';
49 $messages = [
50 'saved' => esc_html__('Table saved successfully.', 'king-addons'),
51 'deleted' => esc_html__('Table deleted.', 'king-addons'),
52 'duplicated' => esc_html__('Table duplicated.', 'king-addons'),
53 'imported' => esc_html__('Table imported successfully.', 'king-addons'),
54 'error_save' => esc_html__('Unable to save table.', 'king-addons'),
55 'error_not_found' => esc_html__('Table not found.', 'king-addons'),
56 'error_import' => esc_html__('Import failed. Check your CSV file.', 'king-addons'),
57 ];
58 $has_message = $message_code !== '' && isset($messages[$message_code]);
59 $is_error_message = strpos($message_code, 'error_') === 0;
60 ?>
61
62 <script>
63 document.body.classList.add('ka-admin-v3');
64 (function() {
65 const mode = '<?php echo esc_js($theme_mode); ?>';
66 const mql = window.matchMedia ? window.matchMedia('(prefers-color-scheme: dark)') : null;
67 const isDark = mode === 'auto' ? !!(mql && mql.matches) : mode === 'dark';
68 document.documentElement.classList.toggle('ka-v3-dark', isDark);
69 document.body.classList.toggle('ka-v3-dark', isDark);
70 })();
71 </script>
72
73 <div class="ka-admin-wrap kng-table-admin">
74 <div class="ka-admin-header">
75 <div class="ka-admin-header-left">
76 <div class="ka-admin-header-icon purple">
77 <span class="dashicons dashicons-grid-view"></span>
78 </div>
79 <div>
80 <h1 class="ka-admin-title"><?php esc_html_e('Table Builder', 'king-addons'); ?></h1>
81 <p class="ka-admin-subtitle"><?php esc_html_e('Create interactive data tables with Premium style inspired styling.', 'king-addons'); ?></p>
82 </div>
83 </div>
84 <div class="ka-admin-header-actions">
85 <div class="ka-v3-segmented" id="ka-v3-theme-segment" role="radiogroup" aria-label="Theme" data-active="<?php echo esc_attr($theme_mode); ?>">
86 <span class="ka-v3-segmented-indicator" aria-hidden="true"></span>
87 <button type="button" class="ka-v3-segmented-btn" data-theme="light" aria-pressed="<?php echo $theme_mode === 'light' ? 'true' : 'false'; ?>">
88 <span class="ka-v3-segmented-icon" aria-hidden="true">☀︎</span>
89 <?php esc_html_e('Light', 'king-addons'); ?>
90 </button>
91 <button type="button" class="ka-v3-segmented-btn" data-theme="dark" aria-pressed="<?php echo $theme_mode === 'dark' ? 'true' : 'false'; ?>">
92 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
93 <?php esc_html_e('Dark', 'king-addons'); ?>
94 </button>
95 <button type="button" class="ka-v3-segmented-btn" data-theme="auto" aria-pressed="<?php echo $theme_mode === 'auto' ? 'true' : 'false'; ?>">
96 <span class="ka-v3-segmented-icon" aria-hidden="true"></span>
97 <?php esc_html_e('Auto', 'king-addons'); ?>
98 </button>
99 </div>
100 <a href="<?php echo esc_url(add_query_arg(['view' => 'add'], $base_url)); ?>" class="ka-btn ka-btn-primary">
101 <span class="dashicons dashicons-plus"></span>
102 <?php esc_html_e('Add New', 'king-addons'); ?>
103 </a>
104 </div>
105 </div>
106
107 <div class="ka-tabs kng-table-tabs">
108 <?php foreach ($tabs as $key => $tab) : ?>
109 <a class="ka-tab <?php echo $current_view === $key ? 'active' : ''; ?>" href="<?php echo esc_url(add_query_arg(['view' => $key], $base_url)); ?>">
110 <span class="dashicons <?php echo esc_attr($tab['icon']); ?>"></span>
111 <?php echo esc_html($tab['label']); ?>
112 </a>
113 <?php endforeach; ?>
114 </div>
115
116 <?php if ($has_message) : ?>
117 <div class="ka-alert <?php echo $is_error_message ? 'ka-alert-error' : ''; ?>">
118 <span class="dashicons <?php echo $is_error_message ? 'dashicons-warning' : 'dashicons-yes'; ?>"></span>
119 <?php echo esc_html($messages[$message_code]); ?>
120 </div>
121 <?php endif; ?>
122
123 <?php
124 switch ($current_view) {
125 case 'tables':
126 include __DIR__ . '/view-list.php';
127 break;
128 case 'add':
129 include __DIR__ . '/view-editor.php';
130 break;
131 case 'templates':
132 include __DIR__ . '/view-templates.php';
133 break;
134 case 'settings':
135 include __DIR__ . '/view-settings.php';
136 break;
137 case 'import-export':
138 include __DIR__ . '/view-import-export.php';
139 break;
140 default:
141 include __DIR__ . '/view-dashboard.php';
142 break;
143 }
144 ?>
145 </div>
146