PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 2.0.0
Adminify – White Label, Admin Menu Editor, Login Customizer v2.0.0
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.0, at Inc/Admin/AdminSettings.php

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