PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.2.2
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.2.2
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.2.2, at Inc/Classes/Assets.php

317 lines 14.4 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 $this->dark_mode = !empty($this->options['light_dark_mode']['admin_ui_mode']) ? $this->options['light_dark_mode']['admin_ui_mode'] : 'light';
27 add_action('admin_enqueue_scripts', array($this, 'jltwp_adminify_admin_scripts'), 100);
28 add_action('wp_ajax_jltwp_adminify_addons_install_active', 'jltwp_adminify_addons_install_active');
29
30 if ($this->is_dark_mode() || $this->classic_editor || $this->block_editor) {
31 add_action('admin_head', array($this, 'header_scripts'));
32 }
33 }
34
35
36 /**
37 * Function: Ajax Call for Install and Activate WP Adminify Plugin
38 */
39 function jltwp_adminify_addons_install_active()
40 {
41
42 // Include necessary WordPress files
43 require_once ABSPATH . 'wp-admin/includes/plugin-install.php';
44 require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
45 require_once ABSPATH . 'wp-admin/includes/class-wp-ajax-upgrader-skin.php';
46 require_once ABSPATH . 'wp-admin/includes/class-plugin-upgrader.php';
47
48 if (isset($_POST['plugin'])) {
49
50 $nonce = isset($_POST['nonce']) ? sanitize_text_field(wp_unslash($_POST['nonce'])) : '';
51
52 if (!wp_verify_nonce($nonce, 'jltwp_adminify_addons_nonce')) {
53 wp_send_json_error(array('mess' => esc_html__('Nonce is invalid', 'adminify')));
54 }
55
56 if ((is_multisite() && is_network_admin()) || !current_user_can('install_plugins')) {
57 wp_send_json_error(array('mess' => esc_html__('Invalid Access', 'adminify')));
58 }
59
60 $plugin = sanitize_text_field(wp_unslash($_POST['plugin']));
61
62 if (empty($plugin)) {
63 wp_send_json_error(array('mess' => esc_html__('Invalid plugin', 'adminify')));
64 }
65
66 $type = isset($_POST['type']) ? sanitize_text_field(wp_unslash($_POST['type'])) : 'install';
67 $skin = new \WP_Ajax_Upgrader_Skin();
68 $upgrader = new \Plugin_Upgrader($skin);
69
70 if ('install' === $type) {
71 $result = $upgrader->install($plugin);
72 if (is_wp_error($result)) {
73 wp_send_json_error(
74 array(
75 'mess' => $result->get_error_message(),
76 )
77 );
78 }
79 $args = array(
80 'slug' => $upgrader->result['destination_name'],
81 'fields' => array(
82 'short_description' => true,
83 'icons' => true,
84 'banners' => false,
85 'added' => false,
86 'reviews' => false,
87 'sections' => false,
88 'requires' => false,
89 'rating' => false,
90 'ratings' => false,
91 'downloaded' => false,
92 'last_updated' => false,
93 'added' => false,
94 'tags' => false,
95 'compatibility' => false,
96 'homepage' => false,
97 'donate_link' => false,
98 ),
99 );
100 $plugin_data = plugins_api('plugin_information', $args);
101
102 if ($plugin_data && !is_wp_error($plugin_data)) {
103 $install_status = \install_plugin_install_status($plugin_data);
104 activate_plugin($install_status['file']);
105 }
106 wp_die(); // die();
107 }
108 }
109 }
110
111
112 /*
113 * Function is_dark_mode()
114 *
115 */
116 public function is_dark_mode()
117 {
118
119 if (!empty($this->dark_mode) && $this->dark_mode == 'dark') {
120 $adminify_dark_mode = true;
121 } else {
122 $adminify_dark_mode = false;
123 }
124 return $adminify_dark_mode;
125 }
126
127 public function header_scripts()
128 {
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
271 // Load Scripts/Styles only WP Adminify Admin Page
272 if ($screen->id === 'toplevel_page_wp-adminify-settings') {
273 // Admin Notice Dismiss
274 // $this->jltwp_adminify_admin_script();
275
276 global $menu, $submenu;
277 $set_menu = new \WPAdminify\Inc\Modules\MenuEditor\MenuEditor();
278 $main_menus = $set_menu->sort_menu_settings($menu);
279 $sub_menus = $set_menu->sort_sub_menu_settings( $main_menus, $submenu );
280
281 // Menu Editor
282 wp_enqueue_script('wp-adminify-menu-editor-script');
283 wp_localize_script(
284 'wp-adminify-menu-editor-script',
285 'WPAdminifyIconPicker',
286 [
287 'main_menu' => $main_menus,
288 'sub_menu' => $sub_menus,
289 // 'is_elementor_active' => Utils::is_plugin_active('elementor/elementor.php'),
290 ]
291 );
292
293 }
294
295 if ($screen->id === 'wp-adminify_page_wp-adminify-addons-plugins' || $screen->id === 'wp-adminify-pro_page_wp-adminify-addons-plugins') {
296 // JS Files .
297 wp_enqueue_script('wp-adminify-addons', WP_ADMINIFY_ASSETS . 'admin/js/wp-adminify-addons' . Utils::assets_ext('.js'), array('jquery'), WP_ADMINIFY_VER, true);
298 wp_localize_script(
299 'wp-adminify-addons',
300 'WP_ADMINIFYCORE',
301 array(
302 'admin_ajax' => admin_url('admin-ajax.php'),
303 'addons_nonce' => wp_create_nonce('jltwp_adminify_addons_nonce'),
304 'plugin_key' => 'jltwp_adminify'
305 )
306 );
307 }
308 }
309
310 // WP Adminify Options Page Style
311 public function jltwp_adminify_admin_script()
312 {
313 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>';
314 }
315
316 }
317