PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.4.6
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.4.6
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Classes / Assets.php

Assets.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.0.4.6, at Inc/Classes/Assets.php

318 lines 14.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WPAdminify\Inc\Classes;
4
5 use WPAdminify\Inc\Utils;
6 use WPAdminify\Inc\Admin\AdminSettings;
7 use WPAdminify\Inc\Admin\AdminSettingsModel;
8
9
10
11 // no direct access allowed
12 if (!defined('ABSPATH')) {
13 exit;
14 }
15
16 class Assets extends AdminSettingsModel
17 {
18
19 public $classic_editor = true;
20 public $block_editor = true;
21 public $dark_mode = true;
22
23 public function __construct()
24 {
25 $this->options = (array) AdminSettings::get_instance()->get();
26 $global_dark_mode = !empty($this->options['light_dark_mode']['admin_ui_mode']) ? $this->options['light_dark_mode']['admin_ui_mode'] : 'light';
27 $this->dark_mode = empty(get_user_meta(get_current_user_id(), 'color_mode', true)) ? $global_dark_mode : get_user_meta(get_current_user_id(), 'color_mode', true);
28 add_action('admin_enqueue_scripts', array($this, 'jltwp_adminify_admin_scripts'), 100);
29 add_action('wp_ajax_jltwp_adminify_addons_install_active', 'jltwp_adminify_addons_install_active');
30
31 if ($this->is_dark_mode() || $this->classic_editor || $this->block_editor) {
32 add_action('admin_head', array($this, 'header_scripts'));
33 }
34 }
35
36
37 /**
38 * Function: Ajax Call for Install and Activate WP Adminify Plugin
39 */
40 function jltwp_adminify_addons_install_active()
41 {
42
43 // Include necessary WordPress files
44 require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
45 require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
46 require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
47 require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
48
49 if (isset($_POST['plugin'])) {
50
51 $nonce = isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
52
53 if (!wp_verify_nonce($nonce, 'jltwp_adminify_addons_nonce')) {
54 wp_send_json_error(array('mess' => esc_html__('Nonce is invalid', 'adminify')));
55 }
56
57 if ((is_multisite() && is_network_admin()) || !current_user_can('install_plugins')) {
58 wp_send_json_error(array('mess' => esc_html__('Invalid Access', 'adminify')));
59 }
60
61 $plugin = sanitize_text_field(wp_unslash($_POST['plugin']));
62
63 if (empty($plugin)) {
64 wp_send_json_error(array('mess' => esc_html__('Invalid plugin', 'adminify')));
65 }
66
67 $type = isset($_POST['type']) ? sanitize_text_field(wp_unslash($_POST['type'])) : 'install';
68 $skin = new \WP_Ajax_Upgrader_Skin();
69 $upgrader = new \Plugin_Upgrader($skin);
70
71 if ('install' === $type) {
72 $result = $upgrader->install($plugin);
73 if (is_wp_error($result)) {
74 wp_send_json_error(
75 array(
76 'mess' => $result->get_error_message(),
77 )
78 );
79 }
80 $args = array(
81 'slug' => $upgrader->result['destination_name'],
82 'fields' => array(
83 'short_description' => true,
84 'icons' => true,
85 'banners' => false,
86 'added' => false,
87 'reviews' => false,
88 'sections' => false,
89 'requires' => false,
90 'rating' => false,
91 'ratings' => false,
92 'downloaded' => false,
93 'last_updated' => false,
94 'added' => false,
95 'tags' => false,
96 'compatibility' => false,
97 'homepage' => false,
98 'donate_link' => false,
99 ),
100 );
101 $plugin_data = plugins_api('plugin_information', $args);
102
103 if ($plugin_data && !is_wp_error($plugin_data)) {
104 $install_status = \install_plugin_install_status($plugin_data);
105 activate_plugin($install_status['file']);
106 }
107 wp_die(); // die();
108 }
109 }
110 }
111
112
113 /*
114 * Function is_dark_mode()
115 *
116 */
117 public function is_dark_mode()
118 {
119
120 if (!empty($this->dark_mode) && $this->dark_mode == 'dark') {
121 $adminify_dark_mode = true;
122 } else {
123 $adminify_dark_mode = false;
124 }
125 return $adminify_dark_mode;
126 }
127
128 public function header_scripts()
129 {
130 if (!empty($this->dark_mode) && $this->dark_mode == 'dark') { ?>
131
132 <script>
133 window.AdminifyDarkMode.enable({
134 brightness: 120
135 })
136
137 addEventListener("load", (event) => {
138 window.AdminifyDarkMode.enable({
139 brightness: 120
140 })
141 });
142 </script>
143 <?php }
144
145 if (!empty($this->dark_mode) && $this->dark_mode == 'system') { ?>
146 <script>
147 const isDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
148 if(!!isDark) {
149 window.AdminifyDarkMode.enable({
150 brightness: 120
151 })
152
153 addEventListener("load", (event) => {
154 window.AdminifyDarkMode.enable({
155 brightness: 120
156 })
157 });
158 } else {
159 window.AdminifyDarkMode.disable()
160
161 addEventListener("load", (event) => {
162 window.AdminifyDarkMode.disable()
163 });
164 }
165
166 </script>
167
168 <?php }
169
170 }
171
172
173
174 // Google Fonts
175 function jltwp_adminify_google_fonts_url()
176 {
177 $font_url = '';
178 $font_family = !empty($this->options['admin_general_google_font']['font-family']) ? ($this->options['admin_general_google_font']['font-family']) : 'Nunito Sans:300,400,600,700,800';
179
180 if ('off' !== _x('on', 'Google font: on or off', 'adminify')) {
181 $font_url = add_query_arg('family', urlencode($font_family), '//fonts.googleapis.com/css');
182 }
183
184 return $font_url;
185 }
186
187
188 public function jltwp_adminify_admin_scripts()
189 {
190 $screen = get_current_screen();
191
192
193 // Register Styles
194 wp_register_style('wp-adminify-admin', WP_ADMINIFY_ASSETS . 'css/wp-adminify' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
195 wp_register_style('wp-adminify-default-ui', WP_ADMINIFY_ASSETS . 'css/wp-adminify-default-ui' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
196 // wp_register_style('wp-adminify-admin-bar', WP_ADMINIFY_ASSETS . 'css/admin-bar' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
197 wp_register_style('wp-adminify-menu-editor', WP_ADMINIFY_ASSETS . 'css/adminify-menu-editor' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
198 // wp_register_style('wp-adminify-dark-mode', WP_ADMINIFY_ASSETS . 'css/dark-mode' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
199 // wp_register_style('wp-adminify-rtl', WP_ADMINIFY_ASSETS . 'css/adminify-rtl' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
200 // wp_register_style('wp-adminify-responsive', WP_ADMINIFY_ASSETS . 'css/adminify-responsive' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
201 // wp_register_style('wp-adminify-animate', WP_ADMINIFY_ASSETS . 'vendors/animatecss/animate' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
202 wp_register_style('wp-adminify-tokenize2', WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
203
204
205 // Register Scripts
206 wp_register_script('wp-adminify-tokenize2', WP_ADMINIFY_ASSETS . 'vendors/tokenize/tokenize2.min.js', array('jquery'), WP_ADMINIFY_VER, false);
207 wp_register_script('wp-adminify-admin', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify' . Utils::assets_ext('.js'), array('jquery'), WP_ADMINIFY_VER, true);
208
209 // wp_register_script('wp-adminify-realtime-server', WP_ADMINIFY_ASSETS . 'js/adminify-realtime-server.js', array('jquery'), WP_ADMINIFY_VER, true);
210
211 // Adminify Icon Picker
212 wp_register_style('wp-adminify-simple-line-icons', WP_ADMINIFY_ASSETS . 'vendors/font-icons/simple-line-icons/css/simple-line-icons' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
213 wp_register_style('wp-adminify-icon-picker', WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/css/style' . Utils::assets_ext('.css'), false, WP_ADMINIFY_VER);
214 wp_register_script('wp-adminify-icon-picker', WP_ADMINIFY_ASSETS . 'vendors/adminify-icon-picker/js/adminify-icon-picker' . Utils::assets_ext('.js'), array('jquery'), WP_ADMINIFY_VER, true);
215
216 // Dark Mode
217 wp_register_script('wp-adminify--dark-mode', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-dark-mode' . Utils::assets_ext('.js'), array(), WP_ADMINIFY_VER, false);
218
219 // Menu Editor
220 wp_register_script('wp-adminify-menu-editor', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-menu-editor' . Utils::assets_ext('.js'), array('jquery', 'jquery-ui-sortable', 'wp-adminify-icon-picker'), WP_ADMINIFY_VER, true);
221
222 // Styles Enqueue
223 if ( !empty($this->options['admin_general_google_font']['font-family'])) {
224 wp_enqueue_style('wp-adminify-google-fonts', $this->jltwp_adminify_google_fonts_url());
225 }
226
227 if (!empty($this->options['admin_ui'])) {
228 // wp_enqueue_style('wp-adminify-animate');
229 wp_enqueue_style('wp-adminify-admin');
230 // Commented on: 9-6-24
231 // wp_enqueue_style('wp-adminify-admin-bar');
232 // wp_enqueue_style('wp-adminify-responsive');
233 } else {
234 wp_enqueue_style('wp-adminify-default-ui');
235 }
236
237
238 // RTL CSS
239 if ( is_rtl() ) {
240 wp_enqueue_style( 'adminify-rtl', WP_ADMINIFY_URL . 'Libs/adminify-framework/assets/css/style-rtl'. Utils::assets_ext('.css'), array(), WP_ADMINIFY_VER, 'all' );
241 }
242
243
244 // Dark Mode Style
245 // wp_enqueue_style('wp-adminify-dark-mode');
246 wp_enqueue_script('wp-adminify--dark-mode');
247
248
249 $localize_array_data = [
250 'admin_ajax' => admin_url('admin-ajax.php'),
251 'settings' => [
252 'adminify_ui' => !empty($this->options['admin_ui']) ? true : false
253 ],
254 'admin_nonce' => wp_create_nonce('adminify_nonce'),
255 'is_pro' => (class_exists('\\WPAdminify\\Pro\\Adminify_Pro') && !empty(\WPAdminify\Pro\Adminify_Pro::is_premium())) ? true : false
256 ];
257
258 // Scripts Enqueue
259 wp_enqueue_script('wp-adminify-admin');
260 wp_localize_script( 'wp-adminify-admin', 'WP_ADMINIFY_ADMIN', $localize_array_data );
261
262 if (!wp_script_is('adminify-fa', 'enqueued') || !wp_script_is('adminify-fa5', 'enqueued')) {
263 if (apply_filters('adminify_fa4', false)) {
264 wp_enqueue_style('adminify-fa', 'https://cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome' . Utils::assets_ext('.css'), array(), '4.7.0', 'all');
265 } else {
266 wp_enqueue_style('adminify-fa5', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/all' . Utils::assets_ext('.css'), array(), '5.15.5', 'all');
267 wp_enqueue_style('adminify-fa5-v4-shims', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.4/css/v4-shims' . Utils::assets_ext('.css'), array(), '5.15.5', 'all');
268 }
269 }
270 wp_enqueue_style('wp-adminify-simple-line-icons');
271
272 // Load Scripts/Styles only WP Adminify Admin Page
273 if ($screen->id === 'toplevel_page_wp-adminify-settings') {
274 // Admin Notice Dismiss
275 // $this->jltwp_adminify_admin_script();
276
277 global $menu, $submenu;
278 $set_menu = new \WPAdminify\Inc\Modules\MenuEditor\MenuEditor();
279 $main_menus = $set_menu->sort_menu_settings($menu);
280 $sub_menus = $set_menu->sort_sub_menu_settings( $main_menus, $submenu );
281
282 // Menu Editor
283 wp_enqueue_script('wp-adminify-menu-editor-script');
284 wp_localize_script(
285 'wp-adminify-menu-editor-script',
286 'WPAdminifyIconPicker',
287 [
288 'main_menu' => $main_menus,
289 'sub_menu' => $sub_menus,
290 // 'is_elementor_active' => Utils::is_plugin_active('elementor/elementor.php'),
291 ]
292 );
293
294 }
295
296 if ($screen->id === 'wp-adminify_page_wp-adminify-addons-plugins' || $screen->id === 'wp-adminify-pro_page_wp-adminify-addons-plugins') {
297 // JS Files .
298 wp_enqueue_script('wp-adminify-addons', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-addons' . Utils::assets_ext('.js'), array('jquery'), WP_ADMINIFY_VER, true);
299 wp_localize_script(
300 'wp-adminify-addons',
301 'WP_ADMINIFYCORE',
302 array(
303 'admin_ajax' => admin_url('admin-ajax.php'),
304 'addons_nonce' => wp_create_nonce('jltwp_adminify_addons_nonce'),
305 'plugin_key' => 'jltwp_adminify'
306 )
307 );
308 }
309 }
310
311 // WP Adminify Options Page Style
312 public function jltwp_adminify_admin_script()
313 {
314 echo '<style>.wp-adminify-two-columns{ display: flex; flex-wrap: wrap; padding: 15px; } .wp-adminify .adminify-hightlight-field{ border: 2px solid #0347FF !important; font-weight: 600 !important;} .wp-adminify-two-columns .adminify-full-width-field{ width: 100% !important; flex-basis: 100% !important; } .wp-adminify-two-columns > .adminify-field{ width: 49%; flex-basis: 49%; margin-right: 1%; margin-top: -1px; border: 1px solid #eee; box-sizing: border-box; } .wp-adminify-two-columns.aminify-title-width-40 .adminify-title, .aminify-title-width-40 .adminify-title{ width: 40% !important;} .wp-adminify-two-columns.aminify-title-width-40 .adminify-fieldset, .aminify-title-width-40 .adminify-fieldset{ width: calc(60% - 20px) !important;} .wp-adminify-two-columns.aminify-title-width-65 .adminify-title{ width: 65%;} .wp-adminify-two-columns.aminify-title-width-65 .adminify-fieldset{ width: calc(35% - 20px);} .wp-adminify-two-columns .adminify-field-subheading{height:25px;box-sizing: content-box; width: 100%; flex-basis: 100%;} .wp-adminify-white-label-notice-content { background-color: #fff; box-shadow: 0px 0px 50px rgb(0 0 0 / 13%); position: absolute; top: 150px; left: 400px; width: 530px; padding: 32px; padding-bottom: 50px; -webkit-border-radius: 20px; border-radius: 20px; text-align: center; z-index: 2; } .wp-adminify-white-label-notice-logo img { height: 100px; width: 250px; padding: 10px; padding-top: 10px; } .wp-adminify-white-label-notice-content h2 span{ color: #6814cd; text-transform: uppercase; } .wp-adminify-white-label-notice-content em{ font-size: 13px; color: red; } .wp-adminify-white-label-notice .wp-adminify-get-pro{ background-image: -moz-linear-gradient( 0deg, rgb(223,29,198) 0%, rgb(106,20,209) 100%); background-image: -webkit-linear-gradient( 0deg , rgb(223,29,198) 0%, rgb(106,20,209) 100%); background-image: -ms-linear-gradient( 0deg, rgb(223,29,198) 0%, rgb(106,20,209) 100%); border: none; box-shadow: none; color: #fff; cursor: pointer; font-weight: 700; line-height: 35px; padding: 0 15px; text-transform: uppercase; text-decoration: none; display: inline-block; width: 180px; padding: 5px 15px !important; border-radius: 10px; font-size: 15px; font-weight: 800; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } .wp-adminify-white-label-notice{ position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100%; background: rgba(200, 200, 200, 0.5); -js-display: flex; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -webkit-justify-content: center; -moz-box-pack: center; -ms-flex-pack: center; justify-content: center;z-index: 1; } .wp-adminify-white-label-notice .wp-adminify-get-pro:hover { color:#fff; background-image: -moz-linear-gradient(0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%); background-image: -webkit-linear-gradient( 0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%); background-image: -ms-linear-gradient(0deg, rgb(106, 20, 209) 0%, rgb(223, 29, 198) 100%);} .adminify-field-callback a.wp-adminify-rollback-button{font-family:inherit !important;} .wp-adminify-rollback-button.dashicons, .wp-adminify-rollback-button.dashicons-before:before{ width: inherit !important;}</style>';
315 }
316
317 }
318