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

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