PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 2.0.9
Adminify – White Label, Admin Menu Editor, Login Customizer v2.0.9
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 / Admin / AdminSettings.php

AdminSettings.php in Adminify – White Label, Admin Menu Editor, Login Customizer 2.0.9, at Inc/Admin/AdminSettings.php

294 lines 12.2 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\Admin;
4
5 use WPAdminify\Inc\Utils ;
6 use WPAdminify\Inc\Admin\AdminSettingsModel ;
7 use WPAdminify\Inc\Admin\Options\General ;
8 use WPAdminify\Inc\Admin\Options\Modules ;
9 use WPAdminify\Inc\Admin\Options\DismissNotices ;
10 use WPAdminify\Inc\Admin\Options\MenuLayout ;
11 use WPAdminify\Inc\Admin\Options\Tweaks ;
12 use WPAdminify\Inc\Admin\Options\AdminBar ;
13 use WPAdminify\Inc\Admin\Options\Admin_Footer ;
14 use WPAdminify\Inc\Admin\Options\WidgetSettings ;
15 use WPAdminify\Inc\Admin\Options\Module_Settings ;
16 use WPAdminify\Inc\Admin\Options\Assets_Manager ;
17 use WPAdminify\Inc\Admin\Options\White_Label ;
18 use WPAdminify\Inc\Admin\Options\Custom_CSS_JS_Admin_Area ;
19 if ( !defined( 'ABSPATH' ) ) {
20 die;
21 }
22 // Cannot access directly.
23 if ( !class_exists( 'AdminSettings' ) ) {
24 class AdminSettings extends AdminSettingsModel
25 {
26 // AdminSettings cannot be extended by creating instances
27 public static $instance = null ;
28 public $defaults = array() ;
29 private $message = array() ;
30 public function __construct()
31 {
32 // this should be first so the default values get stored
33 $this->jltwp_adminify_options();
34 parent::__construct( (array) get_option( $this->prefix ) );
35 add_action( 'network_admin_menu', [ $this, 'network_panel' ] );
36 }
37
38 public function network_panel()
39 {
40 add_menu_page(
41 $this->get_plugin_menu_label(),
42 $this->get_plugin_menu_label(),
43 'manage_options',
44 'wp-adminify-settings',
45 [ $this, 'network_panel_display' ],
46 WP_ADMINIFY_ASSETS_IMAGE . 'logos/menu-icon.svg',
47 30
48 );
49 }
50
51 public function get_bloginfo( $blog_id, $fields = array() )
52 {
53 switch_to_blog( $blog_id );
54 $_fields = [];
55 foreach ( $fields as $field ) {
56 $_fields[$field] = get_bloginfo( $field );
57 }
58 restore_current_blog();
59 return $_fields;
60 }
61
62 public function get_sites()
63 {
64 $sites = get_sites();
65 foreach ( $sites as $site ) {
66 $info = $this->get_bloginfo( $site->blog_id, [ 'name' ] );
67 $site->name = $info['name'];
68 }
69 return $sites;
70 }
71
72 public function get_sites_option_empty()
73 {
74 return sprintf( '<option value="%s">%s</option>', 0, __( 'Select', 'adminify' ) );
75 }
76
77 public function get_sites_option( $sites = array(), $add_empty_slot = false )
78 {
79 if ( empty($sites) ) {
80 $sites = $this->get_sites();
81 }
82 $_sites = [];
83 if ( $add_empty_slot ) {
84 $_sites[] = $this->get_sites_option_empty();
85 }
86 foreach ( $sites as $site ) {
87 $_sites[] = sprintf( '<option value="%s">%s</option>', $site->blog_id, $site->name );
88 }
89 return implode( '', $_sites );
90 }
91
92 public function maybe_display_message()
93 {
94 if ( empty($this->message) ) {
95 return;
96 }
97 $classes = 'adminify-status adminify-status--' . $this->message['type'];
98 printf( '<div class="%s"><p>%s</p></div>', $classes, $this->message['message'] );
99 }
100
101 public function network_panel_display()
102 {
103 echo '<h2>Network Settings</h2>' ;
104 echo '<div>' ;
105 echo Utils::adminify_upgrade_pro( 'Upgrade to Pro' ) ;
106 echo '</div>' ;
107 }
108
109 public function option_modules()
110 {
111 return (array) apply_filters( 'adminify_clone_blog_option_modules', [
112 '_wpadminify' => __( 'Adminify Core' ),
113 '_wp_adminify_sidebar_settings' => __( 'Sidebar Settings' ),
114 '_wpadminify_custom_js_css' => __( 'Custom JS CSS' ),
115 '_adminify_admin_columns_adminify_admin_page' => __( 'Admin Page Columns Data' ),
116 '_adminify_admin_columns_page' => __( 'Page Columns Data' ),
117 '_adminify_admin_columns_post' => __( 'Post Columns Data' ),
118 '_wpadminify_admin_saved_notices' => __( 'Saved Notices' ),
119 '_adminify_notification_bar' => __( 'Notification Bar' ),
120 'jltwp_adminify_login' => __( 'Login Customizer' ),
121 ] );
122 }
123
124 public function maybe_clone_blog_options()
125 {
126 }
127
128 public function get_pagespeed_data( $copy_from )
129 {
130 switch_to_blog( $copy_from );
131 global $wpdb ;
132 $table_name = $wpdb->prefix . 'adminify_page_speed';
133 $histories = $wpdb->get_results( "SELECT * FROM {$table_name}", ARRAY_A );
134 restore_current_blog();
135 return $histories;
136 }
137
138 public function clone_pagespeed_data( $histories, $copy_to )
139 {
140 switch_to_blog( $copy_to );
141 global $wpdb ;
142 $table_name = $wpdb->prefix . 'adminify_page_speed';
143 foreach ( $histories as $history ) {
144 unset( $history['id'] );
145 $wpdb->insert( "{$table_name}", $history, array(
146 'url' => '%s',
147 'score_desktop' => '%d',
148 'score_mobile' => '%d',
149 'data_desktop' => '%s',
150 'data_mobile' => '%s',
151 'screenshot' => '%s',
152 'time' => '%s',
153 ) );
154 }
155 restore_current_blog();
156 }
157
158 public function get_admin_columns_options( $copy_from )
159 {
160 $options = [];
161 switch_to_blog( $copy_from );
162 $args = array(
163 'public' => true,
164 );
165 $types = get_post_types( $args );
166 unset( $types['attachment'] );
167 restore_current_blog();
168 foreach ( $types as $type ) {
169 $options[] = '_adminify_admin_columns_meta_' . $type;
170 }
171 return $options;
172 }
173
174 public static function get_instance()
175 {
176 if ( !is_null( self::$instance ) ) {
177 return self::$instance;
178 }
179 self::$instance = new self();
180 return self::$instance;
181 }
182
183 protected function get_defaults()
184 {
185 return $this->defaults;
186 }
187
188 /**
189 * Admin Settings CSS
190 *
191 * @return void
192 */
193 public function jltwp_adminify_admin_scripts()
194 {
195 }
196
197 public function get_plugin_menu_label()
198 {
199 $plugin_menu_label = WP_ADMINIFY;
200 $saved_data = get_option( $this->prefix );
201 return $plugin_menu_label;
202 }
203
204 public function jltwp_adminify_options()
205 {
206 if ( !class_exists( 'ADMINIFY' ) ) {
207 return;
208 }
209 $saved_data = get_option( $this->prefix );
210 $admin_bar_mode = ( empty($saved_data['admin_bar_mode']) ? 'light' : $saved_data['admin_bar_mode'] );
211
212 if ( $admin_bar_mode == 'light' ) {
213 $logo_image_url = WP_ADMINIFY_ASSETS_IMAGE . 'logos/logo-text-light.svg';
214 } else {
215 $logo_image_url = WP_ADMINIFY_ASSETS_IMAGE . 'logos/logo-text-dark.svg';
216 }
217
218 $plugin_author_name = WP_ADMINIFY_AUTHOR;
219 // Show/Hide "WP Adminify" Options Menu on Admin Bar
220 $jlt_wpadminify_menu = ( !empty($saved_data['admin_bar_settings']['admin_bar_menu']) ? '11' : '0' );
221 // WP Adminify Options
222 \ADMINIFY::createOptions( $this->prefix, array(
223 'framework_title' => '<img class="wp-adminify-settings-logo" src=' . $logo_image_url . '>' . ' <small>by ' . $plugin_author_name . '</small>',
224 'framework_class' => '',
225 'menu_title' => $this->get_plugin_menu_label(),
226 'menu_slug' => 'wp-adminify-settings',
227 'menu_capability' => 'manage_options',
228 'menu_icon' => WP_ADMINIFY_ASSETS_IMAGE . 'logos/menu-icon.svg',
229 'menu_position' => 30,
230 'menu_hidden' => false,
231 'menu_parent' => 'admin.php?page=wp-adminify-settings',
232 'show_bar_menu' => $jlt_wpadminify_menu,
233 'show_sub_menu' => false,
234 'show_in_network' => false,
235 'show_in_customizer' => false,
236 'show_search' => false,
237 'show_reset_all' => true,
238 'show_reset_section' => true,
239 'show_footer' => true,
240 'show_all_options' => false,
241 'show_form_warning' => true,
242 'sticky_header' => false,
243 'save_defaults' => false,
244 'ajax_save' => true,
245 'admin_bar_menu_icon' => '',
246 'admin_bar_menu_priority' => 80,
247 'footer_text' => ' ',
248 'footer_after' => ' ',
249 'footer_credit' => ' ',
250 'database' => 'options',
251 'transient_time' => 0,
252 'contextual_help' => array(),
253 'contextual_help_sidebar' => '',
254 'enqueue_webfont' => true,
255 'async_webfont' => false,
256 'output_css' => true,
257 'nav' => 'normal',
258 'theme' => 'dark',
259 'class' => 'wp-adminify-settings',
260 'defaults' => array(),
261 ) );
262 $this->defaults = array_merge( $this->defaults, ( new Modules() )->get_defaults() );
263 $this->defaults = array_merge( $this->defaults, ( new General() )->get_defaults() );
264 $this->defaults = array_merge( $this->defaults, ( new Admin_Footer() )->get_defaults() );
265 $this->defaults = array_merge( $this->defaults, ( new MenuLayout() )->get_defaults() );
266 $this->defaults = array_merge( $this->defaults, ( new AdminBar() )->get_defaults() );
267 $this->defaults = array_merge( $this->defaults, ( new Tweaks() )->get_defaults() );
268 $this->defaults = array_merge( $this->defaults, ( new WidgetSettings() )->get_defaults() );
269 $this->defaults = array_merge( $this->defaults, ( new DismissNotices() )->get_defaults() );
270 $this->defaults = array_merge( $this->defaults, ( new Module_Settings() )->get_defaults() );
271 $this->defaults = array_merge( $this->defaults, ( new Assets_Manager() )->get_defaults() );
272 $this->defaults = array_merge( $this->defaults, ( new Custom_CSS_JS_Admin_Area() )->get_defaults() );
273 $this->defaults = array_merge( $this->defaults, ( new White_Label() )->get_defaults() );
274 // Backup Settings
275 \ADMINIFY::createSection( $this->prefix, array(
276 'title' => 'Backup',
277 'icon' => 'fas fa-shield-alt',
278 'fields' => array( array(
279 'type' => 'subheading',
280 'content' => Utils::adminfiy_help_urls(
281 __( 'Backup Config Settings', 'adminify' ),
282 'https://wpadminify.com/kb/wp-adminify-options-panel/#adminify-backup',
283 'https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8',
284 'https://www.facebook.com/groups/jeweltheme',
285 'https://wpadminify.com/support/'
286 ),
287 ), array(
288 'type' => 'backup',
289 ) ),
290 ) );
291 }
292
293 }
294 }