PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 3.1.3
Adminify – White Label, Admin Menu Editor, Login Customizer v3.1.3
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 3.1.3, at Inc/Admin/AdminSettings.php

289 lines 12.3 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="%1$s">%2$s</option>', 'adminify' ), 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="%1$s">%2$s</option>', 'adminify' ), $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--' . esc_attr( $this->message['type'] );
98 printf( esc_html__( '<div class="%1$s"><p>%2$s</p></div>', 'adminify' ), esc_attr( $classes ), wp_kses_post( $this->message['message'] ) );
99 }
100
101 public function network_panel_display()
102 {
103 echo sprintf( wp_kses_post( '<h2>%1$1s</h2> <div>%2$2s</div>', 'adminify' ), esc_html__( 'Network Settings', 'adminify' ), Utils::adminify_upgrade_pro( ' ', 'adminify' ) ) ;
104 }
105
106 public function option_modules()
107 {
108 return (array) apply_filters( 'adminify_clone_blog_option_modules', [
109 '_wpadminify' => __( 'Adminify Core', 'adminify' ),
110 '_wp_adminify_sidebar_settings' => __( 'Sidebar Settings', 'adminify' ),
111 '_wpadminify_custom_js_css' => __( 'Custom JS CSS', 'adminify' ),
112 '_adminify_admin_columns_adminify_admin_page' => __( 'Admin Page Columns Data', 'adminify' ),
113 '_adminify_admin_columns_page' => __( 'Page Columns Data', 'adminify' ),
114 '_adminify_admin_columns_post' => __( 'Post Columns Data', 'adminify' ),
115 '_wpadminify_admin_saved_notices' => __( 'Saved Notices', 'adminify' ),
116 '_adminify_notification_bar' => __( 'Notification Bar', 'adminify' ),
117 'jltwp_adminify_login' => __( 'Login Customizer', 'adminify' ),
118 ] );
119 }
120
121 public function maybe_clone_blog_options()
122 {
123 }
124
125 public function get_pagespeed_data( $copy_from )
126 {
127 switch_to_blog( $copy_from );
128 global $wpdb ;
129 $table_name = $wpdb->prefix . 'adminify_page_speed';
130 $histories = $wpdb->get_results( "SELECT * FROM {$table_name}", ARRAY_A );
131 restore_current_blog();
132 return $histories;
133 }
134
135 public function clone_pagespeed_data( $histories, $copy_to )
136 {
137 switch_to_blog( $copy_to );
138 global $wpdb ;
139 $table_name = $wpdb->prefix . 'adminify_page_speed';
140 foreach ( $histories as $history ) {
141 unset( $history['id'] );
142 $wpdb->insert( "{$table_name}", $history, [
143 'url' => '%s',
144 'score_desktop' => '%d',
145 'score_mobile' => '%d',
146 'data_desktop' => '%s',
147 'data_mobile' => '%s',
148 'screenshot' => '%s',
149 'time' => '%s',
150 ] );
151 }
152 restore_current_blog();
153 }
154
155 public function get_admin_columns_options( $copy_from )
156 {
157 $options = [];
158 switch_to_blog( $copy_from );
159 $args = [
160 'public' => true,
161 ];
162 $types = get_post_types( $args );
163 unset( $types['attachment'] );
164 restore_current_blog();
165 foreach ( $types as $type ) {
166 $options[] = '_adminify_admin_columns_meta_' . esc_attr( $type );
167 }
168 return $options;
169 }
170
171 public static function get_instance()
172 {
173 if ( !is_null( self::$instance ) ) {
174 return self::$instance;
175 }
176 self::$instance = new self();
177 return self::$instance;
178 }
179
180 protected function get_defaults()
181 {
182 return $this->defaults;
183 }
184
185 /**
186 * Admin Settings CSS
187 *
188 * @return void
189 */
190 public function jltwp_adminify_admin_scripts()
191 {
192 }
193
194 public function get_plugin_menu_label()
195 {
196 $plugin_menu_label = WP_ADMINIFY;
197 $saved_data = get_option( $this->prefix );
198 return $plugin_menu_label;
199 }
200
201 public function jltwp_adminify_options()
202 {
203 if ( !class_exists( 'ADMINIFY' ) ) {
204 return;
205 }
206 $saved_data = get_option( $this->prefix );
207 $admin_bar_mode = ( empty($saved_data['admin_bar_mode']) ? 'light' : sanitize_text_field( $saved_data['admin_bar_mode'] ) );
208
209 if ( $admin_bar_mode == 'light' ) {
210 $logo_image_url = esc_url( WP_ADMINIFY_ASSETS_IMAGE ) . 'logos/logo-text-light.svg';
211 } else {
212 $logo_image_url = esc_url( WP_ADMINIFY_ASSETS_IMAGE ) . 'logos/logo-text-dark.svg';
213 }
214
215 $plugin_author_name = esc_html( WP_ADMINIFY_AUTHOR );
216 // WP Adminify Options
217 \ADMINIFY::createOptions( $this->prefix, [
218 'framework_title' => '<img class="wp-adminify-settings-logo" src=' . esc_url( $logo_image_url ) . '>' . ' <small>by ' . esc_html( $plugin_author_name ) . '</small>',
219 'framework_class' => '',
220 'menu_title' => $this->get_plugin_menu_label(),
221 'menu_slug' => 'wp-adminify-settings',
222 'menu_capability' => 'manage_options',
223 'menu_icon' => WP_ADMINIFY_ASSETS_IMAGE . 'logos/menu-icon.svg',
224 'menu_position' => 30,
225 'menu_hidden' => false,
226 'menu_parent' => 'admin.php?page=wp-adminify-settings',
227 'show_bar_menu' => true,
228 'show_sub_menu' => false,
229 'show_in_network' => false,
230 'show_in_customizer' => false,
231 'show_search' => false,
232 'show_reset_all' => true,
233 'show_reset_section' => true,
234 'show_footer' => true,
235 'show_all_options' => false,
236 'show_form_warning' => true,
237 'sticky_header' => false,
238 'save_defaults' => false,
239 'ajax_save' => true,
240 'admin_bar_menu_icon' => '',
241 'admin_bar_menu_priority' => 80,
242 'footer_text' => ' ',
243 'footer_after' => ' ',
244 'footer_credit' => ' ',
245 'database' => 'options',
246 'transient_time' => 0,
247 'contextual_help' => [],
248 'contextual_help_sidebar' => '',
249 'enqueue_webfont' => true,
250 'async_webfont' => false,
251 'output_css' => true,
252 'nav' => 'normal',
253 'theme' => 'dark',
254 'class' => 'wp-adminify-settings',
255 'defaults' => [],
256 ] );
257 $this->defaults = array_merge( $this->defaults, ( new Modules() )->get_defaults() );
258 $this->defaults = array_merge( $this->defaults, ( new General() )->get_defaults() );
259 $this->defaults = array_merge( $this->defaults, ( new Admin_Footer() )->get_defaults() );
260 $this->defaults = array_merge( $this->defaults, ( new MenuLayout() )->get_defaults() );
261 $this->defaults = array_merge( $this->defaults, ( new AdminBar() )->get_defaults() );
262 $this->defaults = array_merge( $this->defaults, ( new Tweaks() )->get_defaults() );
263 $this->defaults = array_merge( $this->defaults, ( new WidgetSettings() )->get_defaults() );
264 $this->defaults = array_merge( $this->defaults, ( new DismissNotices() )->get_defaults() );
265 $this->defaults = array_merge( $this->defaults, ( new Module_Settings() )->get_defaults() );
266 $this->defaults = array_merge( $this->defaults, ( new Assets_Manager() )->get_defaults() );
267 $this->defaults = array_merge( $this->defaults, ( new Custom_CSS_JS_Admin_Area() )->get_defaults() );
268 $this->defaults = array_merge( $this->defaults, ( new White_Label() )->get_defaults() );
269 // Backup Settings
270 \ADMINIFY::createSection( $this->prefix, [
271 'title' => __( 'Backup', 'adminify' ),
272 'icon' => 'fas fa-shield-alt',
273 'fields' => [ [
274 'type' => 'subheading',
275 'content' => Utils::adminfiy_help_urls(
276 __( 'Backup Config Settings', 'adminify' ),
277 'https://wpadminify.com/kb/wp-adminify-options-panel/#adminify-backup',
278 'https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8',
279 'https://www.facebook.com/groups/jeweltheme',
280 'https://wpadminify.com/support/'
281 ),
282 ], [
283 'type' => 'backup',
284 ] ],
285 ] );
286 }
287
288 }
289 }