PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.44
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.44
51.1.86 51.1.84 51.1.85 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 All 40 releases
king-addons / includes / extensions / Data_Table_Builder / templates / admin-page.php

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

137 lines 5.5 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 Apple-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'; ?>"><?php esc_html_e('Light', 'king-addons'); ?></button>
88 <button type="button" class="ka-v3-segmented-btn" data-theme="dark" aria-pressed="<?php echo $theme_mode === 'dark' ? 'true' : 'false'; ?>"><?php esc_html_e('Dark', 'king-addons'); ?></button>
89 <button type="button" class="ka-v3-segmented-btn" data-theme="auto" aria-pressed="<?php echo $theme_mode === 'auto' ? 'true' : 'false'; ?>"><?php esc_html_e('Auto', 'king-addons'); ?></button>
90 </div>
91 <a href="<?php echo esc_url(add_query_arg(['view' => 'add'], $base_url)); ?>" class="ka-btn ka-btn-primary">
92 <span class="dashicons dashicons-plus"></span>
93 <?php esc_html_e('Add New', 'king-addons'); ?>
94 </a>
95 </div>
96 </div>
97
98 <div class="ka-tabs kng-table-tabs">
99 <?php foreach ($tabs as $key => $tab) : ?>
100 <a class="ka-tab <?php echo $current_view === $key ? 'active' : ''; ?>" href="<?php echo esc_url(add_query_arg(['view' => $key], $base_url)); ?>">
101 <span class="dashicons <?php echo esc_attr($tab['icon']); ?>"></span>
102 <?php echo esc_html($tab['label']); ?>
103 </a>
104 <?php endforeach; ?>
105 </div>
106
107 <?php if ($has_message) : ?>
108 <div class="ka-alert <?php echo $is_error_message ? 'ka-alert-error' : ''; ?>">
109 <span class="dashicons <?php echo $is_error_message ? 'dashicons-warning' : 'dashicons-yes'; ?>"></span>
110 <?php echo esc_html($messages[$message_code]); ?>
111 </div>
112 <?php endif; ?>
113
114 <?php
115 switch ($current_view) {
116 case 'tables':
117 include __DIR__ . '/view-list.php';
118 break;
119 case 'add':
120 include __DIR__ . '/view-editor.php';
121 break;
122 case 'templates':
123 include __DIR__ . '/view-templates.php';
124 break;
125 case 'settings':
126 include __DIR__ . '/view-settings.php';
127 break;
128 case 'import-export':
129 include __DIR__ . '/view-import-export.php';
130 break;
131 default:
132 include __DIR__ . '/view-dashboard.php';
133 break;
134 }
135 ?>
136 </div>
137