Custom Sidebars – Dynamic Widget Area Manager - Version 3.36

Version Description

  • 2022-11-26
  • Minor security fixes
Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 Custom Sidebars – Dynamic Widget Area Manager
Version 3.36
Comparing to
See all releases

Code changes from version 3.35 to 3.36

customsidebars.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Custom Sidebars
4
  * Plugin URI: https://wordpress.org/plugins/custom-sidebars/
5
  * Description: Allows you to create widgetized areas and custom sidebars. Replace whole sidebars or single widgets for specific posts and pages.
6
- * Version: 3.35
7
  * Author: WebFactory Ltd
8
  * Author URI: https://www.webfactoryltd.com/
9
  * Textdomain: custom-sidebars
3
  * Plugin Name: Custom Sidebars
4
  * Plugin URI: https://wordpress.org/plugins/custom-sidebars/
5
  * Description: Allows you to create widgetized areas and custom sidebars. Replace whole sidebars or single widgets for specific posts and pages.
6
+ * Version: 3.36
7
  * Author: WebFactory Ltd
8
  * Author URI: https://www.webfactoryltd.com/
9
  * Textdomain: custom-sidebars
inc/class-custom-sidebars-checkup-notification.php CHANGED
@@ -62,16 +62,16 @@ class CustomSidebarsCheckupNotification extends CustomSidebars {
62
  /**
63
  * Check: nonce
64
  */
65
- $nonce_name = $this->nonce_name . $_GET['user_id'];
66
  if ( ! wp_verify_nonce( $_GET['_wpnonce'], $nonce_name ) ) {
67
  die;
68
  }
69
  /**
70
  * save result
71
  */
72
- $result = add_user_meta( $_GET['user_id'], $this->dismiss_name, true, true );
73
  if ( false == $result ) {
74
- update_user_meta( $_GET['user_id'], $this->dismiss_name, true );
75
  }
76
  die;
77
  }
@@ -119,12 +119,12 @@ class CustomSidebarsCheckupNotification extends CustomSidebars {
119
  <script type="text/javascript">
120
  jQuery(document).ready( function() {
121
  setTimeout( function() {
122
- var template = wp.template('custom-sidebars-<?php echo $template_name; ?>');
123
  jQuery(".sidebars-column-1 .inner").append( template() );
124
  }, 1000);
125
  });
126
  </script>
127
- <script type="text/html" id="tmpl-custom-sidebars-<?php echo $template_name; ?>">
128
  <?php
129
  $this->$method();
130
  ?>
@@ -145,7 +145,7 @@ if (!defined('WPFSSL_OPTIONS_KEY')) {
145
  ?>
146
  <div class="cs-inner cs-wpfssl">
147
  <h4 class="textcenter">Having problems with SSL?<br>Generate a free certificate &amp; properly redirect to HTTPS with a few clicks</h4>
148
- <div class="wpfssl-logo"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20force%20ssl&tab=search&type=term'); ?>"><img src="<?php echo CSB_IMG_URL; ?>wp-force-ssl.png" alt="WP Force SSL" title="WP Force SSL"></a></div>
149
  <div class="textcenter"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20force%20ssl&tab=search&type=term'); ?>" class="button">Install the <b>free WP Force SSL plugin</b></a></div>
150
  </div>
151
  <?php
@@ -155,32 +155,13 @@ if (!function_exists('sticky_anything_activate')) {
155
  ?>
156
  <div class="cs-inner">
157
  <h4 class="textcenter">Need to make any element on your site sticky?<br>Header menu, a widget, or an image?</h4>
158
- <div class="sticky-logo"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20sticky&tab=search&type=term'); ?>"><img src="<?php echo CSB_IMG_URL; ?>wp-sticky.png" alt="WP Sticky Anything" title="WP Sticky Anything"></a></div>
159
  <div class="textcenter"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20sticky&tab=search&type=term'); ?>" class="button-primary">Install the free WP Sticky plugin</a></div>
160
  </div>
161
  <?php
162
  }
163
  ?>
164
  </div>
165
- <?php
166
- }
167
-
168
- private function show_box_upfront() {
169
- $url = add_query_arg(
170
- array(
171
- 'utm_source' => 'custom_sidebar_uf_ad',
172
- 'utm_campaign' => 'custom_sidebar_plugin_uf_ad',
173
- 'utm_medium' => 'Custom Sidebars Plugin',
174
- ),
175
- 'https://premium.wpmudev.org/projects/category/themes/'
176
- );
177
- ?>
178
- <div class="custom-sidebars-box custom-sidebars-upfront">
179
- <div class="cs-inner">
180
- <p><?php esc_html_e( 'Don’t just replace sidebars. Add new sidebars and footers anywhere with Upfront.', 'custom-sidebars' ); ?></p>
181
- <p><a class="button" href="<?php echo esc_url( $url ); ?>"><?php esc_html_e( 'get Upfront free', 'custom-sidebars' ); ?></a></p>
182
- </div>
183
- </div>
184
  <?php
185
  }
186
  };
62
  /**
63
  * Check: nonce
64
  */
65
+ $nonce_name = $this->nonce_name . sanitize_key($_GET['user_id']);
66
  if ( ! wp_verify_nonce( $_GET['_wpnonce'], $nonce_name ) ) {
67
  die;
68
  }
69
  /**
70
  * save result
71
  */
72
+ $result = add_user_meta( sanitize_key($_GET['user_id']), $this->dismiss_name, true, true );
73
  if ( false == $result ) {
74
+ update_user_meta( sanitize_key($_GET['user_id']), $this->dismiss_name, true );
75
  }
76
  die;
77
  }
119
  <script type="text/javascript">
120
  jQuery(document).ready( function() {
121
  setTimeout( function() {
122
+ var template = wp.template('custom-sidebars-<?php esc_attr_e($template_name); ?>');
123
  jQuery(".sidebars-column-1 .inner").append( template() );
124
  }, 1000);
125
  });
126
  </script>
127
+ <script type="text/html" id="tmpl-custom-sidebars-<?php esc_attr_e($template_name); ?>">
128
  <?php
129
  $this->$method();
130
  ?>
145
  ?>
146
  <div class="cs-inner cs-wpfssl">
147
  <h4 class="textcenter">Having problems with SSL?<br>Generate a free certificate &amp; properly redirect to HTTPS with a few clicks</h4>
148
+ <div class="wpfssl-logo"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20force%20ssl&tab=search&type=term'); ?>"><img src="<?php echo esc_url(CSB_IMG_URL); ?>wp-force-ssl.png" alt="WP Force SSL" title="WP Force SSL"></a></div>
149
  <div class="textcenter"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20force%20ssl&tab=search&type=term'); ?>" class="button">Install the <b>free WP Force SSL plugin</b></a></div>
150
  </div>
151
  <?php
155
  ?>
156
  <div class="cs-inner">
157
  <h4 class="textcenter">Need to make any element on your site sticky?<br>Header menu, a widget, or an image?</h4>
158
+ <div class="sticky-logo"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20sticky&tab=search&type=term'); ?>"><img src="<?php echo esc_url(CSB_IMG_URL); ?>wp-sticky.png" alt="WP Sticky Anything" title="WP Sticky Anything"></a></div>
159
  <div class="textcenter"><a target="_blank" href="<?php echo admin_url('plugin-install.php?s=webfactory%20sticky&tab=search&type=term'); ?>" class="button-primary">Install the free WP Sticky plugin</a></div>
160
  </div>
161
  <?php
162
  }
163
  ?>
164
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
  <?php
166
  }
167
  };
inc/class-custom-sidebars-cloning.php CHANGED
@@ -203,9 +203,9 @@ class CustomSidebarsCloning {
203
  <input type="hidden" name="csb_clone[group]" class="csb-clone-group" value="<?php echo esc_attr( $data['group'] ); ?>" />
204
  <input type="hidden" name="csb_clone[state]" class="csb-clone-state" value="<?php echo esc_attr( $data['state'] ); ?>" />
205
  <?php if ( ! isset( $_POST['csb-clone-button'] ) && ( 'widgets' === get_current_screen()->id ) ) : ?>
206
- <a href="#" class="button csb-clone-button"><?php _e( 'Clone', 'custom-sidebars' ); ?></a>
207
  <?php else : ?>
208
- <script>jQuery(function() { jQuery('.csb-clone-<?php echo esc_js( $widget->id ); ?>').closest('.widget').trigger('csb:update'); }); </script>
209
  <?php endif; ?>
210
 
211
  </div>
203
  <input type="hidden" name="csb_clone[group]" class="csb-clone-group" value="<?php echo esc_attr( $data['group'] ); ?>" />
204
  <input type="hidden" name="csb_clone[state]" class="csb-clone-state" value="<?php echo esc_attr( $data['state'] ); ?>" />
205
  <?php if ( ! isset( $_POST['csb-clone-button'] ) && ( 'widgets' === get_current_screen()->id ) ) : ?>
206
+ <a href="#" class="button csb-clone-button"><?php esc_html_e( 'Clone', 'custom-sidebars' ); ?></a>
207
  <?php else : ?>
208
+ <script>jQuery(function() { jQuery('.csb-clone-<?php esc_attr_e( $widget->id ); ?>').closest('.widget').trigger('csb:update'); }); </script>
209
  <?php endif; ?>
210
 
211
  </div>
inc/class-custom-sidebars-editor.php CHANGED
@@ -120,7 +120,7 @@ class CustomSidebarsEditor extends CustomSidebars {
120
  $view_file = '';
121
  $sb_id = '';
122
  if ( isset( $_POST['sb'] ) ) {
123
- $sb_id = $_POST['sb'];
124
  }
125
  switch ( $action ) {
126
  case 'get':
@@ -146,6 +146,7 @@ class CustomSidebarsEditor extends CustomSidebars {
146
  __( 'You do not have permission for this', 'custom-sidebars' )
147
  );
148
  } else {
 
149
  switch ( $action ) {
150
  // Return details for the specified sidebar.
151
  case 'get':
@@ -153,8 +154,8 @@ class CustomSidebarsEditor extends CustomSidebars {
153
  * check nonce
154
  */
155
  if (
156
- ! isset( $_POST['_wpnonce'] )
157
- || ! wp_verify_nonce( $_POST['_wpnonce'], 'custom-sidebars-get' )
158
  ) {
159
  $req = self::req_err(
160
  $req,
@@ -174,12 +175,12 @@ class CustomSidebarsEditor extends CustomSidebars {
174
  break;
175
  // Save or insert the specified sidebar.
176
  case 'save':
177
- $req = $this->save_item( $req, $_POST );
178
  break;
179
  // Delete the specified sidebar.
180
  case 'delete':
181
  $req->sidebar = $sb_data;
182
- $req = $this->delete_item( $req, $_POST );
183
  break;
184
  // Get the location data.
185
  case 'get-location':
@@ -293,7 +294,7 @@ class CustomSidebarsEditor extends CustomSidebars {
293
  $name = sprintf( '%s_%s', $prefix, $sufix );
294
  $sidebar[ $name ] = '';
295
  if ( isset( $_POST[ $name ] ) ) {
296
- $sidebar[ $name ] = stripslashes( trim( $_POST[ $name ] ) );
297
  }
298
  }
299
  }
@@ -411,7 +412,7 @@ class CustomSidebarsEditor extends CustomSidebars {
411
  * @return object Updated response object.
412
  */
413
  private function set_replaceable( $req ) {
414
- $state = @$_POST['state'];
415
  $options = self::get_options();
416
  if ( 'true' === $state ) {
417
  $req->status = true;
@@ -495,7 +496,7 @@ class CustomSidebarsEditor extends CustomSidebars {
495
  array(
496
  'order_by' => 'display_name',
497
  'fields' => array( 'ID', 'display_name' ),
498
- 'who' => 'authors',
499
  )
500
  );
501
  // Collect required data for all posttypes.
@@ -666,9 +667,11 @@ class CustomSidebarsEditor extends CustomSidebars {
666
  /**
667
  * check nonce
668
  */
 
 
669
  if (
670
- ! isset( $_POST['_wpnonce'] )
671
- || ! wp_verify_nonce( $_POST['_wpnonce'], 'custom-sidebars-set-location' )
672
  ) {
673
  return self::req_err(
674
  $req,
@@ -683,7 +686,7 @@ class CustomSidebarsEditor extends CustomSidebars {
683
  $raw_taxonomies = array(
684
  'custom' => self::get_taxonomies( 'names', false ),
685
  );
686
- foreach ( $_POST as $key => $value ) {
687
  if ( strlen( $key ) > 8 && '___cs___' == substr( $key, 0, 8 ) ) {
688
  list( $prefix, $id ) = explode( '___', substr( $key, 8 ) );
689
  if ( ! isset( $data[ $prefix ] ) ) {
@@ -705,7 +708,7 @@ class CustomSidebarsEditor extends CustomSidebars {
705
  array(
706
  'order_by' => 'display_name',
707
  'fields' => array( 'ID', 'display_name' ),
708
- 'who' => 'authors',
709
  )
710
  );
711
  // == Update the options
@@ -866,7 +869,7 @@ class CustomSidebarsEditor extends CustomSidebars {
866
  && is_array( $_POST['cs-screen']['minmax'] )
867
  && is_array( $_POST['cs-screen']['size'] )
868
  ) {
869
- $screen_size = $_POST['cs-screen'];
870
  for ( $i = 0; $i < count( $screen_size['size'] ); $i++ ) {
871
  if ( ! empty( $screen_size['size'][ $i ] ) ) {
872
  $size[ $screen_size['size'][ $i ] ][ $screen_size['minmax'][ $i ] ] = $screen_size['mode'][ $i ];
@@ -1034,7 +1037,7 @@ class CustomSidebarsEditor extends CustomSidebars {
1034
  if ( ! empty( $sidebars ) ) {
1035
  foreach ( $sidebars as $sb_id ) {
1036
  if ( isset( $_POST[ 'cs_replacement_' . $sb_id ] ) ) {
1037
- $replacement = $_POST[ 'cs_replacement_' . $sb_id ];
1038
  if ( ! empty( $replacement ) ) {
1039
  $data[ $sb_id ] = $replacement;
1040
  }
@@ -1329,7 +1332,7 @@ class CustomSidebarsEditor extends CustomSidebars {
1329
  $data = CustomSidebars::get_post_meta( $post_id );
1330
  foreach ( $this->modifiable as $key ) {
1331
  $k = sprintf( 'cs_replacement_%s', $key );
1332
- $value = isset( $_REQUEST[ $k ] )? $_REQUEST[ $k ]:'-';
1333
  if ( '-' != $value ) {
1334
  $update = true;
1335
  $data[ $key ] = $value;
120
  $view_file = '';
121
  $sb_id = '';
122
  if ( isset( $_POST['sb'] ) ) {
123
+ $sb_id = sanitize_key($_POST['sb']);
124
  }
125
  switch ( $action ) {
126
  case 'get':
146
  __( 'You do not have permission for this', 'custom-sidebars' )
147
  );
148
  } else {
149
+ $sidebar_data = map_deep( $_POST, 'sanitize_text_field' );
150
  switch ( $action ) {
151
  // Return details for the specified sidebar.
152
  case 'get':
154
  * check nonce
155
  */
156
  if (
157
+ ! isset( $sidebar_data['_wpnonce'] )
158
+ || ! wp_verify_nonce( $sidebar_data['_wpnonce'], 'custom-sidebars-get' )
159
  ) {
160
  $req = self::req_err(
161
  $req,
175
  break;
176
  // Save or insert the specified sidebar.
177
  case 'save':
178
+ $req = $this->save_item( $req, $sidebar_data );
179
  break;
180
  // Delete the specified sidebar.
181
  case 'delete':
182
  $req->sidebar = $sb_data;
183
+ $req = $this->delete_item( $req, $sidebar_data );
184
  break;
185
  // Get the location data.
186
  case 'get-location':
294
  $name = sprintf( '%s_%s', $prefix, $sufix );
295
  $sidebar[ $name ] = '';
296
  if ( isset( $_POST[ $name ] ) ) {
297
+ $sidebar[ $name ] = stripslashes( trim( sanitize_text_field($_POST[ $name ]) ) );
298
  }
299
  }
300
  }
412
  * @return object Updated response object.
413
  */
414
  private function set_replaceable( $req ) {
415
+ $state = @sanitize_text_field($_POST['state']);
416
  $options = self::get_options();
417
  if ( 'true' === $state ) {
418
  $req->status = true;
496
  array(
497
  'order_by' => 'display_name',
498
  'fields' => array( 'ID', 'display_name' ),
499
+ 'role' => 'author',
500
  )
501
  );
502
  // Collect required data for all posttypes.
667
  /**
668
  * check nonce
669
  */
670
+ $sidebar_data = map_deep( $_POST, 'sanitize_text_field' );
671
+
672
  if (
673
+ ! isset( $sidebar_data['_wpnonce'] )
674
+ || ! wp_verify_nonce( $sidebar_data['_wpnonce'], 'custom-sidebars-set-location' )
675
  ) {
676
  return self::req_err(
677
  $req,
686
  $raw_taxonomies = array(
687
  'custom' => self::get_taxonomies( 'names', false ),
688
  );
689
+ foreach ( $sidebar_data as $key => $value ) {
690
  if ( strlen( $key ) > 8 && '___cs___' == substr( $key, 0, 8 ) ) {
691
  list( $prefix, $id ) = explode( '___', substr( $key, 8 ) );
692
  if ( ! isset( $data[ $prefix ] ) ) {
708
  array(
709
  'order_by' => 'display_name',
710
  'fields' => array( 'ID', 'display_name' ),
711
+ 'role' => 'author',
712
  )
713
  );
714
  // == Update the options
869
  && is_array( $_POST['cs-screen']['minmax'] )
870
  && is_array( $_POST['cs-screen']['size'] )
871
  ) {
872
+ $screen_size = map_deep( $_POST['cs-screen'], 'sanitize_text_field' );
873
  for ( $i = 0; $i < count( $screen_size['size'] ); $i++ ) {
874
  if ( ! empty( $screen_size['size'][ $i ] ) ) {
875
  $size[ $screen_size['size'][ $i ] ][ $screen_size['minmax'][ $i ] ] = $screen_size['mode'][ $i ];
1037
  if ( ! empty( $sidebars ) ) {
1038
  foreach ( $sidebars as $sb_id ) {
1039
  if ( isset( $_POST[ 'cs_replacement_' . $sb_id ] ) ) {
1040
+ $replacement = map_deep( $_POST[ 'cs_replacement_' . $sb_id], 'sanitize_text_field' );
1041
  if ( ! empty( $replacement ) ) {
1042
  $data[ $sb_id ] = $replacement;
1043
  }
1332
  $data = CustomSidebars::get_post_meta( $post_id );
1333
  foreach ( $this->modifiable as $key ) {
1334
  $k = sprintf( 'cs_replacement_%s', $key );
1335
+ $value = isset( $_REQUEST[ $k ] )? map_deep($_REQUEST[ $k ],'sanitize_text_field'):'-';
1336
  if ( '-' != $value ) {
1337
  $update = true;
1338
  $data[ $key ] = $value;
inc/class-custom-sidebars-explain.php CHANGED
@@ -152,7 +152,7 @@ class CustomSidebarsExplain extends CustomSidebars {
152
  <h3>Sidebar Infos</h3>
153
  <ul>
154
  <?php foreach ( $this->infos as $info ) : ?>
155
- <li><?php echo $info; ?></li>
156
  <?php endforeach; ?>
157
  </ul>
158
  </div>
152
  <h3>Sidebar Infos</h3>
153
  <ul>
154
  <?php foreach ( $this->infos as $info ) : ?>
155
+ <li><?php CustomSidebars::wp_kses_wf($info); ?></li>
156
  <?php endforeach; ?>
157
  </ul>
158
  </div>
inc/class-custom-sidebars-export.php CHANGED
@@ -63,7 +63,7 @@ class CustomSidebarsExport extends CustomSidebars {
63
  */
64
  public function widget_header() {
65
  ?>
66
- <a href="#" class="cs-action btn-export"><?php _e( 'Import / Export Sidebars', 'custom-sidebars' ); ?></a>
67
  <?php
68
  }
69
 
@@ -162,7 +162,7 @@ class CustomSidebarsExport extends CustomSidebars {
162
  'csb_version' => $csb_info['Version'],
163
  'theme_name' => $theme->get( 'Name' ),
164
  'theme_version' => $theme->get( 'Version' ),
165
- 'description' => htmlspecialchars( @$_POST['export-description'] ),
166
  );
167
 
168
  // Export the custom sidebars.
@@ -303,12 +303,7 @@ class CustomSidebarsExport extends CustomSidebars {
303
  */
304
  $version = phpversion();
305
  $compare = version_compare( $version, '5.3', '<' );
306
- if ( $compare ) {
307
- $content = json_encode( $data );
308
- } else {
309
- $option = defined( 'JSON_PRETTY_PRINT' )? JSON_PRETTY_PRINT : null;
310
- $content = json_encode( $data, $option );
311
- }
312
  // Send the download headers.
313
  header( 'Pragma: public' );
314
  header( 'Expires: 0' );
@@ -317,11 +312,11 @@ class CustomSidebarsExport extends CustomSidebars {
317
  header( 'Content-type: application/json' );
318
  header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
319
  header( 'Content-Transfer-Encoding: binary' );
320
- header( 'Content-Length: ' . strlen( $content ) );
321
  /**
322
  * Finally send the export-file content.
323
  */
324
- echo $content;
325
  exit;
326
  }
327
 
@@ -476,7 +471,7 @@ class CustomSidebarsExport extends CustomSidebars {
476
  self::json_response( $req );
477
  }
478
 
479
- $data = json_decode( base64_decode( @$_POST['import_data'] ), true );
480
 
481
  if (
482
  is_array( $data['meta'] ) &&
@@ -750,7 +745,9 @@ class CustomSidebarsExport extends CustomSidebars {
750
  // =====================================================================
751
  // Import widgets
752
  $widget_count = 0;
753
- $def_sidebars = wp_get_sidebars_widgets();
 
 
754
  $widget_list = array();
755
  $orig_POST = $_POST;
756
  /**
63
  */
64
  public function widget_header() {
65
  ?>
66
+ <a href="#" class="cs-action btn-export"><?php esc_html_e( 'Import / Export Sidebars', 'custom-sidebars' ); ?></a>
67
  <?php
68
  }
69
 
162
  'csb_version' => $csb_info['Version'],
163
  'theme_name' => $theme->get( 'Name' ),
164
  'theme_version' => $theme->get( 'Version' ),
165
+ 'description' => sanitize_text_field( @$_POST['export-description'] ),
166
  );
167
 
168
  // Export the custom sidebars.
303
  */
304
  $version = phpversion();
305
  $compare = version_compare( $version, '5.3', '<' );
306
+
 
 
 
 
 
307
  // Send the download headers.
308
  header( 'Pragma: public' );
309
  header( 'Expires: 0' );
312
  header( 'Content-type: application/json' );
313
  header( 'Content-Disposition: attachment; filename="' . $filename . '"' );
314
  header( 'Content-Transfer-Encoding: binary' );
315
+ header( 'Content-Length: ' . strlen( wp_json_encode($data) ) );
316
  /**
317
  * Finally send the export-file content.
318
  */
319
+ echo wp_json_encode($data);
320
  exit;
321
  }
322
 
471
  self::json_response( $req );
472
  }
473
 
474
+ $data = json_decode( base64_decode( @sanitize_textarea_field($_POST['import_data']) ), true );
475
 
476
  if (
477
  is_array( $data['meta'] ) &&
745
  // =====================================================================
746
  // Import widgets
747
  $widget_count = 0;
748
+ $def_sidebars = get_option( 'sidebars_widgets', array() );
749
+
750
+
751
  $widget_list = array();
752
  $orig_POST = $_POST;
753
  /**
inc/class-custom-sidebars-replacer.php CHANGED
@@ -119,9 +119,9 @@ class CustomSidebarsReplacer extends CustomSidebars {
119
  $css_before = array_unique( $css_before );
120
  echo '<style type="text/css" media="screen">';
121
  echo PHP_EOL;
122
- echo implode( PHP_EOL, $css_before );
123
  echo PHP_EOL;
124
- echo $css;
125
  echo '</style>';
126
  echo PHP_EOL;
127
 
119
  $css_before = array_unique( $css_before );
120
  echo '<style type="text/css" media="screen">';
121
  echo PHP_EOL;
122
+ CustomSidebars::wp_kses_wf(implode( PHP_EOL, $css_before ));
123
  echo PHP_EOL;
124
+ CustomSidebars::wp_kses_wf( $css );
125
  echo '</style>';
126
  echo PHP_EOL;
127
 
inc/class-custom-sidebars-visibility.php CHANGED
@@ -197,59 +197,59 @@ class CustomSidebarsVisibility extends CustomSidebars {
197
  ?>
198
  <input type="hidden" name="csb-visibility-button" value="0" />
199
  <?php if ( ! isset( $_POST['csb-visibility-button'] ) ) : ?>
200
- <a href="#" class="button csb-visibility-button"><span class="dashicons dashicons-visibility"></span> <?php _e( 'Visibility', 'custom-sidebars' ); ?></a>
201
  <?php else : ?>
202
- <script>jQuery(function() { jQuery('.csb-visibility-<?php echo esc_js( $widget->id ); ?>').closest('.widget').trigger('csb:update'); }); </script>
203
  <?php endif; ?>
204
 
205
  <div class="csb-visibility-inner" <?php if ( ! $is_visible ) : ?>style="display:none"<?php endif; ?>>
206
  <input type="hidden" name="csb_visible" class="csb-visible-flag" value="<?php echo esc_attr( $is_visible ); ?>" />
207
 
208
  <div class="csb-option-row csb-action">
209
- <label for="<?php echo esc_attr( $widget->id ); ?>-action" class="lbl-show-if toggle-action" <?php if ( ! $action_show ) : ?>style="display:none"<?php endif; ?>><?php _e( '<b>Show</b> widget if:', 'custom-sidebars' ); ?></label>
210
- <label for="<?php echo esc_attr( $widget->id ); ?>-action" class="lbl-hide-if toggle-action" <?php if ( $action_show ) : ?>style="display:none"<?php endif; ?>><?php _e( '<b>Hide</b> widget if:', 'custom-sidebars' ); ?></label>
211
  <input type="hidden" id="<?php echo esc_attr( $widget->id ); ?>-action" name="csb_visibility[action]" value="<?php echo esc_attr( $data['action'] ); ?>" />
212
  <i class="dashicons dashicons-plus choose-filters show-on-hover action"></i>
213
  <ul class="dropdown" style="display:none">
214
- <li class="csb-group"><?php _e( 'Filters', 'custom-sidebars' ); ?></li>
215
  <li class="add-filter"
216
  data-for=".csb-date"
217
  style="display:none">
218
- <?php _e( 'Date', 'custom-sidebars' ); ?>
219
  </li>
220
  <li class="add-filter"
221
  data-for=".csb-guest"
222
  <?php if ( ! empty( $cond['guest'] ) ) : ?>style="display:none"<?php endif; ?>>
223
- <?php _e( 'Guests', 'custom-sidebars' ); ?>
224
  </li>
225
  <li class="add-filter"
226
  data-for=".csb-roles"
227
  <?php if ( ! empty( $cond['roles'] ) ) : ?>style="display:none"<?php endif; ?>>
228
- <?php _e( 'Roles', 'custom-sidebars' ); ?>
229
  </li>
230
  <?php if ( false != $membership_levels ) : ?>
231
  <li class="add-filter"
232
  data-for=".csb-membership">
233
- <?php _e( 'Membership', 'custom-sidebars' ); ?>
234
  </li>
235
  <?php endif; ?>
236
  <?php if ( false != $membership2_items ) : ?>
237
  <li class="add-filter"
238
  data-for=".csb-membership2">
239
- <?php _e( 'Membership2', 'custom-sidebars' ); ?>
240
  </li>
241
  <?php endif; ?>
242
  <li class="add-filter"
243
  data-for=".csb-pagetypes"
244
  <?php if ( ! empty( $cond['pagetypes'] ) ) : ?>style="display:none"<?php endif; ?>>
245
- <?php _e( 'Special Pages', 'custom-sidebars' ); ?>
246
  </li>
247
  <li class="add-filter"
248
  data-for=".csb-posttypes"
249
  <?php if ( ! empty( $cond['posttypes'] ) ) : ?>style="display:none"<?php endif; ?>>
250
- <?php _e( 'For Post Type', 'custom-sidebars' ); ?>
251
  </li>
252
- <li class="csb-group"><?php _e( 'Taxonomy', 'custom-sidebars' ); ?></li>
253
  <?php foreach ( $tax_list as $tax_item ) :
254
  $row_id = 'tax-' . $tax_item->name;
255
  ?>
@@ -266,38 +266,20 @@ class CustomSidebarsVisibility extends CustomSidebars {
266
  <?php $block_name = 'csb_visibility[conditions]'; ?>
267
 
268
  <div class="csb-option-row csb-always" <?php if ( ! $data['always'] ) : ?>style="display:none"<?php endif; ?>>
269
- <label><?php _e( 'Always', 'custom-sidebars' ); ?></label>
270
  </div>
271
 
272
- <?php /* DATE */ /* ?>
273
- <div class="csb-option-row csb-date" style="display:none">
274
- <label for="<?php echo esc_attr( $widget->id ); ?>-date">
275
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
276
- <?php _e( 'On these dates', 'custom-sidebars' ); ?>
277
- </label>
278
- <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
279
- <input type="text"
280
- id="<?php echo esc_attr( $widget->id ); ?>-date"
281
- name="<?php echo esc_attr( $block_name ); ?>[date][from]"
282
- value="<?php echo esc_attr( @$cond['date']['from'] ); ?>" />
283
- <input type="text"
284
- id="<?php echo esc_attr( $widget->id ); ?>-date-to"
285
- name="<?php echo esc_attr( $block_name ); ?>[date][to]"
286
- value="<?php echo esc_attr( @$cond['date']['to'] ); ?>" />
287
- </div>
288
- <?php */ ?>
289
-
290
  <?php /* GUEST */ ?>
291
  <div class="csb-option-row csb-guest" <?php if ( empty( $cond['guest'] ) ) : ?>style="display:none"<?php endif; ?>>
292
  <label for="<?php echo esc_attr( $widget->id ); ?>-guest1" style="padding-top:10px;margin-bottom:0">
293
  <input id="<?php echo esc_attr( $widget->id ); ?>-guest1" type="radio" name="<?php echo esc_attr( $block_name ); ?>[guest][]" value="guest" <?php checked( in_array( 'guest', $cond['guest'] ) ); ?> />
294
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
295
- <?php _e( 'User is not logged-in (Guest)', 'custom-sidebars' ); ?><br />
296
  </label>
297
  <label for="<?php echo esc_attr( $widget->id ); ?>-guest2" style="border:0;margin-bottom:0">
298
  <input id="<?php echo esc_attr( $widget->id ); ?>-guest2" type="radio" name="<?php echo esc_attr( $block_name ); ?>[guest][]" value="member" <?php checked( in_array( 'member', $cond['guest'] ) ); ?> />
299
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
300
- <?php _e( 'User is logged-in (Member)', 'custom-sidebars' ); ?>
301
  </label>
302
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
303
  </div>
@@ -305,8 +287,8 @@ class CustomSidebarsVisibility extends CustomSidebars {
305
  <?php /* ROLES */ ?>
306
  <div class="csb-option-row csb-roles" <?php if ( empty( $cond['roles'] ) ) : ?>style="display:none"<?php endif; ?>>
307
  <label for="<?php echo esc_attr( $widget->id ); ?>-roles">
308
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
309
- <?php _e( 'User has role', 'custom-sidebars' ); ?>
310
  </label>
311
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
312
  <select id="<?php echo esc_attr( $widget->id ); ?>-roles" name="<?php echo esc_attr( $block_name ); ?>[roles][]" multiple="multiple">
@@ -324,8 +306,8 @@ class CustomSidebarsVisibility extends CustomSidebars {
324
  <?php if ( is_array( $membership_levels ) ) : ?>
325
  <div class="csb-option-row csb-membership" <?php if ( empty( $cond['membership'] ) ) : ?>style="display:none"<?php endif; ?>>
326
  <label for="<?php echo esc_attr( $widget->id ); ?>-membership">
327
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
328
- <?php _e( 'User has Membership Level', 'custom-sidebars' ); ?>
329
  </label>
330
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
331
  <select id="<?php echo esc_attr( $widget->id ); ?>-membership" name="<?php echo esc_attr( $block_name ); ?>[membership][]" multiple="multiple">
@@ -333,7 +315,7 @@ class CustomSidebarsVisibility extends CustomSidebars {
333
  <?php $is_selected = in_array( $level['id'], $cond['membership'] ); ?>
334
  <option <?php selected( $is_selected ); ?> value="<?php echo esc_attr( $level['id'] ); ?>">
335
  <?php echo esc_html( $level['level_title'] ); ?>
336
- <?php if ( ! $level['level_active'] ) { _e( '(inactive)', 'custom-sidebars' ); } ?>
337
  </option>
338
  <?php endforeach; ?>
339
  </select>
@@ -344,8 +326,8 @@ class CustomSidebarsVisibility extends CustomSidebars {
344
  <?php if ( is_array( $membership2_items ) ) : ?>
345
  <div class="csb-option-row csb-membership2" <?php if ( empty( $cond['membership2'] ) ) : ?>style="display:none"<?php endif; ?>>
346
  <label for="<?php echo esc_attr( $widget->id ); ?>-membership2">
347
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
348
- <?php _e( 'User has Membership', 'custom-sidebars' ); ?>
349
  </label>
350
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
351
  <select id="<?php echo esc_attr( $widget->id ); ?>-membership2" name="<?php echo esc_attr( $block_name ); ?>[membership2][]" multiple="multiple">
@@ -353,7 +335,7 @@ class CustomSidebarsVisibility extends CustomSidebars {
353
  <?php $is_selected = in_array( $item->id, $cond['membership2'] ); ?>
354
  <option <?php selected( $is_selected ); ?> value="<?php echo esc_attr( $item->id ); ?>">
355
  <?php echo esc_html( $item->name ); ?>
356
- <?php if ( ! $item->active ) { _e( '(inactive)', 'custom-sidebars' ); } ?>
357
  </option>
358
  <?php endforeach; ?>
359
  </select>
@@ -363,8 +345,8 @@ class CustomSidebarsVisibility extends CustomSidebars {
363
  <?php /* PAGE TYPES */ ?>
364
  <div class="csb-option-row csb-pagetypes" <?php if ( empty( $cond['pagetypes'] ) ) : ?>style="display:none"<?php endif; ?>>
365
  <label for="<?php echo esc_attr( $widget->id ); ?>-pagetypes">
366
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
367
- <?php _e( 'On these special pages', 'custom-sidebars' ); ?>
368
  </label>
369
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
370
  <select id="<?php echo esc_attr( $widget->id ); ?>-pagetypes" name="<?php echo esc_attr( $block_name ); ?>[pagetypes][]" multiple="multiple">
@@ -382,8 +364,8 @@ class CustomSidebarsVisibility extends CustomSidebars {
382
  <?php if ( empty( $cond['posttypes'] ) ) : ?>style="display:none"<?php endif; ?>>
383
 
384
  <label for="<?php echo esc_attr( $widget->id ); ?>-posttypes">
385
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
386
- <?php _e( 'On any page of these types', 'custom-sidebars' ); ?>
387
  </label>
388
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
389
  <select class="posttype"
@@ -466,7 +448,7 @@ class CustomSidebarsVisibility extends CustomSidebars {
466
  <div class="csb-option-row csb-<?php echo esc_attr( $row_id ); ?>"
467
  <?php if ( empty( $cond[ $row_id ] ) ) : ?>style="display:none"<?php endif; ?>>
468
  <label for="<?php echo esc_attr( $widget->id ); ?>-<?php echo esc_attr( $row_id ); ?>">
469
- <span class="csb-and" style="display:none"><?php _e( 'AND', 'custom-sidebars' ); ?></span>
470
  <?php echo esc_html( $tax_item->labels->name ); ?>
471
  </label>
472
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
@@ -560,7 +542,8 @@ foreach ( $tags as $one ) {
560
  * @return array Modified settings.
561
  */
562
  public function admin_widget_update( $instance, $new_instance, $old_instance ) {
563
- $data = $this->get_widget_data( $_POST );
 
564
  foreach ( $data['conditions'] as $key => $list ) {
565
  if ( ! is_array( $list ) ) {
566
  $list = explode( ',', $list );
@@ -965,9 +948,9 @@ foreach ( $tags as $one ) {
965
 
966
  $data = array();
967
  if ( isset( $_GET['tag'] ) ) {
968
- $data = $this->ajax_data_terms( @$_GET['tag'], @$_REQUEST['q'] );
969
  } elseif ( isset( $_GET['posttype'] ) ) {
970
- $data = $this->ajax_data_posts( @$_GET['posttype'], @$_REQUEST['q'] );
971
  }
972
 
973
  self::json_response( array( 'items' => $data ) );
197
  ?>
198
  <input type="hidden" name="csb-visibility-button" value="0" />
199
  <?php if ( ! isset( $_POST['csb-visibility-button'] ) ) : ?>
200
+ <a href="#" class="button csb-visibility-button"><span class="dashicons dashicons-visibility"></span> <?php esc_html_e( 'Visibility', 'custom-sidebars' ); ?></a>
201
  <?php else : ?>
202
+ <script>jQuery(function() { jQuery('.csb-visibility-<?php esc_attr_e( $widget->id ); ?>').closest('.widget').trigger('csb:update'); }); </script>
203
  <?php endif; ?>
204
 
205
  <div class="csb-visibility-inner" <?php if ( ! $is_visible ) : ?>style="display:none"<?php endif; ?>>
206
  <input type="hidden" name="csb_visible" class="csb-visible-flag" value="<?php echo esc_attr( $is_visible ); ?>" />
207
 
208
  <div class="csb-option-row csb-action">
209
+ <label for="<?php echo esc_attr( $widget->id ); ?>-action" class="lbl-show-if toggle-action" <?php if ( ! $action_show ) : ?>style="display:none"<?php endif; ?>><?php CustomSidebars::wp_kses_wf(__( '<b>Show</b> widget if:', 'custom-sidebars' )); ?></label>
210
+ <label for="<?php echo esc_attr( $widget->id ); ?>-action" class="lbl-hide-if toggle-action" <?php if ( $action_show ) : ?>style="display:none"<?php endif; ?>><?php CustomSidebars::wp_kses_wf(__( '<b>Hide</b> widget if:', 'custom-sidebars' )); ?></label>
211
  <input type="hidden" id="<?php echo esc_attr( $widget->id ); ?>-action" name="csb_visibility[action]" value="<?php echo esc_attr( $data['action'] ); ?>" />
212
  <i class="dashicons dashicons-plus choose-filters show-on-hover action"></i>
213
  <ul class="dropdown" style="display:none">
214
+ <li class="csb-group"><?php esc_html_e( 'Filters', 'custom-sidebars' ); ?></li>
215
  <li class="add-filter"
216
  data-for=".csb-date"
217
  style="display:none">
218
+ <?php esc_html_e( 'Date', 'custom-sidebars' ); ?>
219
  </li>
220
  <li class="add-filter"
221
  data-for=".csb-guest"
222
  <?php if ( ! empty( $cond['guest'] ) ) : ?>style="display:none"<?php endif; ?>>
223
+ <?php esc_html_e( 'Guests', 'custom-sidebars' ); ?>
224
  </li>
225
  <li class="add-filter"
226
  data-for=".csb-roles"
227
  <?php if ( ! empty( $cond['roles'] ) ) : ?>style="display:none"<?php endif; ?>>
228
+ <?php esc_html_e( 'Roles', 'custom-sidebars' ); ?>
229
  </li>
230
  <?php if ( false != $membership_levels ) : ?>
231
  <li class="add-filter"
232
  data-for=".csb-membership">
233
+ <?php esc_html_e( 'Membership', 'custom-sidebars' ); ?>
234
  </li>
235
  <?php endif; ?>
236
  <?php if ( false != $membership2_items ) : ?>
237
  <li class="add-filter"
238
  data-for=".csb-membership2">
239
+ <?php esc_html_e( 'Membership2', 'custom-sidebars' ); ?>
240
  </li>
241
  <?php endif; ?>
242
  <li class="add-filter"
243
  data-for=".csb-pagetypes"
244
  <?php if ( ! empty( $cond['pagetypes'] ) ) : ?>style="display:none"<?php endif; ?>>
245
+ <?php esc_html_e( 'Special Pages', 'custom-sidebars' ); ?>
246
  </li>
247
  <li class="add-filter"
248
  data-for=".csb-posttypes"
249
  <?php if ( ! empty( $cond['posttypes'] ) ) : ?>style="display:none"<?php endif; ?>>
250
+ <?php esc_html_e( 'For Post Type', 'custom-sidebars' ); ?>
251
  </li>
252
+ <li class="csb-group"><?php esc_html_e( 'Taxonomy', 'custom-sidebars' ); ?></li>
253
  <?php foreach ( $tax_list as $tax_item ) :
254
  $row_id = 'tax-' . $tax_item->name;
255
  ?>
266
  <?php $block_name = 'csb_visibility[conditions]'; ?>
267
 
268
  <div class="csb-option-row csb-always" <?php if ( ! $data['always'] ) : ?>style="display:none"<?php endif; ?>>
269
+ <label><?php esc_html_e( 'Always', 'custom-sidebars' ); ?></label>
270
  </div>
271
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
272
  <?php /* GUEST */ ?>
273
  <div class="csb-option-row csb-guest" <?php if ( empty( $cond['guest'] ) ) : ?>style="display:none"<?php endif; ?>>
274
  <label for="<?php echo esc_attr( $widget->id ); ?>-guest1" style="padding-top:10px;margin-bottom:0">
275
  <input id="<?php echo esc_attr( $widget->id ); ?>-guest1" type="radio" name="<?php echo esc_attr( $block_name ); ?>[guest][]" value="guest" <?php checked( in_array( 'guest', $cond['guest'] ) ); ?> />
276
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
277
+ <?php esc_html_e( 'User is not logged-in (Guest)', 'custom-sidebars' ); ?><br />
278
  </label>
279
  <label for="<?php echo esc_attr( $widget->id ); ?>-guest2" style="border:0;margin-bottom:0">
280
  <input id="<?php echo esc_attr( $widget->id ); ?>-guest2" type="radio" name="<?php echo esc_attr( $block_name ); ?>[guest][]" value="member" <?php checked( in_array( 'member', $cond['guest'] ) ); ?> />
281
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
282
+ <?php esc_html_e( 'User is logged-in (Member)', 'custom-sidebars' ); ?>
283
  </label>
284
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
285
  </div>
287
  <?php /* ROLES */ ?>
288
  <div class="csb-option-row csb-roles" <?php if ( empty( $cond['roles'] ) ) : ?>style="display:none"<?php endif; ?>>
289
  <label for="<?php echo esc_attr( $widget->id ); ?>-roles">
290
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
291
+ <?php esc_html_e( 'User has role', 'custom-sidebars' ); ?>
292
  </label>
293
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
294
  <select id="<?php echo esc_attr( $widget->id ); ?>-roles" name="<?php echo esc_attr( $block_name ); ?>[roles][]" multiple="multiple">
306
  <?php if ( is_array( $membership_levels ) ) : ?>
307
  <div class="csb-option-row csb-membership" <?php if ( empty( $cond['membership'] ) ) : ?>style="display:none"<?php endif; ?>>
308
  <label for="<?php echo esc_attr( $widget->id ); ?>-membership">
309
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
310
+ <?php esc_html_e( 'User has Membership Level', 'custom-sidebars' ); ?>
311
  </label>
312
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
313
  <select id="<?php echo esc_attr( $widget->id ); ?>-membership" name="<?php echo esc_attr( $block_name ); ?>[membership][]" multiple="multiple">
315
  <?php $is_selected = in_array( $level['id'], $cond['membership'] ); ?>
316
  <option <?php selected( $is_selected ); ?> value="<?php echo esc_attr( $level['id'] ); ?>">
317
  <?php echo esc_html( $level['level_title'] ); ?>
318
+ <?php if ( ! $level['level_active'] ) { esc_html_e( '(inactive)', 'custom-sidebars' ); } ?>
319
  </option>
320
  <?php endforeach; ?>
321
  </select>
326
  <?php if ( is_array( $membership2_items ) ) : ?>
327
  <div class="csb-option-row csb-membership2" <?php if ( empty( $cond['membership2'] ) ) : ?>style="display:none"<?php endif; ?>>
328
  <label for="<?php echo esc_attr( $widget->id ); ?>-membership2">
329
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
330
+ <?php esc_html_e( 'User has Membership', 'custom-sidebars' ); ?>
331
  </label>
332
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
333
  <select id="<?php echo esc_attr( $widget->id ); ?>-membership2" name="<?php echo esc_attr( $block_name ); ?>[membership2][]" multiple="multiple">
335
  <?php $is_selected = in_array( $item->id, $cond['membership2'] ); ?>
336
  <option <?php selected( $is_selected ); ?> value="<?php echo esc_attr( $item->id ); ?>">
337
  <?php echo esc_html( $item->name ); ?>
338
+ <?php if ( ! $item->active ) { esc_html_e( '(inactive)', 'custom-sidebars' ); } ?>
339
  </option>
340
  <?php endforeach; ?>
341
  </select>
345
  <?php /* PAGE TYPES */ ?>
346
  <div class="csb-option-row csb-pagetypes" <?php if ( empty( $cond['pagetypes'] ) ) : ?>style="display:none"<?php endif; ?>>
347
  <label for="<?php echo esc_attr( $widget->id ); ?>-pagetypes">
348
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
349
+ <?php esc_html_e( 'On these special pages', 'custom-sidebars' ); ?>
350
  </label>
351
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
352
  <select id="<?php echo esc_attr( $widget->id ); ?>-pagetypes" name="<?php echo esc_attr( $block_name ); ?>[pagetypes][]" multiple="multiple">
364
  <?php if ( empty( $cond['posttypes'] ) ) : ?>style="display:none"<?php endif; ?>>
365
 
366
  <label for="<?php echo esc_attr( $widget->id ); ?>-posttypes">
367
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
368
+ <?php esc_html_e( 'On any page of these types', 'custom-sidebars' ); ?>
369
  </label>
370
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
371
  <select class="posttype"
448
  <div class="csb-option-row csb-<?php echo esc_attr( $row_id ); ?>"
449
  <?php if ( empty( $cond[ $row_id ] ) ) : ?>style="display:none"<?php endif; ?>>
450
  <label for="<?php echo esc_attr( $widget->id ); ?>-<?php echo esc_attr( $row_id ); ?>">
451
+ <span class="csb-and" style="display:none"><?php esc_html_e( 'AND', 'custom-sidebars' ); ?></span>
452
  <?php echo esc_html( $tax_item->labels->name ); ?>
453
  </label>
454
  <i class="dashicons dashicons-trash clear-filter show-on-hover action"></i>
542
  * @return array Modified settings.
543
  */
544
  public function admin_widget_update( $instance, $new_instance, $old_instance ) {
545
+ $widget_data = map_deep( $_POST, 'sanitize_text_field' );
546
+ $data = $this->get_widget_data( $widget_data );
547
  foreach ( $data['conditions'] as $key => $list ) {
548
  if ( ! is_array( $list ) ) {
549
  $list = explode( ',', $list );
948
 
949
  $data = array();
950
  if ( isset( $_GET['tag'] ) ) {
951
+ $data = $this->ajax_data_terms( @sanitize_text_field($_GET['tag']), @sanitize_text_field($_REQUEST['q']) );
952
  } elseif ( isset( $_GET['posttype'] ) ) {
953
+ $data = $this->ajax_data_posts( @sanitize_text_field($_GET['posttype']), @sanitize_text_field($_REQUEST['q']) );
954
  }
955
 
956
  self::json_response( array( 'items' => $data ) );
inc/class-custom-sidebars.php CHANGED
@@ -33,13 +33,6 @@ class CustomSidebars {
33
  */
34
  protected static $cap_required = 'edit_theme_options';
35
 
36
- /**
37
- * URL to the documentation/info page of the pro plugin
38
- *
39
- * @var string
40
- */
41
- public static $pro_url = 'https://premium.wpmudev.org/project/custom-sidebars-pro/';
42
-
43
  /**
44
  * Flag that specifies if the page is loaded in accessibility mode.
45
  * This plugin does not support accessibility mode!
@@ -125,7 +118,7 @@ class CustomSidebars {
125
  '<strong>',
126
  '</strong><br />',
127
  "<code>remove_theme_support( 'widgets-block-editor' );</code>",
128
- "<a href=\"$post_link\" target=\"_blank\">",
129
  '</a>'
130
  );
131
  ?>
@@ -276,7 +269,7 @@ class CustomSidebars {
276
  }
277
 
278
  // Find out if the page is loaded in accessibility mode.
279
- $flag = isset( $_GET['widgets-access'] ) ? $_GET['widgets-access'] : get_user_setting( 'widgets_access' );
280
  self::$accessibility_mode = ( 'on' == $flag );
281
 
282
  // We don't support accessibility mode. Display a note to the user.
@@ -315,7 +308,7 @@ class CustomSidebars {
315
 
316
  // Display a message after import.
317
  if ( ! empty( $_GET['cs-msg'] ) ) {
318
- $msg = base64_decode( $_GET['cs-msg'] );
319
 
320
  // Prevent XSS attacks...
321
  $kses_args = array(
@@ -983,7 +976,7 @@ class CustomSidebars {
983
  ob_end_clean(); }
984
 
985
  header( 'Content-Type: text/plain' );
986
- echo '' . $data;
987
  die();
988
  }
989
 
@@ -1032,8 +1025,8 @@ class CustomSidebars {
1032
  // Catch any unexpected output via output buffering.
1033
  ob_start();
1034
 
1035
- $action = isset( $_POST['do'] ) ? $_POST['do'] : null;
1036
- $get_action = isset( $_GET['do'] ) ? $_GET['do'] : null;
1037
 
1038
  /**
1039
  * Notify all extensions about the ajax call.
@@ -1116,14 +1109,6 @@ class CustomSidebars {
1116
  array_unshift($actions, $widgets);
1117
  }
1118
 
1119
- /*
1120
- $url = 'https://wordpress.org/support/plugin/custom-sidebars';
1121
- $actions['support'] = sprintf(
1122
- '<a href="%s">%s</a>',
1123
- esc_url( $url ),
1124
- __( 'Support', 'custom-sidebars' )
1125
- );
1126
- */
1127
  return $actions;
1128
  }
1129
 
@@ -1251,4 +1236,306 @@ class CustomSidebars {
1251
  private static function sort_by_label( $a, $b ) {
1252
  return strcmp( $a->label, $b->label );
1253
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1254
  };
33
  */
34
  protected static $cap_required = 'edit_theme_options';
35
 
 
 
 
 
 
 
 
36
  /**
37
  * Flag that specifies if the page is loaded in accessibility mode.
38
  * This plugin does not support accessibility mode!
118
  '<strong>',
119
  '</strong><br />',
120
  "<code>remove_theme_support( 'widgets-block-editor' );</code>",
121
+ "<a href=\"" . esc_url($post_link) . "\" target=\"_blank\">",
122
  '</a>'
123
  );
124
  ?>
269
  }
270
 
271
  // Find out if the page is loaded in accessibility mode.
272
+ $flag = isset( $_GET['widgets-access'] ) ? sanitize_text_field($_GET['widgets-access']) : get_user_setting( 'widgets_access' );
273
  self::$accessibility_mode = ( 'on' == $flag );
274
 
275
  // We don't support accessibility mode. Display a note to the user.
308
 
309
  // Display a message after import.
310
  if ( ! empty( $_GET['cs-msg'] ) ) {
311
+ $msg = base64_decode( sanitize_text_field($_GET['cs-msg']) );
312
 
313
  // Prevent XSS attacks...
314
  $kses_args = array(
976
  ob_end_clean(); }
977
 
978
  header( 'Content-Type: text/plain' );
979
+ CustomSidebars::wp_kses_wf('' . $data);
980
  die();
981
  }
982
 
1025
  // Catch any unexpected output via output buffering.
1026
  ob_start();
1027
 
1028
+ $action = isset( $_POST['do'] ) ? sanitize_key($_POST['do']) : null;
1029
+ $get_action = isset( $_GET['do'] ) ? sanitize_key($_GET['do']) : null;
1030
 
1031
  /**
1032
  * Notify all extensions about the ajax call.
1109
  array_unshift($actions, $widgets);
1110
  }
1111
 
 
 
 
 
 
 
 
 
1112
  return $actions;
1113
  }
1114
 
1236
  private static function sort_by_label( $a, $b ) {
1237
  return strcmp( $a->label, $b->label );
1238
  }
1239
+
1240
+ public static function wp_kses_wf($html)
1241
+ {
1242
+ add_filter('safe_style_css', function ($styles) {
1243
+ $styles_wf = array(
1244
+ 'text-align',
1245
+ 'margin',
1246
+ 'color',
1247
+ 'float',
1248
+ 'border',
1249
+ 'background',
1250
+ 'background-color',
1251
+ 'border-bottom',
1252
+ 'border-bottom-color',
1253
+ 'border-bottom-style',
1254
+ 'border-bottom-width',
1255
+ 'border-collapse',
1256
+ 'border-color',
1257
+ 'border-left',
1258
+ 'border-left-color',
1259
+ 'border-left-style',
1260
+ 'border-left-width',
1261
+ 'border-right',
1262
+ 'border-right-color',
1263
+ 'border-right-style',
1264
+ 'border-right-width',
1265
+ 'border-spacing',
1266
+ 'border-style',
1267
+ 'border-top',
1268
+ 'border-top-color',
1269
+ 'border-top-style',
1270
+ 'border-top-width',
1271
+ 'border-width',
1272
+ 'caption-side',
1273
+ 'clear',
1274
+ 'cursor',
1275
+ 'direction',
1276
+ 'font',
1277
+ 'font-family',
1278
+ 'font-size',
1279
+ 'font-style',
1280
+ 'font-variant',
1281
+ 'font-weight',
1282
+ 'height',
1283
+ 'letter-spacing',
1284
+ 'line-height',
1285
+ 'margin-bottom',
1286
+ 'margin-left',
1287
+ 'margin-right',
1288
+ 'margin-top',
1289
+ 'overflow',
1290
+ 'padding',
1291
+ 'padding-bottom',
1292
+ 'padding-left',
1293
+ 'padding-right',
1294
+ 'padding-top',
1295
+ 'text-decoration',
1296
+ 'text-indent',
1297
+ 'vertical-align',
1298
+ 'width',
1299
+ 'display',
1300
+ );
1301
+
1302
+ foreach ($styles_wf as $style_wf) {
1303
+ $styles[] = $style_wf;
1304
+ }
1305
+ return $styles;
1306
+ });
1307
+
1308
+ $allowed_tags = wp_kses_allowed_html('post');
1309
+ $allowed_tags['input'] = array(
1310
+ 'type' => true,
1311
+ 'style' => true,
1312
+ 'class' => true,
1313
+ 'id' => true,
1314
+ 'checked' => true,
1315
+ 'disabled' => true,
1316
+ 'name' => true,
1317
+ 'size' => true,
1318
+ 'placeholder' => true,
1319
+ 'value' => true,
1320
+ 'data-*' => true,
1321
+ 'size' => true,
1322
+ 'disabled' => true
1323
+ );
1324
+
1325
+ $allowed_tags['textarea'] = array(
1326
+ 'type' => true,
1327
+ 'style' => true,
1328
+ 'class' => true,
1329
+ 'id' => true,
1330
+ 'checked' => true,
1331
+ 'disabled' => true,
1332
+ 'name' => true,
1333
+ 'size' => true,
1334
+ 'placeholder' => true,
1335
+ 'value' => true,
1336
+ 'data-*' => true,
1337
+ 'cols' => true,
1338
+ 'rows' => true,
1339
+ 'disabled' => true,
1340
+ 'autocomplete' => true
1341
+ );
1342
+
1343
+ $allowed_tags['select'] = array(
1344
+ 'type' => true,
1345
+ 'style' => true,
1346
+ 'class' => true,
1347
+ 'id' => true,
1348
+ 'checked' => true,
1349
+ 'disabled' => true,
1350
+ 'name' => true,
1351
+ 'size' => true,
1352
+ 'placeholder' => true,
1353
+ 'value' => true,
1354
+ 'data-*' => true,
1355
+ 'multiple' => true,
1356
+ 'disabled' => true
1357
+ );
1358
+
1359
+ $allowed_tags['option'] = array(
1360
+ 'type' => true,
1361
+ 'style' => true,
1362
+ 'class' => true,
1363
+ 'id' => true,
1364
+ 'checked' => true,
1365
+ 'disabled' => true,
1366
+ 'name' => true,
1367
+ 'size' => true,
1368
+ 'placeholder' => true,
1369
+ 'value' => true,
1370
+ 'selected' => true,
1371
+ 'data-*' => true
1372
+ );
1373
+ $allowed_tags['optgroup'] = array(
1374
+ 'type' => true,
1375
+ 'style' => true,
1376
+ 'class' => true,
1377
+ 'id' => true,
1378
+ 'checked' => true,
1379
+ 'disabled' => true,
1380
+ 'name' => true,
1381
+ 'size' => true,
1382
+ 'placeholder' => true,
1383
+ 'value' => true,
1384
+ 'selected' => true,
1385
+ 'data-*' => true,
1386
+ 'label' => true
1387
+ );
1388
+
1389
+ $allowed_tags['a'] = array(
1390
+ 'href' => true,
1391
+ 'data-*' => true,
1392
+ 'class' => true,
1393
+ 'style' => true,
1394
+ 'id' => true,
1395
+ 'target' => true,
1396
+ 'data-*' => true,
1397
+ 'role' => true,
1398
+ 'aria-controls' => true,
1399
+ 'aria-selected' => true,
1400
+ 'disabled' => true
1401
+ );
1402
+
1403
+ $allowed_tags['div'] = array(
1404
+ 'style' => true,
1405
+ 'class' => true,
1406
+ 'id' => true,
1407
+ 'data-*' => true,
1408
+ 'role' => true,
1409
+ 'aria-labelledby' => true,
1410
+ 'value' => true,
1411
+ 'aria-modal' => true,
1412
+ 'tabindex' => true
1413
+ );
1414
+
1415
+ $allowed_tags['li'] = array(
1416
+ 'style' => true,
1417
+ 'class' => true,
1418
+ 'id' => true,
1419
+ 'data-*' => true,
1420
+ 'role' => true,
1421
+ 'aria-labelledby' => true,
1422
+ 'value' => true,
1423
+ 'aria-modal' => true,
1424
+ 'tabindex' => true
1425
+ );
1426
+
1427
+ $allowed_tags['span'] = array(
1428
+ 'style' => true,
1429
+ 'class' => true,
1430
+ 'id' => true,
1431
+ 'data-*' => true,
1432
+ 'aria-hidden' => true
1433
+ );
1434
+
1435
+ $allowed_tags['style'] = array(
1436
+ 'class' => true,
1437
+ 'id' => true,
1438
+ 'type' => true
1439
+ );
1440
+
1441
+ $allowed_tags['fieldset'] = array(
1442
+ 'class' => true,
1443
+ 'id' => true,
1444
+ 'type' => true
1445
+ );
1446
+
1447
+ $allowed_tags['link'] = array(
1448
+ 'class' => true,
1449
+ 'id' => true,
1450
+ 'type' => true,
1451
+ 'rel' => true,
1452
+ 'href' => true,
1453
+ 'media' => true
1454
+ );
1455
+
1456
+ $allowed_tags['form'] = array(
1457
+ 'style' => true,
1458
+ 'class' => true,
1459
+ 'id' => true,
1460
+ 'method' => true,
1461
+ 'action' => true,
1462
+ 'data-*' => true
1463
+ );
1464
+
1465
+ $allowed_tags['script'] = array(
1466
+ 'class' => true,
1467
+ 'id' => true,
1468
+ 'type' => true,
1469
+ 'src' => true
1470
+ );
1471
+
1472
+ echo wp_kses($html, $allowed_tags);
1473
+
1474
+ add_filter('safe_style_css', function ($styles) {
1475
+ $styles_wf = array(
1476
+ 'text-align',
1477
+ 'margin',
1478
+ 'color',
1479
+ 'float',
1480
+ 'border',
1481
+ 'background',
1482
+ 'background-color',
1483
+ 'border-bottom',
1484
+ 'border-bottom-color',
1485
+ 'border-bottom-style',
1486
+ 'border-bottom-width',
1487
+ 'border-collapse',
1488
+ 'border-color',
1489
+ 'border-left',
1490
+ 'border-left-color',
1491
+ 'border-left-style',
1492
+ 'border-left-width',
1493
+ 'border-right',
1494
+ 'border-right-color',
1495
+ 'border-right-style',
1496
+ 'border-right-width',
1497
+ 'border-spacing',
1498
+ 'border-style',
1499
+ 'border-top',
1500
+ 'border-top-color',
1501
+ 'border-top-style',
1502
+ 'border-top-width',
1503
+ 'border-width',
1504
+ 'caption-side',
1505
+ 'clear',
1506
+ 'cursor',
1507
+ 'direction',
1508
+ 'font',
1509
+ 'font-family',
1510
+ 'font-size',
1511
+ 'font-style',
1512
+ 'font-variant',
1513
+ 'font-weight',
1514
+ 'height',
1515
+ 'letter-spacing',
1516
+ 'line-height',
1517
+ 'margin-bottom',
1518
+ 'margin-left',
1519
+ 'margin-right',
1520
+ 'margin-top',
1521
+ 'overflow',
1522
+ 'padding',
1523
+ 'padding-bottom',
1524
+ 'padding-left',
1525
+ 'padding-right',
1526
+ 'padding-top',
1527
+ 'text-decoration',
1528
+ 'text-indent',
1529
+ 'vertical-align',
1530
+ 'width'
1531
+ );
1532
+
1533
+ foreach ($styles_wf as $style_wf) {
1534
+ if (($key = array_search($style_wf, $styles)) !== false) {
1535
+ unset($styles[$key]);
1536
+ }
1537
+ }
1538
+ return $styles;
1539
+ });
1540
+ }
1541
  };
inc/external/wdev-frash/module.php CHANGED
@@ -161,8 +161,8 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
161
  * @since 1.0.0
162
  */
163
  public function wp_ajax_frash_act() {
164
- $plugin = $_POST['plugin_id'];
165
- $type = $_POST['type'];
166
 
167
  $this->mark_as_done( $plugin, $type, 'ok' );
168
 
@@ -176,8 +176,8 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
176
  * @since 1.0.0
177
  */
178
  public function wp_ajax_frash_dismiss() {
179
- $plugin = $_POST['plugin_id'];
180
- $type = $_POST['type'];
181
 
182
  $this->mark_as_done( $plugin, $type, 'ignore' );
183
 
@@ -231,7 +231,7 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
231
 
232
  // The "current" time can be changed via $_GET to test the module.
233
  if ( defined( 'WP_DEBUG' ) && WP_DEBUG && ! empty( $_GET['time'] ) ) {
234
- $custom_time = $_GET['time'];
235
  if ( ' ' == $custom_time[0] ) { $custom_time[0] = '+'; }
236
  if ( $custom_time ) { $now = strtotime( $custom_time ); }
237
  if ( ! $now ) { $now = time(); }
@@ -382,18 +382,18 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
382
  <div class="frash-notice-message">
383
  <?php
384
  printf(
385
- $msg,
386
- '<strong>' . $plugin->title . '</strong>'
387
  );
388
  ?>
389
  </div>
390
  <div class="frash-notice-cta">
391
  <input type="email" name="email" value="<?php echo esc_attr( $admin_email ); ?>" />
392
- <button class="frash-notice-act button-primary" data-msg="<?php _e( 'Thanks :)', 'wdev_frash' ); ?>">
393
  <?php echo esc_html( $plugin->cta_email ); ?>
394
  </button>
395
- <button class="frash-notice-dismiss" data-msg="<?php _e( 'Saving', 'wdev_frash' ); ?>">
396
- <?php _e( 'No thanks', 'wdev_frash' ); ?>
397
  </button>
398
  </div>
399
  <?php
@@ -417,22 +417,22 @@ if ( ! class_exists( 'WDev_Frash' ) ) {
417
  <div class="frash-notice-message">
418
  <?php
419
  printf(
420
- $msg,
421
- '<strong>' . $user_name . '</strong>',
422
- '<strong>' . $plugin->title . '</strong>'
423
  );
424
  ?>
425
  </div>
426
  <div class="frash-notice-cta">
427
- <button class="frash-notice-act button-primary" data-msg="<?php _e( 'Thanks :)', 'wdev_frash' ); ?>">
428
  <?php
429
  printf(
430
  __( 'Rate %s', 'wdev_frash' ),
431
  esc_html( $plugin->title )
432
  ); ?>
433
  </button>
434
- <button class="frash-notice-dismiss" data-msg="<?php _e( 'Saving', 'wdev_frash' ); ?>">
435
- <?php _e( 'No thanks', 'wdev_frash' ); ?>
436
  </button>
437
  </div>
438
  <?php
161
  * @since 1.0.0
162
  */
163
  public function wp_ajax_frash_act() {
164
+ $plugin = sanitize_key($_POST['plugin_id']);
165
+ $type = sanitize_key($_POST['type']);
166
 
167
  $this->mark_as_done( $plugin, $type, 'ok' );
168
 
176
  * @since 1.0.0
177
  */
178
  public function wp_ajax_frash_dismiss() {
179
+ $plugin = sanitize_key($_POST['plugin_id']);
180
+ $type = sanitize_key($_POST['type']);
181
 
182
  $this->mark_as_done( $plugin, $type, 'ignore' );
183
 
231
 
232
  // The "current" time can be changed via $_GET to test the module.
233
  if ( defined( 'WP_DEBUG' ) && WP_DEBUG && ! empty( $_GET['time'] ) ) {
234
+ $custom_time = sanitize_text_field($_GET['time']);
235
  if ( ' ' == $custom_time[0] ) { $custom_time[0] = '+'; }
236
  if ( $custom_time ) { $now = strtotime( $custom_time ); }
237
  if ( ! $now ) { $now = time(); }
382
  <div class="frash-notice-message">
383
  <?php
384
  printf(
385
+ esc_html($msg),
386
+ '<strong>' . esc_html($plugin->title) . '</strong>'
387
  );
388
  ?>
389
  </div>
390
  <div class="frash-notice-cta">
391
  <input type="email" name="email" value="<?php echo esc_attr( $admin_email ); ?>" />
392
+ <button class="frash-notice-act button-primary" data-msg="<?php esc_html_e( 'Thanks :)', 'wdev_frash' ); ?>">
393
  <?php echo esc_html( $plugin->cta_email ); ?>
394
  </button>
395
+ <button class="frash-notice-dismiss" data-msg="<?php esc_html_e( 'Saving', 'wdev_frash' ); ?>">
396
+ <?php esc_html_e( 'No thanks', 'wdev_frash' ); ?>
397
  </button>
398
  </div>
399
  <?php
417
  <div class="frash-notice-message">
418
  <?php
419
  printf(
420
+ esc_html($msg),
421
+ '<strong>' . esc_html($user_name) . '</strong>',
422
+ '<strong>' . esc_html($plugin->title) . '</strong>'
423
  );
424
  ?>
425
  </div>
426
  <div class="frash-notice-cta">
427
+ <button class="frash-notice-act button-primary" data-msg="<?php esc_html_e( 'Thanks :)', 'wdev_frash' ); ?>">
428
  <?php
429
  printf(
430
  __( 'Rate %s', 'wdev_frash' ),
431
  esc_html( $plugin->title )
432
  ); ?>
433
  </button>
434
+ <button class="frash-notice-dismiss" data-msg="<?php esc_html_e( 'Saving', 'wdev_frash' ); ?>">
435
+ <?php esc_html_e( 'No thanks', 'wdev_frash' ); ?>
436
  </button>
437
  </div>
438
  <?php
inc/external/wpmu-lib/css/wpmu-ui.3.css CHANGED
@@ -77,12 +77,7 @@
77
  .wpmui-has-overlay .wpmui-overlay.light {
78
  opacity: .25;
79
  }
80
- .wpmui-has-overlay #wpwrap {
81
- -webkit-filter: grayscale(75%);
82
- -moz-filter: grayscale(75%);
83
- filter: gray;
84
- filter: grayscale(75%);
85
- }
86
  .wpmui-has-overlay #wpbody {
87
  -webkit-filter: blur(3px);
88
  -moz-filter: blur(3px);
@@ -638,7 +633,7 @@
638
  *
639
  * <div class="wpmui-box">
640
  * <h3>
641
- * <a href="#" class="toggle" title="<?php _e( 'Click to toggle' ); ?>"><br></a>
642
  * <span>Title</span>
643
  * </h3>
644
  * <div class="inside">
77
  .wpmui-has-overlay .wpmui-overlay.light {
78
  opacity: .25;
79
  }
80
+
 
 
 
 
 
81
  .wpmui-has-overlay #wpbody {
82
  -webkit-filter: blur(3px);
83
  -moz-filter: blur(3px);
633
  *
634
  * <div class="wpmui-box">
635
  * <h3>
636
+ * <a href="#" class="toggle" title="<?php esc_html_e( 'Click to toggle' ); ?>"><br></a>
637
  * <span>Title</span>
638
  * </h3>
639
  * <div class="inside">
inc/external/wpmu-lib/css/wpmu-ui.3.min.css CHANGED
@@ -1 +1 @@
1
- .wpmui-loading{position:relative}.wpmui-loading:after{content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;background:rgba(255,255,255,.8) url(../img/spinner.gif) center no-repeat;z-index:1000;cursor:default;min-width:20px;min-height:20px}.wpmui-loading-icon{display:inline-block;width:20px;height:20px;line-height:20px;vertical-align:middle;background:transparent url(../img/spinner.gif) center no-repeat}.wpmui-overlay{background:#000;position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:0;transition:opacity .3s,z-index .3s step-end}.wpmui-has-overlay .wpmui-overlay{z-index:9999;opacity:.7;transition:opacity .3s,z-index .3s step-start}.wpmui-has-overlay .wpmui-overlay.light{opacity:.25}.wpmui-has-overlay #wpwrap{-webkit-filter:grayscale(75%);-moz-filter:grayscale(75%);filter:gray;filter:grayscale(75%)}.wpmui-has-overlay #wpbody{-webkit-filter:blur(3px);-moz-filter:blur(3px);filter:blur(3px)}.wpmui-has-overlay.no-blur #wpbody{-webkit-filter:blur(0);-moz-filter:blur(0);filter:blur(0)}.wpmui-no-scroll{overflow:hidden}.wpmui-blur{-webkit-filter:blur(3px) grayscale(75%);-moz-filter:blur(3px) grayscale(75%);filter:blur(3px) grayscale(75%);position:relative}.wpmui-blur:before{content:'';position:absolute;left:0;top:0;right:0;bottom:0;z-index:10}.wpmui-popup{background:#f5f5f5;position:fixed;box-shadow:0 2px 20px rgba(0,0,0,.4);z-index:10000;top:50%;left:50%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-popup .popup-title{position:absolute;left:0;top:0;right:0;line-height:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 70px 0 20px;border-bottom:1px solid #e5e5e5;background:#f8f8f8;min-height:50px;display:block;font-size:23px;font-weight:100;z-index:5}.wpmui-popup .popup-title .the-title{display:inline-block;padding-right:71px}.wpmui-popup.slidein.slidein-down .popup-title{top:auto;bottom:0;border-top:1px solid #e5e5e5;border-bottom:0}.wpmui-popup.slidein .popup-title{cursor:pointer}.wpmui-popup .only-slidein{display:none}.wpmui-popup.slideing .only-slidein{display:block}.wpmui-popup .popup-close{position:absolute;top:0;right:0;width:50px;line-height:50px;height:50px;text-align:center;text-decoration:none;color:#666;border-left:1px solid #e5e5e5;cursor:pointer;z-index:10}.wpmui-popup .popup-close:active,.wpmui-popup .popup-close:focus,.wpmui-popup .popup-close:hover{background:#fcfcfc;color:#333}.wpmui-popup .popup-close .dashicons{line-height:50px}.wpmui-popup .popup-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;padding:20px 20px 20px 20px;z-index:1}.wpmui-popup .popup-content:after{content:'';display:block;clear:both;padding:50px 0 0 0}.wpmui-popup.no-buttons .popup-content:after{padding-top:0}.wpmui-popup.no-close .popup-title{padding:0 20px}.wpmui-popup.no-close .popup-close{display:none}.wpmui-popup hr{margin:15px -20px;border:0;border-top:1px solid #e5e5e5}.wpmui-popup .buttons{text-align:right;position:absolute;bottom:0;right:0;background:rgba(245,245,245,.8);padding:10px 20px 10px;left:0;height:50px;border-top:1px solid #e5e5e5;margin:0;z-index:2;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.popup.wdev-slidein,.popup.wdev-window{position:fixed;z-index:10000;top:50%;left:50%;background:#fff;box-sizing:border-box}.popup.wdev-slidein.slidein .popup-title,.popup.wdev-window.slidein .popup-title{cursor:pointer}.wpmui-msg{position:relative;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-msg .wpmui-close{float:right;margin-top:8px;width:20px;height:20px;line-height:20px;text-align:center;cursor:pointer;text-decoration:none;font-size:16px;padding:0;color:#ccc}.wpmui-msg .wpmui-close:active,.wpmui-msg .wpmui-close:focus,.wpmui-msg .wpmui-close:hover{color:#333}.wpmui-msg .debug{padding:5px;color:#666;font-size:12px;font-family:monospace;margin-bottom:.5em;background:#f8f8f8}.wpmui-tip-box{position:relative}.wpmui-tip{position:absolute;display:none;padding:8px;z-index:100;background:#333;color:#eee;box-shadow:0 1px 8px rgba(0,0,0,.4);border-radius:2px}.wpmui-tip.wpmui-visible{display:block}.wpmui-tip:before{content:'';position:absolute;border:5px solid transparent;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.wpmui-tip.top:before{border-top-color:#333;bottom:-10px;top:auto}.wpmui-tip.bottom:before{border-bottom-color:#333;top:-5px}.wpmui-tip.left:before{border-left-color:#333;right:-10px;left:auto}.wpmui-tip.right:before{border-right-color:#333;left:-5px}.wpmui-pointer.wp-pointer-left{margin-top:30px}.wpmui-pointer.wp-pointer-left h3{background:0 0;color:#333;border:0;margin:0;padding:13px 20px 5px;font-size:13px}.wpmui-pointer.wp-pointer-left h3:before{content:'';display:none}.wpmui-pointer.wp-pointer-left p{padding:0 20px;margin:2px 0;font-size:12px}.wpmui-pointer.wp-pointer-left .wp-pointer-content{background:#fafdff;border-radius:4px;border:1px solid #ccc;box-shadow:0 1px 8px -2px rgba(0,0,0,.35);padding:0 0 15px}.wpmui-pointer.wp-pointer-left.no-title{margin-top:13px}.wpmui-pointer.wp-pointer-left.no-title .wp-pointer-content{padding-top:17px}.wpmui-pointer.wp-pointer-left .wp-pointer-buttons{position:absolute;top:0;right:0;white-space:nowrap;padding:5px 10px}.wpmui-pointer.wp-pointer-left .wp-pointer-buttons a.close{font-size:1px;color:transparent;width:10px;padding:0}.wpmui-pointer.wp-pointer-left .wp-pointer-buttons a.close:before{position:static;float:right;line-height:14px;margin:3px 0 1px 5px}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow{border:0;position:absolute;top:50%;left:0;margin:-6px 0 0}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:after,.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:before{content:'';border:6px solid transparent;margin:0;left:-10px;position:absolute;top:0}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:before{border-right-color:#ccc;left:-11px}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:after{border-right-color:#fafdff}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow-inner{display:none}.wpmui-pointer.wp-pointer-left.wp-pointer-left{padding-left:8px;margin-left:-12px}.wpmui-pointer.wp-pointer-left.wp-pointer-left .wp-pointer-arrow{left:8px}.wpmui-form label{display:block;line-height:26px;font-size:14px;font-weight:500}.wpmui-form input[type=password],.wpmui-form input[type=text],.wpmui-form select,.wpmui-form textarea{width:100%;margin:0;display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-form .hint{color:#666;font-size:12px}.wpmui-form .button-link,.wpmui-popup .button-link{display:inline-block;text-decoration:underline;font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;cursor:pointer;white-space:nowrap;color:#0074a2;background:0 0;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 0 0 transparent;-moz-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.wpmui-form .button-link:active,.wpmui-form .button-link:focus,.wpmui-form .button-link:hover,.wpmui-popup .button-link:active,.wpmui-popup .button-link:focus,.wpmui-popup .button-link:hover{color:#2ea2cc}.wpmui-grid-12 *,.wpmui-grid-12 :after,.wpmui-grid-12 :before,.wpmui-grid-8 *,.wpmui-grid-8 :after,.wpmui-grid-8 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-grid-12 [class*=col-],.wpmui-grid-8 [class*=col-]{float:left;padding-right:20px;position:relative}.wpmui-grid-12 [class*=col-]:last-of-type,.wpmui-grid-8 [class*=col-]:last-of-type{padding-right:0}.wpmui-grid-12,.wpmui-grid-8{width:100%;margin:0;overflow:hidden;padding:10px 0 0}.wpmui-grid-12:after,.wpmui-grid-8:after{content:'';display:table;clear:both}.wpmui-grid-12 .col-12,.wpmui-grid-8 .col-8{width:100%}.wpmui-grid-12 .col-11{width:91.66%}.wpmui-grid-8 .col-7{width:87.5%}.wpmui-grid-12 .col-10{width:83.333%}.wpmui-grid-12 .col-9,.wpmui-grid-8 .col-6{width:75%}.wpmui-grid-12 .col-8{width:66.66%}.wpmui-grid-8 .col-5{width:62.5%}.wpmui-grid-12 .col-7{width:58.33%}.wpmui-grid-12 .col-6,.wpmui-grid-8 .col-4{width:50%}.wpmui-grid-12 .col-5{width:41.66%}.wpmui-grid-8 .col-3{width:37.5%}.wpmui-grid-12 .col-4{width:33.33%}.wpmui-grid-12 .col-3,.wpmui-grid-8 .col-2{width:25%}.wpmui-grid-12 .col-2{width:16.667%}.wpmui-grid-8 .col-1{width:12.5%}.wpmui-grid-12 .col-1{width:8.33%}@media handheld,only screen and (max-width:767px){.wpmui-grid-12,.wpmui-grid-8{width:100%;min-width:0;margin-left:0;margin-right:0;padding-left:0;padding-right:0}.wpmui-grid-12 [class*=col-],.wpmui-grid-8 [class*=col-]{width:auto;float:none;margin-left:0;margin-right:0;margin-top:10px;margin-bottom:10px;padding-left:20px;padding-right:20px}}.wpmui-box{margin-bottom:10px;padding:0;line-height:1;position:relative;min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.wpmui-box>h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;border-bottom:1px solid #eee;cursor:pointer}.wpmui-box>h3 .toggle{cursor:pointer;float:right;width:36px;height:36px;color:#aaa;text-decoration:none;margin:-8px -12px;text-align:center;position:relative;line-height:36px}.wpmui-box .toggle:active,.wpmui-box .toggle:focus,.wpmui-box .toggle:hover,.wpmui-box>h3:hover .toggle{color:#777}.wpmui-box>h3 .toggle:before{content:'\f142';font:400 20px/36px dashicons;speak:none;display:inline-block;position:absolute;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;width:100%;height:100%;top:0;right:0}.wpmui-box>.inside{margin:6px 0 0;position:relative;padding:0 12px 12px;line-height:1.4em;font-size:13px}.wpmui-box>.inside:after{content:'';display:table;clear:both}.wpmui-box.closed>h3 .toggle:before{content:'\f140'}.wpmui-box.closed>.inside{display:none}.wpmui-box.static>h3{cursor:default}.wpmui-box.static>h3 .toggle{display:none}.wpmui-box.static>.inside{display:block}.wpmui-tabs{border-bottom:1px solid #eee;padding-bottom:0;padding-left:10px;list-style:none;margin:20px 0 0}.wpmui-tabs .tab{border:1px solid #eee;background:#f0f0f0;color:#999;display:inline-block;text-decoration:none;margin:0 4px -1px 0;padding:0 12px;font-weight:600;font-size:13px;line-height:34px}.wpmui-tabs .tab:active,.wpmui-tabs .tab:focus,.wpmui-tabs .tab:hover{background:#f4f4f4;color:#777}.wpmui-tabs .tab.active{border-bottom:1px solid #fff;background:#fff;color:#444}.wpmui-tab-contents{padding:12px}.wpmui-tab-contents .tab{display:none}.wpmui-tab-contents .tab.active{display:block}.wpmui-box>.inside>.wpmui-tabs{margin-left:-12px;margin-right:-12px;padding-left:22px}.wpmui-box>.inside>.wpmui-tab-contents{margin-left:-12px;margin-right:-12px;margin-bottom:-12px}.select2-container .wpmui-select2.select2-selection--single{height:28px}.select2-container .wpmui-select2.select2-selection--multiple,.select2-container .wpmui-select2.select2-selection--single{min-height:28px;line-height:27px;font-size:14px;border-radius:2px;border-color:#ccc}.select2-container .wpmui-select2.select2-selection--multiple .select2-selection__arrow b,.select2-container .wpmui-select2.select2-selection--single .select2-selection__arrow b{border-top-color:#aaa}.select2-container .wpmui-select2.select2-selection--multiple .select2-selection__rendered,.select2-container .wpmui-select2.select2-selection--single .select2-selection__rendered{display:block;margin-bottom:-1px}.select2-container .wpmui-select2 .select2-search--inline{margin:0;width:auto}.select2-container .wpmui-select2 .select2-search--inline .select2-search__field{margin:1px;background-image:none!important}.select2-container.select2-container--focus .wpmui-select2{border-color:#5897fb}.select2-container.select2-container--disabled .wpmui-select2{background:#ddd;font-weight:200;opacity:.5}.select2-container .select2-dropdown.wpmui-select2{overflow:hidden;z-index:1000500!important;margin-top:-1px;box-shadow:0 0 0 1px #5897fb inset;border:0;border-radius:0}.select2-container .select2-dropdown.wpmui-select2 .select2-search{margin-bottom:-1px;padding:1px}.select2-container .select2-dropdown.wpmui-select2 .select2-search .select2-search__field{margin:0;border:0;font-size:13px;border-bottom:1px solid #5897fb;background-color:#fafdff}.select2-container .select2-dropdown.wpmui-select2 .select2-results{padding:0;margin:0;font-size:13px}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option{margin:0;white-space:nowrap;padding-left:20px;position:relative}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option:before{content:'';background-color:transparent;background-position:center center;background-repeat:no-repeat;position:absolute;left:1px;top:1px;width:20px;height:28px}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option[aria-selected=true]{color:#5897fb;background-color:#f5f9ff;margin:1px}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option[aria-selected=true]:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEycHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTIgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxnIGlkPSJpY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNC4wMDAwMDAsIC0xMC4wMDAwMDApIiBzdHJva2U9Im5vbmUiIGZpbGw9IiM1ODk3ZmIiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuNzUwMDAwLCAxMC41MDAwMDApIj4KICAgICAgICAgICAgPHBhdGggZD0iTTguNzUsMCBMNC4zNzUsNC4zNzUgTDEuNzUsMS43NSBMMCwzLjUgTDQuMzc1LDcuODc1IEwxMC41LDEuNzUgTDguNzUsMCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==)}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted,.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted[aria-selected=true]{background-color:#5897fb;color:#fff}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted:before,.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted[aria-selected=true]:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEycHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTIgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxnIGlkPSJpY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNC4wMDAwMDAsIC0xMC4wMDAwMDApIiBzdHJva2U9Im5vbmUiIGZpbGw9IiNGRkZGRkYiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuNzUwMDAwLCAxMC41MDAwMDApIj4KICAgICAgICAgICAgPHBhdGggZD0iTTguNzUsMCBMNC4zNzUsNC4zNzUgTDEuNzUsMS43NSBMMCwzLjUgTDQuMzc1LDcuODc1IEwxMC41LDEuNzUgTDguNzUsMCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==)}.select2-container .select2-dropdown.wpmui-select2 .select2-results [aria-multiselectable=true] .select2-results__option--highlighted[aria-selected=true]:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEwcHgiIGhlaWdodD0iMTBweCIgdmlld0JveD0iMCAwIDEwIDEwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPGcgaWQ9Imljb24iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjAwMDAwMCwgLTEwLjAwMDAwMCkiIHN0cm9rZT0ibm9uZSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgPHBhdGggZD0iTTEyLjc0MDAwMTcsMTAuMzAwMDAwMiBMMTAuMTI1LDEyLjkyNSBMNy41LDEwLjMgTDUuNzUsMTIuMDUgTDguMzcwMDAwODQsMTQuNjgwMDAwMyBMNS43NSwxNy4zMTk5OTk3IEw3LjUsMTkuMDY5OTk5NyBMMTAuMTE5OTk4OSwxNi40Mzk5OTk2IEwxMi43NDAwMDE3LDE5LjA2OTk5OTcgTDE0LjQ5MDAwMTcsMTcuMzE5OTk5NyBMMTEuODY5OTk4OSwxNC42ODAwMDAzIEwxNC40OTAwMDE3LDEyLjA1MDAwMDIgTDEyLjc0MDAwMTcsMTAuMzAwMDAwMiBaIj48L3BhdGg+CiAgICA8L2c+Cjwvc3ZnPg==)}.wpmui-toggle{position:relative;width:26px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.wpmui-toggle-checkbox{display:none!important}.wpmui-toggle-label{display:block;overflow:hidden;cursor:pointer;border:1px solid #ccc;border-radius:50px}.wpmui-toggle-inner{display:block;width:200%;margin-left:-100%;-moz-transition:margin .3s ease-in 0s;-webkit-transition:margin .3s ease-in 0s;-o-transition:margin .3s ease-in 0s;transition:margin .3s ease-in 0s}.wpmui-toggle-inner:after,.wpmui-toggle-inner:before{display:block;float:left;width:50%;height:5px;padding:0;line-height:5px;font-size:10px;color:#fff;font-family:Trebuchet,Arial,sans-serif;font-weight:700;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;box-shadow:0 1px 0 rgba(0,0,0,.2) inset}.wpmui-toggle-inner:before{content:"";padding-left:5px;background-color:#0074a2}.wpmui-toggle-inner:after{content:"";padding-right:5px;background-color:#eee;text-align:right}.wpmui-toggle-switch{display:block;width:14px;margin:-3.5px;background:#f8f8f8;border:1px solid #ccc;border-radius:15px;position:absolute;top:0;bottom:0;right:20px;-moz-transition:all .3s ease-in 0s;-webkit-transition:all .3s ease-in 0s;-o-transition:all .3s ease-in 0s;transition:all .3s ease-in 0s;box-shadow:-1px 1px 2px rgba(0,0,0,.1)}.wpmui-toggle-checkbox:checked+.wpmui-toggle-label .wpmui-toggle-inner{margin-left:0}.wpmui-toggle-checkbox:checked+.wpmui-toggle-label .wpmui-toggle-switch{right:0}.wpmui-confirm-modal{left:0;top:0;right:0;bottom:0;z-index:99998;background:#000;opacity:.4}.wpmui-confirm-box{top:25%;width:580px;padding:20px 20px 0;left:50%;margin-left:-310px;z-index:99999;background:#fff;box-shadow:0 0 10px rgba(0,0,0,.4)}.wpmui-confirm-box .wpmui-confirm-btn{margin:10px -20px 0;padding:10px 20px;text-align:right;background:#fafafa;border-top:1px solid #e5e5e5}.wpmui-confirm-box .wpmui-confirm-btn button{margin-left:10px}.wpmui-progress-wrap{position:relative;width:100%}.wpmui-progress-wrap .wpmui-progress-full{background:rgba(255,255,255,.7);width:100%;border-radius:2px;box-shadow:1px 1px 2px 0 rgba(0,0,0,.1)}.wpmui-progress-wrap .wpmui-progress{background:#369;border-radius:2px;height:28px;transition:width .25s}.wpmui-progress-wrap .wpmui-progress-percent{position:absolute;left:0;right:0;top:0;line-height:28px;font-size:13px;text-align:center;color:#fff;text-shadow:0 0 5px #264d73}.wpmui-progress-wrap .wpmui-progress-percent:before{content:'';position:absolute;left:50%;width:30px;height:10px;top:50%;border-radius:5px;margin-top:-5px;margin-left:-15px;box-shadow:0 0 8px 4px #264d73;background:#264d73;z-index:-1;opacity:.5}.wpmui-progress-wrap .wpmui-progress-label{font-size:12px;margin-top:6px;color:#888;text-align:right}.no-pad-top{padding-top:0!important;margin-top:0!important}.no-pad-bottom{padding-bottom:0!important;margin-bottom:0!important}.no-pad{padding-top:0!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important}.dashicons.light{opacity:.5}.cf:after,.cf:before{content:'';display:table}.cf:after{clear:both}.wpmui-left{float:left}.wpmui-right{float:right}.button .dashicons,.button-primary .dashicons{line-height:26px;height:26px;float:left;margin-right:6px}
1
+ .wpmui-loading{position:relative}.wpmui-loading:after{content:'';position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;background:rgba(255,255,255,.8) url(../img/spinner.gif) center no-repeat;z-index:1000;cursor:default;min-width:20px;min-height:20px}.wpmui-loading-icon{display:inline-block;width:20px;height:20px;line-height:20px;vertical-align:middle;background:transparent url(../img/spinner.gif) center no-repeat}.wpmui-overlay{background:#000;position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:0;transition:opacity .3s,z-index .3s step-end}.wpmui-has-overlay .wpmui-overlay{z-index:9999;opacity:.7;transition:opacity .3s,z-index .3s step-start}.wpmui-has-overlay .wpmui-overlay.light{opacity:.25}.wpmui-has-overlay #wpbody{-webkit-filter:blur(3px);-moz-filter:blur(3px);filter:blur(3px)}.wpmui-has-overlay.no-blur #wpbody{-webkit-filter:blur(0);-moz-filter:blur(0);filter:blur(0)}.wpmui-no-scroll{overflow:hidden}.wpmui-blur{-webkit-filter:blur(3px) grayscale(75%);-moz-filter:blur(3px) grayscale(75%);filter:blur(3px) grayscale(75%);position:relative}.wpmui-blur:before{content:'';position:absolute;left:0;top:0;right:0;bottom:0;z-index:10}.wpmui-popup{background:#f5f5f5;position:fixed;box-shadow:0 2px 20px rgba(0,0,0,.4);z-index:10000;top:50%;left:50%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-popup .popup-title{position:absolute;left:0;top:0;right:0;line-height:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 70px 0 20px;border-bottom:1px solid #e5e5e5;background:#f8f8f8;min-height:50px;display:block;font-size:23px;font-weight:100;z-index:5}.wpmui-popup .popup-title .the-title{display:inline-block;padding-right:71px}.wpmui-popup.slidein.slidein-down .popup-title{top:auto;bottom:0;border-top:1px solid #e5e5e5;border-bottom:0}.wpmui-popup.slidein .popup-title{cursor:pointer}.wpmui-popup .only-slidein{display:none}.wpmui-popup.slideing .only-slidein{display:block}.wpmui-popup .popup-close{position:absolute;top:0;right:0;width:50px;line-height:50px;height:50px;text-align:center;text-decoration:none;color:#666;border-left:1px solid #e5e5e5;cursor:pointer;z-index:10}.wpmui-popup .popup-close:active,.wpmui-popup .popup-close:focus,.wpmui-popup .popup-close:hover{background:#fcfcfc;color:#333}.wpmui-popup .popup-close .dashicons{line-height:50px}.wpmui-popup .popup-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;padding:20px 20px 20px 20px;z-index:1}.wpmui-popup .popup-content:after{content:'';display:block;clear:both;padding:50px 0 0 0}.wpmui-popup.no-buttons .popup-content:after{padding-top:0}.wpmui-popup.no-close .popup-title{padding:0 20px}.wpmui-popup.no-close .popup-close{display:none}.wpmui-popup hr{margin:15px -20px;border:0;border-top:1px solid #e5e5e5}.wpmui-popup .buttons{text-align:right;position:absolute;bottom:0;right:0;background:rgba(245,245,245,.8);padding:10px 20px 10px;left:0;height:50px;border-top:1px solid #e5e5e5;margin:0;z-index:2;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.popup.wdev-slidein,.popup.wdev-window{position:fixed;z-index:10000;top:50%;left:50%;background:#fff;box-sizing:border-box}.popup.wdev-slidein.slidein .popup-title,.popup.wdev-window.slidein .popup-title{cursor:pointer}.wpmui-msg{position:relative;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-msg .wpmui-close{float:right;margin-top:8px;width:20px;height:20px;line-height:20px;text-align:center;cursor:pointer;text-decoration:none;font-size:16px;padding:0;color:#ccc}.wpmui-msg .wpmui-close:active,.wpmui-msg .wpmui-close:focus,.wpmui-msg .wpmui-close:hover{color:#333}.wpmui-msg .debug{padding:5px;color:#666;font-size:12px;font-family:monospace;margin-bottom:.5em;background:#f8f8f8}.wpmui-tip-box{position:relative}.wpmui-tip{position:absolute;display:none;padding:8px;z-index:100;background:#333;color:#eee;box-shadow:0 1px 8px rgba(0,0,0,.4);border-radius:2px}.wpmui-tip.wpmui-visible{display:block}.wpmui-tip:before{content:'';position:absolute;border:5px solid transparent;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.wpmui-tip.top:before{border-top-color:#333;bottom:-10px;top:auto}.wpmui-tip.bottom:before{border-bottom-color:#333;top:-5px}.wpmui-tip.left:before{border-left-color:#333;right:-10px;left:auto}.wpmui-tip.right:before{border-right-color:#333;left:-5px}.wpmui-pointer.wp-pointer-left{margin-top:30px}.wpmui-pointer.wp-pointer-left h3{background:0 0;color:#333;border:0;margin:0;padding:13px 20px 5px;font-size:13px}.wpmui-pointer.wp-pointer-left h3:before{content:'';display:none}.wpmui-pointer.wp-pointer-left p{padding:0 20px;margin:2px 0;font-size:12px}.wpmui-pointer.wp-pointer-left .wp-pointer-content{background:#fafdff;border-radius:4px;border:1px solid #ccc;box-shadow:0 1px 8px -2px rgba(0,0,0,.35);padding:0 0 15px}.wpmui-pointer.wp-pointer-left.no-title{margin-top:13px}.wpmui-pointer.wp-pointer-left.no-title .wp-pointer-content{padding-top:17px}.wpmui-pointer.wp-pointer-left .wp-pointer-buttons{position:absolute;top:0;right:0;white-space:nowrap;padding:5px 10px}.wpmui-pointer.wp-pointer-left .wp-pointer-buttons a.close{font-size:1px;color:transparent;width:10px;padding:0}.wpmui-pointer.wp-pointer-left .wp-pointer-buttons a.close:before{position:static;float:right;line-height:14px;margin:3px 0 1px 5px}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow{border:0;position:absolute;top:50%;left:0;margin:-6px 0 0}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:after,.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:before{content:'';border:6px solid transparent;margin:0;left:-10px;position:absolute;top:0}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:before{border-right-color:#ccc;left:-11px}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow:after{border-right-color:#fafdff}.wpmui-pointer.wp-pointer-left .wp-pointer-arrow-inner{display:none}.wpmui-pointer.wp-pointer-left.wp-pointer-left{padding-left:8px;margin-left:-12px}.wpmui-pointer.wp-pointer-left.wp-pointer-left .wp-pointer-arrow{left:8px}.wpmui-form label{display:block;line-height:26px;font-size:14px;font-weight:500}.wpmui-form input[type=password],.wpmui-form input[type=text],.wpmui-form select,.wpmui-form textarea{width:100%;margin:0;display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-form .hint{color:#666;font-size:12px}.wpmui-form .button-link,.wpmui-popup .button-link{display:inline-block;text-decoration:underline;font-size:13px;line-height:26px;height:28px;padding:0 10px 1px;cursor:pointer;white-space:nowrap;color:#0074a2;background:0 0;border:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 0 0 transparent;-moz-box-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;-webkit-transition-property:border,background,color;transition-property:border,background,color;-webkit-transition-duration:.05s;transition-duration:.05s;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out}.wpmui-form .button-link:active,.wpmui-form .button-link:focus,.wpmui-form .button-link:hover,.wpmui-popup .button-link:active,.wpmui-popup .button-link:focus,.wpmui-popup .button-link:hover{color:#2ea2cc}.wpmui-grid-12 *,.wpmui-grid-12 :after,.wpmui-grid-12 :before,.wpmui-grid-8 *,.wpmui-grid-8 :after,.wpmui-grid-8 :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wpmui-grid-12 [class*=col-],.wpmui-grid-8 [class*=col-]{float:left;padding-right:20px;position:relative}.wpmui-grid-12 [class*=col-]:last-of-type,.wpmui-grid-8 [class*=col-]:last-of-type{padding-right:0}.wpmui-grid-12,.wpmui-grid-8{width:100%;margin:0;overflow:hidden;padding:10px 0 0}.wpmui-grid-12:after,.wpmui-grid-8:after{content:'';display:table;clear:both}.wpmui-grid-12 .col-12,.wpmui-grid-8 .col-8{width:100%}.wpmui-grid-12 .col-11{width:91.66%}.wpmui-grid-8 .col-7{width:87.5%}.wpmui-grid-12 .col-10{width:83.333%}.wpmui-grid-12 .col-9,.wpmui-grid-8 .col-6{width:75%}.wpmui-grid-12 .col-8{width:66.66%}.wpmui-grid-8 .col-5{width:62.5%}.wpmui-grid-12 .col-7{width:58.33%}.wpmui-grid-12 .col-6,.wpmui-grid-8 .col-4{width:50%}.wpmui-grid-12 .col-5{width:41.66%}.wpmui-grid-8 .col-3{width:37.5%}.wpmui-grid-12 .col-4{width:33.33%}.wpmui-grid-12 .col-3,.wpmui-grid-8 .col-2{width:25%}.wpmui-grid-12 .col-2{width:16.667%}.wpmui-grid-8 .col-1{width:12.5%}.wpmui-grid-12 .col-1{width:8.33%}@media handheld,only screen and (max-width:767px){.wpmui-grid-12,.wpmui-grid-8{width:100%;min-width:0;margin-left:0;margin-right:0;padding-left:0;padding-right:0}.wpmui-grid-12 [class*=col-],.wpmui-grid-8 [class*=col-]{width:auto;float:none;margin-left:0;margin-right:0;margin-top:10px;margin-bottom:10px;padding-left:20px;padding-right:20px}}.wpmui-box{margin-bottom:10px;padding:0;line-height:1;position:relative;min-width:255px;border:1px solid #e5e5e5;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.04);box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.wpmui-box>h3{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;border-bottom:1px solid #eee;cursor:pointer}.wpmui-box>h3 .toggle{cursor:pointer;float:right;width:36px;height:36px;color:#aaa;text-decoration:none;margin:-8px -12px;text-align:center;position:relative;line-height:36px}.wpmui-box .toggle:active,.wpmui-box .toggle:focus,.wpmui-box .toggle:hover,.wpmui-box>h3:hover .toggle{color:#777}.wpmui-box>h3 .toggle:before{content:'\f142';font:400 20px/36px dashicons;speak:none;display:inline-block;position:absolute;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;width:100%;height:100%;top:0;right:0}.wpmui-box>.inside{margin:6px 0 0;position:relative;padding:0 12px 12px;line-height:1.4em;font-size:13px}.wpmui-box>.inside:after{content:'';display:table;clear:both}.wpmui-box.closed>h3 .toggle:before{content:'\f140'}.wpmui-box.closed>.inside{display:none}.wpmui-box.static>h3{cursor:default}.wpmui-box.static>h3 .toggle{display:none}.wpmui-box.static>.inside{display:block}.wpmui-tabs{border-bottom:1px solid #eee;padding-bottom:0;padding-left:10px;list-style:none;margin:20px 0 0}.wpmui-tabs .tab{border:1px solid #eee;background:#f0f0f0;color:#999;display:inline-block;text-decoration:none;margin:0 4px -1px 0;padding:0 12px;font-weight:600;font-size:13px;line-height:34px}.wpmui-tabs .tab:active,.wpmui-tabs .tab:focus,.wpmui-tabs .tab:hover{background:#f4f4f4;color:#777}.wpmui-tabs .tab.active{border-bottom:1px solid #fff;background:#fff;color:#444}.wpmui-tab-contents{padding:12px}.wpmui-tab-contents .tab{display:none}.wpmui-tab-contents .tab.active{display:block}.wpmui-box>.inside>.wpmui-tabs{margin-left:-12px;margin-right:-12px;padding-left:22px}.wpmui-box>.inside>.wpmui-tab-contents{margin-left:-12px;margin-right:-12px;margin-bottom:-12px}.select2-container .wpmui-select2.select2-selection--single{height:28px}.select2-container .wpmui-select2.select2-selection--multiple,.select2-container .wpmui-select2.select2-selection--single{min-height:28px;line-height:27px;font-size:14px;border-radius:2px;border-color:#ccc}.select2-container .wpmui-select2.select2-selection--multiple .select2-selection__arrow b,.select2-container .wpmui-select2.select2-selection--single .select2-selection__arrow b{border-top-color:#aaa}.select2-container .wpmui-select2.select2-selection--multiple .select2-selection__rendered,.select2-container .wpmui-select2.select2-selection--single .select2-selection__rendered{display:block;margin-bottom:-1px}.select2-container .wpmui-select2 .select2-search--inline{margin:0;width:auto}.select2-container .wpmui-select2 .select2-search--inline .select2-search__field{margin:1px;background-image:none!important}.select2-container.select2-container--focus .wpmui-select2{border-color:#5897fb}.select2-container.select2-container--disabled .wpmui-select2{background:#ddd;font-weight:200;opacity:.5}.select2-container .select2-dropdown.wpmui-select2{overflow:hidden;z-index:1000500!important;margin-top:-1px;box-shadow:0 0 0 1px #5897fb inset;border:0;border-radius:0}.select2-container .select2-dropdown.wpmui-select2 .select2-search{margin-bottom:-1px;padding:1px}.select2-container .select2-dropdown.wpmui-select2 .select2-search .select2-search__field{margin:0;border:0;font-size:13px;border-bottom:1px solid #5897fb;background-color:#fafdff}.select2-container .select2-dropdown.wpmui-select2 .select2-results{padding:0;margin:0;font-size:13px}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option{margin:0;white-space:nowrap;padding-left:20px;position:relative}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option:before{content:'';background-color:transparent;background-position:center center;background-repeat:no-repeat;position:absolute;left:1px;top:1px;width:20px;height:28px}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option[aria-selected=true]{color:#5897fb;background-color:#f5f9ff;margin:1px}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option[aria-selected=true]:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEycHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTIgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxnIGlkPSJpY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNC4wMDAwMDAsIC0xMC4wMDAwMDApIiBzdHJva2U9Im5vbmUiIGZpbGw9IiM1ODk3ZmIiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuNzUwMDAwLCAxMC41MDAwMDApIj4KICAgICAgICAgICAgPHBhdGggZD0iTTguNzUsMCBMNC4zNzUsNC4zNzUgTDEuNzUsMS43NSBMMCwzLjUgTDQuMzc1LDcuODc1IEwxMC41LDEuNzUgTDguNzUsMCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==)}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted,.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted[aria-selected=true]{background-color:#5897fb;color:#fff}.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted:before,.select2-container .select2-dropdown.wpmui-select2 .select2-results .select2-results__option--highlighted[aria-selected=true]:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEycHgiIGhlaWdodD0iOXB4IiB2aWV3Qm94PSIwIDAgMTIgOSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDxnIGlkPSJpY29uIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNC4wMDAwMDAsIC0xMC4wMDAwMDApIiBzdHJva2U9Im5vbmUiIGZpbGw9IiNGRkZGRkYiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQuNzUwMDAwLCAxMC41MDAwMDApIj4KICAgICAgICAgICAgPHBhdGggZD0iTTguNzUsMCBMNC4zNzUsNC4zNzUgTDEuNzUsMS43NSBMMCwzLjUgTDQuMzc1LDcuODc1IEwxMC41LDEuNzUgTDguNzUsMCBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==)}.select2-container .select2-dropdown.wpmui-select2 .select2-results [aria-multiselectable=true] .select2-results__option--highlighted[aria-selected=true]:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjEwcHgiIGhlaWdodD0iMTBweCIgdmlld0JveD0iMCAwIDEwIDEwIiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPGcgaWQ9Imljb24iIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjAwMDAwMCwgLTEwLjAwMDAwMCkiIHN0cm9rZT0ibm9uZSIgZmlsbD0iI0ZGRkZGRiI+CiAgICAgICAgPHBhdGggZD0iTTEyLjc0MDAwMTcsMTAuMzAwMDAwMiBMMTAuMTI1LDEyLjkyNSBMNy41LDEwLjMgTDUuNzUsMTIuMDUgTDguMzcwMDAwODQsMTQuNjgwMDAwMyBMNS43NSwxNy4zMTk5OTk3IEw3LjUsMTkuMDY5OTk5NyBMMTAuMTE5OTk4OSwxNi40Mzk5OTk2IEwxMi43NDAwMDE3LDE5LjA2OTk5OTcgTDE0LjQ5MDAwMTcsMTcuMzE5OTk5NyBMMTEuODY5OTk4OSwxNC42ODAwMDAzIEwxNC40OTAwMDE3LDEyLjA1MDAwMDIgTDEyLjc0MDAwMTcsMTAuMzAwMDAwMiBaIj48L3BhdGg+CiAgICA8L2c+Cjwvc3ZnPg==)}.wpmui-toggle{position:relative;width:26px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.wpmui-toggle-checkbox{display:none!important}.wpmui-toggle-label{display:block;overflow:hidden;cursor:pointer;border:1px solid #ccc;border-radius:50px}.wpmui-toggle-inner{display:block;width:200%;margin-left:-100%;-moz-transition:margin .3s ease-in 0s;-webkit-transition:margin .3s ease-in 0s;-o-transition:margin .3s ease-in 0s;transition:margin .3s ease-in 0s}.wpmui-toggle-inner:after,.wpmui-toggle-inner:before{display:block;float:left;width:50%;height:5px;padding:0;line-height:5px;font-size:10px;color:#fff;font-family:Trebuchet,Arial,sans-serif;font-weight:700;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;box-shadow:0 1px 0 rgba(0,0,0,.2) inset}.wpmui-toggle-inner:before{content:"";padding-left:5px;background-color:#0074a2}.wpmui-toggle-inner:after{content:"";padding-right:5px;background-color:#eee;text-align:right}.wpmui-toggle-switch{display:block;width:14px;margin:-3.5px;background:#f8f8f8;border:1px solid #ccc;border-radius:15px;position:absolute;top:0;bottom:0;right:20px;-moz-transition:all .3s ease-in 0s;-webkit-transition:all .3s ease-in 0s;-o-transition:all .3s ease-in 0s;transition:all .3s ease-in 0s;box-shadow:-1px 1px 2px rgba(0,0,0,.1)}.wpmui-toggle-checkbox:checked+.wpmui-toggle-label .wpmui-toggle-inner{margin-left:0}.wpmui-toggle-checkbox:checked+.wpmui-toggle-label .wpmui-toggle-switch{right:0}.wpmui-confirm-modal{left:0;top:0;right:0;bottom:0;z-index:99998;background:#000;opacity:.4}.wpmui-confirm-box{top:25%;width:580px;padding:20px 20px 0;left:50%;margin-left:-310px;z-index:99999;background:#fff;box-shadow:0 0 10px rgba(0,0,0,.4)}.wpmui-confirm-box .wpmui-confirm-btn{margin:10px -20px 0;padding:10px 20px;text-align:right;background:#fafafa;border-top:1px solid #e5e5e5}.wpmui-confirm-box .wpmui-confirm-btn button{margin-left:10px}.wpmui-progress-wrap{position:relative;width:100%}.wpmui-progress-wrap .wpmui-progress-full{background:rgba(255,255,255,.7);width:100%;border-radius:2px;box-shadow:1px 1px 2px 0 rgba(0,0,0,.1)}.wpmui-progress-wrap .wpmui-progress{background:#369;border-radius:2px;height:28px;transition:width .25s}.wpmui-progress-wrap .wpmui-progress-percent{position:absolute;left:0;right:0;top:0;line-height:28px;font-size:13px;text-align:center;color:#fff;text-shadow:0 0 5px #264d73}.wpmui-progress-wrap .wpmui-progress-percent:before{content:'';position:absolute;left:50%;width:30px;height:10px;top:50%;border-radius:5px;margin-top:-5px;margin-left:-15px;box-shadow:0 0 8px 4px #264d73;background:#264d73;z-index:-1;opacity:.5}.wpmui-progress-wrap .wpmui-progress-label{font-size:12px;margin-top:6px;color:#888;text-align:right}.no-pad-top{padding-top:0!important;margin-top:0!important}.no-pad-bottom{padding-bottom:0!important;margin-bottom:0!important}.no-pad{padding-top:0!important;padding-bottom:0!important;margin-top:0!important;margin-bottom:0!important}.dashicons.light{opacity:.5}.cf:after,.cf:before{content:'';display:table}.cf:after{clear:both}.wpmui-left{float:left}.wpmui-right{float:right}.button .dashicons,.button-primary .dashicons{line-height:26px;height:26px;float:left;margin-right:6px}
inc/external/wpmu-lib/inc/class-thelib-array.php CHANGED
@@ -201,7 +201,8 @@ class TheLib_Array extends TheLib {
201
  */
202
  public function equip_post( $fields ) {
203
  $fields = is_array( $fields ) ? $fields : func_get_args();
204
- return $this->equip( $_POST, $fields );
 
205
  }
206
 
207
  /**
@@ -216,7 +217,8 @@ class TheLib_Array extends TheLib {
216
  */
217
  public function equip_request( $fields ) {
218
  $fields = is_array( $fields ) ? $fields : func_get_args();
219
- return $this->equip( $_REQUEST, $fields );
 
220
  }
221
 
222
  /**
@@ -231,7 +233,8 @@ class TheLib_Array extends TheLib {
231
  */
232
  public function equip_get( $fields ) {
233
  $fields = is_array( $fields ) ? $fields : func_get_args();
234
- return $this->equip( $_GET, $fields );
 
235
  }
236
 
237
  /**
201
  */
202
  public function equip_post( $fields ) {
203
  $fields = is_array( $fields ) ? $fields : func_get_args();
204
+ $post_fields = map_deep( $_POST, 'sanitize_text_field' );
205
+ return $this->equip( $post_fields, $fields );
206
  }
207
 
208
  /**
217
  */
218
  public function equip_request( $fields ) {
219
  $fields = is_array( $fields ) ? $fields : func_get_args();
220
+ $request_fields = map_deep( $_REQUEST, 'sanitize_text_field' );
221
+ return $this->equip( $request_fields, $fields );
222
  }
223
 
224
  /**
233
  */
234
  public function equip_get( $fields ) {
235
  $fields = is_array( $fields ) ? $fields : func_get_args();
236
+ $get_data = map_deep($_GET,'sanitize_text_field');
237
+ return $this->equip( $get_data, $fields );
238
  }
239
 
240
  /**
inc/external/wpmu-lib/inc/class-thelib-core.php CHANGED
@@ -217,87 +217,4 @@ class TheLib_Core extends TheLib {
217
 
218
  return $retval;
219
  }
220
-
221
-
222
- /**
223
- * Return URL link for wp.org, wpmudev, support, live chat, docs, installing plugin.
224
- *
225
- * @param string $plugin_name .
226
- * @param string $link_for Accepts: 'chat', 'plugin', 'support', 'smush', 'docs', 'install_plugin'.
227
- * @param string $campaign Utm campaign tag to be used in link.
228
- *
229
- * @return string
230
- */
231
- public function get_link( $plugin_name, $link_for, $campaign ) {
232
- $domain = 'https://premium.wpmudev.org';
233
- $wp_org = 'https://wordpress.org';
234
- $utm_tags = "?utm_source={$plugin_name}&utm_medium=plugin&utm_campaign={$campaign}";
235
-
236
- $data = array(
237
- 'hummingbird' => array(
238
- 'wporg' => 'hummingbird-performance',
239
- 'wpmudev' => 'wp-hummingbird',
240
- 'pid' => '1081721',
241
- ),
242
- 'smush' => array(
243
- 'wporg' => 'wp-smushit',
244
- 'wpmudev' => 'wp-smush-pro',
245
- 'pid' => '912164',
246
- ),
247
- 'hustle' => array(
248
- 'wporg' => 'wordpress-popup',
249
- 'wpmudev' => 'hustle',
250
- 'pid' => '1107020',
251
- ),
252
- );
253
-
254
- switch ( $link_for ) {
255
- case 'chat':
256
- $link = "{$domain}/live-support/{$utm_tags}";
257
- break;
258
- case 'plugin':
259
- $link = "{$domain}/project/{$data[ $plugin_name ]['wpmudev']}/{$utm_tags}";
260
- break;
261
- case 'support':
262
- if ( $this->is_member() ) {
263
- $link = "{$domain}/forum/support#question{$utm_tags}";
264
- } else {
265
- $link = "{$wp_org}/support/plugin/{$data[ $plugin_name ]['wporg']}";
266
- }
267
- break;
268
- case 'docs':
269
- $link = "{$domain}/docs/wpmu-dev-plugins/{$plugin_name}/{$utm_tags}";
270
- break;
271
- case 'install_plugin':
272
- if ( $this->is_member() ) {
273
- // Return the pro plugin URL.
274
- $url = WPMUDEV_Dashboard::$ui->page_urls->plugins_url;
275
- $link = $url . '#pid=' . $data[ $plugin_name ]['pid'];
276
- } else {
277
- // Return the free URL.
278
- $link = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $data[ $plugin_name ]['wporg'] ), 'install-plugin_' . $data[ $plugin_name ]['wporg'] );
279
- }
280
- break;
281
- default:
282
- $link = '';
283
- break;
284
- }
285
-
286
- return $link;
287
- }
288
-
289
-
290
- /**
291
- * Check if user is a paid one in WPMU DEV
292
- *
293
- * @return bool
294
- */
295
- public function is_member() {
296
- if ( function_exists( 'is_wpmudev_member' ) ) {
297
- return is_wpmudev_member();
298
- }
299
-
300
- return false;
301
- }
302
-
303
  }
217
 
218
  return $retval;
219
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  }
inc/external/wpmu-lib/inc/class-thelib-debug.php CHANGED
@@ -251,11 +251,11 @@ class TheLib_Debug extends TheLib {
251
  if ( headers_sent() ) {
252
  // HTTP Headers already sent, so add the response as HTML comment.
253
  $message = str_replace( '-->', '--/>', $message );
254
- printf( "<!-- Debug-Note[%s]: %s -->\n", $Number, $message );
255
  } else {
256
  // No output was sent yet so add the message to the HTTP headers.
257
  $message = str_replace( array( "\n", "\r" ), ' ', $message );
258
- header( "X-Debug-Note[$Number]: $message", false );
259
  }
260
  }
261
 
@@ -296,7 +296,8 @@ class TheLib_Debug extends TheLib {
296
  } else {
297
  foreach ( func_get_args() as $param ) {
298
  $dump = var_export( $param, true );
299
- echo "\r\n" . $dump;
 
300
  }
301
  }
302
 
@@ -422,7 +423,7 @@ class TheLib_Debug extends TheLib {
422
  }
423
 
424
  if ( $output ) {
425
- echo '' . $trace_str;
426
  }
427
 
428
  return $trace_str;
@@ -627,7 +628,7 @@ class TheLib_Debug extends TheLib {
627
  if ( ! empty( $args['do_collapse'] ) ) {
628
  $row_attr = 'style="display:none;"';
629
  }
630
- echo '<tr class="' . $row_class . '"' . $row_attr . '><td>';
631
 
632
  // Property-key, if set.
633
  if ( $key === null ) {
@@ -673,23 +674,23 @@ class TheLib_Debug extends TheLib {
673
  $key_style .= 'background:#FDA;';
674
  }
675
 
676
- echo '<span class="dev-item dev-item-key" style="' . $key_style . '">[ ' . $prefix . $key . ' ]</span>';
677
  echo '<span class="dev-item"> => </span>';
678
  }
679
 
680
  // Data-Type.
681
  if ( ! empty( $args['toggle'] ) ) {
682
- echo '<a href="javascript:toggleDisplay(\''. $args['toggle'] . '\',\'' . trim( $row_class . ' ' . $args['toggle'] ) . '\');" class="dev-item dev-toggle-item">';
683
- echo '<span style="color:#666666">' . $type . '</span>&nbsp;&nbsp;';
684
  echo '</a>';
685
  } else {
686
- echo '<span class="dev-item" style="color:#666666">' . $type . '&nbsp;&nbsp;</span>';
687
  }
688
 
689
  if ( ! empty( $args['toggle'] ) ) {
690
  $collapsed = ! empty( $args['do_collapse_next'] );
691
  $toggle_style = 'display: ' . ( $collapsed ? 'inline' : 'none' );
692
- echo '<span id="plus' . $args['toggle'] . '" class="plus dev-item" style="' . $toggle_style . '">&nbsp;&#10549;</span>';
693
  }
694
 
695
  // Value.
@@ -698,7 +699,7 @@ class TheLib_Debug extends TheLib {
698
  if ( isset( $args['highlight'] ) ) {
699
  $value_style = $args['highlight'];
700
  }
701
- echo '<span class="dev-item" style="color:' . $type_color . ';' . $value_style . '">' . $value . '</span>';
702
  }
703
 
704
  echo '</td></tr>';
251
  if ( headers_sent() ) {
252
  // HTTP Headers already sent, so add the response as HTML comment.
253
  $message = str_replace( '-->', '--/>', $message );
254
+ printf( "<!-- Debug-Note[%s]: %s -->\n", esc_html( $Number), esc_html( $message ) );
255
  } else {
256
  // No output was sent yet so add the message to the HTTP headers.
257
  $message = str_replace( array( "\n", "\r" ), ' ', $message );
258
+ header( "X-Debug-Note[" . esc_html( $Number ) . "]: " . esc_html( $message ), false );
259
  }
260
  }
261
 
296
  } else {
297
  foreach ( func_get_args() as $param ) {
298
  $dump = var_export( $param, true );
299
+ echo "\r\n";
300
+ CustomSidebars::wp_kses_wf( $dump );
301
  }
302
  }
303
 
423
  }
424
 
425
  if ( $output ) {
426
+ CustomSidebars::wp_kses_wf( $trace_str );
427
  }
428
 
429
  return $trace_str;
628
  if ( ! empty( $args['do_collapse'] ) ) {
629
  $row_attr = 'style="display:none;"';
630
  }
631
+ echo '<tr class="' . esc_attr($row_class) . '"' . esc_html($row_attr) . '><td>';
632
 
633
  // Property-key, if set.
634
  if ( $key === null ) {
674
  $key_style .= 'background:#FDA;';
675
  }
676
 
677
+ echo '<span class="dev-item dev-item-key" style="' . esc_attr($key_style) . '">[ ' . esc_attr($prefix) . esc_attr($key) . ' ]</span>';
678
  echo '<span class="dev-item"> => </span>';
679
  }
680
 
681
  // Data-Type.
682
  if ( ! empty( $args['toggle'] ) ) {
683
+ echo '<a href="javascript:toggleDisplay(\''. esc_attr($args['toggle']) . '\',\'' . esc_attr(trim( $row_class . ' ' . $args['toggle'] ) ) . '\');" class="dev-item dev-toggle-item">';
684
+ echo '<span style="color:#666666">' . esc_attr($type) . '</span>&nbsp;&nbsp;';
685
  echo '</a>';
686
  } else {
687
+ echo '<span class="dev-item" style="color:#666666">' . esc_attr($type) . '&nbsp;&nbsp;</span>';
688
  }
689
 
690
  if ( ! empty( $args['toggle'] ) ) {
691
  $collapsed = ! empty( $args['do_collapse_next'] );
692
  $toggle_style = 'display: ' . ( $collapsed ? 'inline' : 'none' );
693
+ echo '<span id="plus' . esc_attr($args['toggle']) . '" class="plus dev-item" style="' . esc_attr($toggle_style) . '">&nbsp;&#10549;</span>';
694
  }
695
 
696
  // Value.
699
  if ( isset( $args['highlight'] ) ) {
700
  $value_style = $args['highlight'];
701
  }
702
+ echo '<span class="dev-item" style="color:' . esc_attr($type_color) . ';' . esc_attr($value_style) . '">' . esc_attr($value) . '</span>';
703
  }
704
 
705
  echo '</td></tr>';
inc/external/wpmu-lib/inc/class-thelib-html.php CHANGED
@@ -259,6 +259,7 @@ class TheLib_Html extends TheLib {
259
  * @internal
260
  */
261
  public function _popup_callback() {
 
262
  $items = self::_get( 'popup' );
263
  self::_clear( 'popup' );
264
  $screen_info = get_current_screen();
@@ -274,12 +275,13 @@ class TheLib_Html extends TheLib {
274
  if ( empty( $screen ) || $screen_id == $screen ) {
275
  $body = '<div>' . $body . '</div>';
276
  echo '<script>jQuery(function(){wpmUi.popup()';
277
- printf( '.title( %1$s, %2$s )', json_encode( $title ), $close );
278
- printf( '.modal( %1$s, %2$s )', $modal, $persist );
279
- printf( '.size( %1$s, %2$s )', json_encode( $width ), json_encode( $height ) );
280
- printf( '.set_class( %1$s )', json_encode( $class ) );
281
- printf( '.content( %1$s )', json_encode( $body ) );
282
  echo '.show();})</script>';
 
283
  }
284
  }
285
  }
@@ -384,7 +386,7 @@ class TheLib_Html extends TheLib {
384
  if ( $return ) {
385
  return $field_args;
386
  } else {
387
- echo $field_args;
388
  return;
389
  }
390
  }
@@ -495,9 +497,9 @@ class TheLib_Html extends TheLib {
495
  }
496
 
497
  if ( isset( $_POST[ $sticky_key ] ) ) {
498
- $value = $_POST[ $sticky_key ];
499
  } elseif ( isset( $_GET[ $sticky_key ] ) ) {
500
- $value = $_GET[ $sticky_key ];
501
  }
502
  }
503
 
@@ -813,7 +815,7 @@ class TheLib_Html extends TheLib {
813
  esc_attr( $id ),
814
  esc_attr( sanitize_title( $name ) ),
815
  esc_attr( $value ),
816
- $attr
817
  );
818
  if ( ! empty( $labels->title ) ) {
819
  $this->element_desc( $labels );
@@ -844,7 +846,7 @@ class TheLib_Html extends TheLib {
844
  esc_attr( $id ),
845
  esc_attr( $name ),
846
  esc_attr( $value ),
847
- $attr
848
  );
849
 
850
  $this->element_hint( $labels );
@@ -867,7 +869,7 @@ class TheLib_Html extends TheLib {
867
  esc_attr( $id ),
868
  esc_attr( $name ),
869
  esc_textarea( $value ),
870
- $attr
871
  );
872
 
873
  $this->element_hint( $labels );
@@ -891,8 +893,8 @@ class TheLib_Html extends TheLib {
891
  esc_attr( $id ),
892
  esc_attr( $class ),
893
  esc_attr( $name ),
894
- $attr,
895
- $options
896
  );
897
 
898
  $this->element_hint( $labels );
@@ -940,9 +942,9 @@ class TheLib_Html extends TheLib {
940
  esc_attr( $key ),
941
  esc_attr( $name ),
942
  esc_attr( $id ),
943
- $item_attr . $checked,
944
- $item_text,
945
- $radio_desc
946
  );
947
  }
948
 
@@ -967,9 +969,9 @@ class TheLib_Html extends TheLib {
967
  // Multiple items in the checkbox list.
968
  printf(
969
  '<div class="wpmui-checkbox-title">%1$s %2$s</div><div class="wpmui-checkbox-list wpmui-field-input">%3$s',
970
- $labels->title,
971
- $labels->tooltip,
972
- $item_desc
973
  );
974
  $item_desc = '';
975
 
@@ -1058,8 +1060,8 @@ class TheLib_Html extends TheLib {
1058
  printf(
1059
  '<label class="wpmui-checkbox-wrapper wpmui-field-label wpmui-no-checkbox %1$s">%2$s %3$s</label>',
1060
  esc_attr( $item_class ),
1061
- $item['label'],
1062
- $item_desc
1063
  );
1064
  } else {
1065
  printf(
@@ -1067,10 +1069,10 @@ class TheLib_Html extends TheLib {
1067
  esc_attr( $id ),
1068
  esc_attr( $item_class ),
1069
  esc_attr( $item['name'] ),
1070
- $attr . $item['checked'],
1071
- $item['label'],
1072
- $item_desc,
1073
- $item['value']
1074
  );
1075
  }
1076
  }
@@ -1111,10 +1113,10 @@ class TheLib_Html extends TheLib {
1111
  esc_attr( $class ),
1112
  esc_attr( $id ),
1113
  esc_attr( $name ),
1114
- $label,
1115
- $attr,
1116
- $value,
1117
- $type
1118
  );
1119
 
1120
  $this->element_hint( $labels );
@@ -1136,7 +1138,7 @@ class TheLib_Html extends TheLib {
1136
  esc_attr( $name ),
1137
  esc_url( $value ),
1138
  esc_attr( $alt ),
1139
- $attr
1140
  );
1141
 
1142
  $this->element_hint( $labels );
@@ -1176,11 +1178,11 @@ class TheLib_Html extends TheLib {
1176
  printf(
1177
  '<div class="wpmui-radio-slider %1$s wpmui-slider-%5$s %7$s" %6$s>%8$s<div class="wpmui-toggle" %2$s>%3$s</div>%4$s%9$s</div>',
1178
  esc_attr( $turned ),
1179
- $attr,
1180
- $link_url,
1181
- $attr_input,
1182
  esc_attr( $id ),
1183
- $read_only,
1184
  esc_attr( $class ),
1185
  '<span class="before"></span>',
1186
  '<span class="after"></span>'
@@ -1216,7 +1218,7 @@ class TheLib_Html extends TheLib {
1216
  '<div id="%1$s" class="wpmui-no-data wpmui-field-input %2$s">%3$s</div>',
1217
  esc_attr( $id ),
1218
  esc_attr( $class ),
1219
- $empty_text
1220
  );
1221
  } else {
1222
  // There are values to select or remove. Display the input elements.
@@ -1231,8 +1233,8 @@ class TheLib_Html extends TheLib {
1231
  esc_attr( $id ),
1232
  esc_attr( $src_class ),
1233
  esc_attr( $name ),
1234
- $attr,
1235
- $options_available
1236
  );
1237
 
1238
  // Button: Add element from First Select to Second Select.
@@ -1240,7 +1242,7 @@ class TheLib_Html extends TheLib {
1240
  '<button id="_src_add_%1$s" class="wpmui-field-input wpmui-tag-button button %2$s" type="button">%3$s</button>',
1241
  esc_attr( $id ),
1242
  esc_attr( $src_class ),
1243
- $button_text
1244
  );
1245
 
1246
  $label_tag = $labels;
@@ -1258,8 +1260,8 @@ class TheLib_Html extends TheLib {
1258
  esc_attr( $id ),
1259
  esc_attr( $class ),
1260
  esc_attr( $name ),
1261
- $ajax_data,
1262
- $options_selected
1263
  );
1264
  }
1265
 
@@ -1363,9 +1365,9 @@ class TheLib_Html extends TheLib {
1363
  esc_attr( strip_tags( $title ) ),
1364
  esc_attr( $class ),
1365
  esc_url( $url ),
1366
- $label,
1367
- $attr,
1368
- $target
1369
  );
1370
 
1371
  $this->element_hint( $labels );
@@ -1387,7 +1389,7 @@ class TheLib_Html extends TheLib {
1387
  '<%1$s class="%2$s">%3$s</%1$s>',
1388
  esc_attr( $wrap ),
1389
  esc_attr( $class ),
1390
- $code
1391
  );
1392
 
1393
  $this->element_hint( $labels );
@@ -1457,8 +1459,8 @@ class TheLib_Html extends TheLib {
1457
  printf(
1458
  '<table class="wpmui-html-table %1$s">%2$s%3$s</table>',
1459
  esc_attr( $class ),
1460
- '<thead>' . $code_head . '</thead>',
1461
- '<tbody>' . $code_body . '</tbody>'
1462
  );
1463
  }
1464
 
@@ -1569,9 +1571,9 @@ class TheLib_Html extends TheLib {
1569
 
1570
  printf(
1571
  '<%1$s class="wpmui-wrapper wpmui-%2$s-wrapper %3$s">',
1572
- $tag,
1573
- $type,
1574
- $extra_classes
1575
  );
1576
  }
1577
 
@@ -1584,7 +1586,7 @@ class TheLib_Html extends TheLib {
1584
  * @param string $tag Optional. The tag name, default 'span'
1585
  */
1586
  private function wrap_close( $tag = 'span' ) {
1587
- printf( '</%1$s>', $tag );
1588
  }
1589
 
1590
  /**
@@ -1598,8 +1600,8 @@ class TheLib_Html extends TheLib {
1598
  printf(
1599
  '<%5$s for="%1$s" class="wpmui-field-label %4$s">%2$s %3$s</%5$s>',
1600
  esc_attr( $labels->id ),
1601
- $labels->title,
1602
- $labels->tooltip_code,
1603
  esc_attr( ' wpmui-label-' . $labels->id . ' ' . $labels->class ),
1604
  esc_attr( $labels->label_type )
1605
  );
@@ -1618,7 +1620,7 @@ class TheLib_Html extends TheLib {
1618
  if ( ! empty( $labels->desc ) ) {
1619
  printf(
1620
  '<label class="wpmui-field-description %2$s" for="%3$s">%1$s</label >',
1621
- $labels->desc,
1622
  esc_attr( 'wpmui-description-' . $labels->id . ' ' . $labels->class ),
1623
  esc_attr( $labels->id )
1624
  );
@@ -1627,7 +1629,7 @@ class TheLib_Html extends TheLib {
1627
  if ( ! empty( $labels->before ) ) {
1628
  printf(
1629
  '<span class="wpmui-label-before">%s</span>',
1630
- $labels->before
1631
  );
1632
  }
1633
  }
@@ -1642,12 +1644,12 @@ class TheLib_Html extends TheLib {
1642
  if ( ! empty( $labels->after ) ) {
1643
  printf(
1644
  '<span class="wpmui-label-after">%s</span>',
1645
- $labels->after
1646
  );
1647
  }
1648
 
1649
  if ( empty( $labels->title ) ) {
1650
- echo $labels->tooltip_code;
1651
  }
1652
  }
1653
 
@@ -1675,7 +1677,7 @@ class TheLib_Html extends TheLib {
1675
  <div class="wpmui-tooltip">
1676
  <div class="wpmui-tooltip-button">&times;</div>
1677
  <div class="wpmui-tooltip-content">
1678
- <?php echo $tip; ?>
1679
  </div>
1680
  </div>
1681
  <?php
@@ -1711,7 +1713,7 @@ class TheLib_Html extends TheLib {
1711
  esc_attr( $id ),
1712
  esc_attr( $name ),
1713
  esc_attr( $value ),
1714
- $attr
1715
  );
1716
  $this->element_hint( $labels );
1717
  $this->wrap_close();
@@ -1750,7 +1752,7 @@ class TheLib_Html extends TheLib {
1750
  esc_attr( $name ),
1751
  esc_attr( $value )
1752
  );
1753
- echo $content;
1754
  $this->element_hint( $labels );
1755
  }
1756
  }
259
  * @internal
260
  */
261
  public function _popup_callback() {
262
+ error_log('popup');
263
  $items = self::_get( 'popup' );
264
  self::_clear( 'popup' );
265
  $screen_info = get_current_screen();
275
  if ( empty( $screen ) || $screen_id == $screen ) {
276
  $body = '<div>' . $body . '</div>';
277
  echo '<script>jQuery(function(){wpmUi.popup()';
278
+ printf( '.title( %1$s, %2$s )', json_encode( esc_attr($title) ), esc_attr($close) );
279
+ printf( '.modal( %1$s, %2$s )', esc_attr($modal), esc_attr($persist) );
280
+ printf( '.size( %1$s, %2$s )', json_encode( esc_attr($width) ), json_encode( esc_attr($height) ) );
281
+ printf( '.set_class( %1$s )', json_encode( esc_attr($class) ) );
282
+ printf( '.content( %1$s )', json_encode( esc_attr($body) ) );
283
  echo '.show();})</script>';
284
+
285
  }
286
  }
287
  }
386
  if ( $return ) {
387
  return $field_args;
388
  } else {
389
+ CustomSidebars::wp_kses_wf($field_args);
390
  return;
391
  }
392
  }
497
  }
498
 
499
  if ( isset( $_POST[ $sticky_key ] ) ) {
500
+ $value = sanitize_text_field($_POST[ $sticky_key ]);
501
  } elseif ( isset( $_GET[ $sticky_key ] ) ) {
502
+ $value = sanitize_text_field($_GET[ $sticky_key ]);
503
  }
504
  }
505
 
815
  esc_attr( $id ),
816
  esc_attr( sanitize_title( $name ) ),
817
  esc_attr( $value ),
818
+ esc_html( $attr )
819
  );
820
  if ( ! empty( $labels->title ) ) {
821
  $this->element_desc( $labels );
846
  esc_attr( $id ),
847
  esc_attr( $name ),
848
  esc_attr( $value ),
849
+ esc_html( $attr )
850
  );
851
 
852
  $this->element_hint( $labels );
869
  esc_attr( $id ),
870
  esc_attr( $name ),
871
  esc_textarea( $value ),
872
+ esc_html( $attr )
873
  );
874
 
875
  $this->element_hint( $labels );
893
  esc_attr( $id ),
894
  esc_attr( $class ),
895
  esc_attr( $name ),
896
+ esc_html( $attr ),
897
+ esc_html( $options )
898
  );
899
 
900
  $this->element_hint( $labels );
942
  esc_attr( $key ),
943
  esc_attr( $name ),
944
  esc_attr( $id ),
945
+ esc_html( $item_attr . $checked ),
946
+ esc_html( $item_text ),
947
+ esc_html( $radio_desc )
948
  );
949
  }
950
 
969
  // Multiple items in the checkbox list.
970
  printf(
971
  '<div class="wpmui-checkbox-title">%1$s %2$s</div><div class="wpmui-checkbox-list wpmui-field-input">%3$s',
972
+ esc_html($labels->title),
973
+ esc_html($labels->tooltip),
974
+ esc_html($item_desc)
975
  );
976
  $item_desc = '';
977
 
1060
  printf(
1061
  '<label class="wpmui-checkbox-wrapper wpmui-field-label wpmui-no-checkbox %1$s">%2$s %3$s</label>',
1062
  esc_attr( $item_class ),
1063
+ esc_html($item['label']),
1064
+ esc_html($item_desc)
1065
  );
1066
  } else {
1067
  printf(
1069
  esc_attr( $id ),
1070
  esc_attr( $item_class ),
1071
  esc_attr( $item['name'] ),
1072
+ esc_html($attr . $item['checked']),
1073
+ esc_html($item['label']),
1074
+ esc_html($item_desc),
1075
+ esc_html($item['value'])
1076
  );
1077
  }
1078
  }
1113
  esc_attr( $class ),
1114
  esc_attr( $id ),
1115
  esc_attr( $name ),
1116
+ esc_html( $label ),
1117
+ esc_html( $attr ),
1118
+ esc_html( $value ),
1119
+ esc_html( $type )
1120
  );
1121
 
1122
  $this->element_hint( $labels );
1138
  esc_attr( $name ),
1139
  esc_url( $value ),
1140
  esc_attr( $alt ),
1141
+ esc_html( $attr )
1142
  );
1143
 
1144
  $this->element_hint( $labels );
1178
  printf(
1179
  '<div class="wpmui-radio-slider %1$s wpmui-slider-%5$s %7$s" %6$s>%8$s<div class="wpmui-toggle" %2$s>%3$s</div>%4$s%9$s</div>',
1180
  esc_attr( $turned ),
1181
+ esc_html( $attr ),
1182
+ esc_url( $link_url ),
1183
+ esc_html( $attr_input ),
1184
  esc_attr( $id ),
1185
+ esc_html( $read_only ),
1186
  esc_attr( $class ),
1187
  '<span class="before"></span>',
1188
  '<span class="after"></span>'
1218
  '<div id="%1$s" class="wpmui-no-data wpmui-field-input %2$s">%3$s</div>',
1219
  esc_attr( $id ),
1220
  esc_attr( $class ),
1221
+ esc_html( $empty_text )
1222
  );
1223
  } else {
1224
  // There are values to select or remove. Display the input elements.
1233
  esc_attr( $id ),
1234
  esc_attr( $src_class ),
1235
  esc_attr( $name ),
1236
+ esc_html( $attr ),
1237
+ esc_html( $options_available )
1238
  );
1239
 
1240
  // Button: Add element from First Select to Second Select.
1242
  '<button id="_src_add_%1$s" class="wpmui-field-input wpmui-tag-button button %2$s" type="button">%3$s</button>',
1243
  esc_attr( $id ),
1244
  esc_attr( $src_class ),
1245
+ esc_html( $button_text )
1246
  );
1247
 
1248
  $label_tag = $labels;
1260
  esc_attr( $id ),
1261
  esc_attr( $class ),
1262
  esc_attr( $name ),
1263
+ esc_html( $ajax_data ),
1264
+ esc_html( $options_selected )
1265
  );
1266
  }
1267
 
1365
  esc_attr( strip_tags( $title ) ),
1366
  esc_attr( $class ),
1367
  esc_url( $url ),
1368
+ esc_html( $label ),
1369
+ esc_html( $attr ),
1370
+ esc_html( $target )
1371
  );
1372
 
1373
  $this->element_hint( $labels );
1389
  '<%1$s class="%2$s">%3$s</%1$s>',
1390
  esc_attr( $wrap ),
1391
  esc_attr( $class ),
1392
+ esc_html( $code )
1393
  );
1394
 
1395
  $this->element_hint( $labels );
1459
  printf(
1460
  '<table class="wpmui-html-table %1$s">%2$s%3$s</table>',
1461
  esc_attr( $class ),
1462
+ '<thead>' . esc_html($code_head) . '</thead>',
1463
+ '<tbody>' . esc_html($code_body) . '</tbody>'
1464
  );
1465
  }
1466
 
1571
 
1572
  printf(
1573
  '<%1$s class="wpmui-wrapper wpmui-%2$s-wrapper %3$s">',
1574
+ esc_html( $tag ),
1575
+ esc_html( $type ),
1576
+ esc_html( $extra_classes )
1577
  );
1578
  }
1579
 
1586
  * @param string $tag Optional. The tag name, default 'span'
1587
  */
1588
  private function wrap_close( $tag = 'span' ) {
1589
+ printf( '</%1$s>', esc_html( $tag ) );
1590
  }
1591
 
1592
  /**
1600
  printf(
1601
  '<%5$s for="%1$s" class="wpmui-field-label %4$s">%2$s %3$s</%5$s>',
1602
  esc_attr( $labels->id ),
1603
+ esc_html( $labels->title ),
1604
+ esc_html( $labels->tooltip_code ),
1605
  esc_attr( ' wpmui-label-' . $labels->id . ' ' . $labels->class ),
1606
  esc_attr( $labels->label_type )
1607
  );
1620
  if ( ! empty( $labels->desc ) ) {
1621
  printf(
1622
  '<label class="wpmui-field-description %2$s" for="%3$s">%1$s</label >',
1623
+ esc_html( $labels->desc ),
1624
  esc_attr( 'wpmui-description-' . $labels->id . ' ' . $labels->class ),
1625
  esc_attr( $labels->id )
1626
  );
1629
  if ( ! empty( $labels->before ) ) {
1630
  printf(
1631
  '<span class="wpmui-label-before">%s</span>',
1632
+ esc_html( $labels->before )
1633
  );
1634
  }
1635
  }
1644
  if ( ! empty( $labels->after ) ) {
1645
  printf(
1646
  '<span class="wpmui-label-after">%s</span>',
1647
+ esc_html( $labels->after )
1648
  );
1649
  }
1650
 
1651
  if ( empty( $labels->title ) ) {
1652
+ echo esc_html( $labels->tooltip_code );
1653
  }
1654
  }
1655
 
1677
  <div class="wpmui-tooltip">
1678
  <div class="wpmui-tooltip-button">&times;</div>
1679
  <div class="wpmui-tooltip-content">
1680
+ <?php echo esc_html( $tip ); ?>
1681
  </div>
1682
  </div>
1683
  <?php
1713
  esc_attr( $id ),
1714
  esc_attr( $name ),
1715
  esc_attr( $value ),
1716
+ esc_html( $attr )
1717
  );
1718
  $this->element_hint( $labels );
1719
  $this->wrap_close();
1752
  esc_attr( $name ),
1753
  esc_attr( $value )
1754
  );
1755
+ CustomSidebars::wp_kses_wf( $content );
1756
  $this->element_hint( $labels );
1757
  }
1758
  }
inc/external/wpmu-lib/inc/class-thelib-net.php CHANGED
@@ -174,37 +174,9 @@ class TheLib_Net extends TheLib {
174
  header( 'Content-Length: ' . strlen( $contents ) );
175
 
176
  // Finally send the export-file content.
177
- echo $contents;
178
 
179
  exit;
180
  }
181
 
182
- /**
183
- * Checks if the specified URL is publicly reachable.
184
- *
185
- * @since 1.1.0
186
- * @api
187
- *
188
- * @param string $url The URL to check.
189
- * @return bool If URL is online or not.
190
- */
191
- public function is_online( $url ) {
192
- static $Checked = array();
193
-
194
- if ( ! isset( $Checked[$url] ) ) {
195
- $check = 'https://downforeveryoneorjustme.com/' . $url;
196
- $res = wp_remote_get( $check, array( 'decompress' => false ) );
197
-
198
- if ( is_wp_error( $res ) ) {
199
- $state = false;
200
- } else {
201
- $state = ( false === stripos( $res['body'], 'not just you' ) );
202
- }
203
-
204
- $Checked[$url] = $state;
205
- }
206
-
207
- return $Checked[$url];
208
- }
209
-
210
  }
174
  header( 'Content-Length: ' . strlen( $contents ) );
175
 
176
  // Finally send the export-file content.
177
+ CustomSidebars::wp_kses_wf($contents);
178
 
179
  exit;
180
  }
181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  }
inc/external/wpmu-lib/inc/class-thelib-ui.php CHANGED
@@ -421,7 +421,7 @@ class TheLib_Ui extends TheLib {
421
  foreach ( $collected as $var => $value ) {
422
  printf(
423
  '%1$s = %2$s;',
424
- $var,
425
  json_encode( $value )
426
  );
427
  }
@@ -446,7 +446,7 @@ class TheLib_Ui extends TheLib {
446
  foreach ( $data as $item ) {
447
  printf(
448
  '<script>try { %1$s } catch( err ){ window.console.log(err.message); }</script>',
449
- $item
450
  );
451
  }
452
  }
@@ -530,7 +530,7 @@ class TheLib_Ui extends TheLib {
530
  printf(
531
  '<div class="%1$s notice notice-%1$s is-dismissible %3$s"><p>%2$s</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">%4$s</span></button></div>',
532
  esc_attr( $class ),
533
- $text,
534
  esc_attr( $id ),
535
  __( 'Dismiss this notice.' )
536
  );
421
  foreach ( $collected as $var => $value ) {
422
  printf(
423
  '%1$s = %2$s;',
424
+ esc_html($var),
425
  json_encode( $value )
426
  );
427
  }
446
  foreach ( $data as $item ) {
447
  printf(
448
  '<script>try { %1$s } catch( err ){ window.console.log(err.message); }</script>',
449
+ esc_js($item)
450
  );
451
  }
452
  }
530
  printf(
531
  '<div class="%1$s notice notice-%1$s is-dismissible %3$s"><p>%2$s</p><button type="button" class="notice-dismiss"><span class="screen-reader-text">%4$s</span></button></div>',
532
  esc_attr( $class ),
533
+ esc_html( $text ),
534
  esc_attr( $id ),
535
  __( 'Dismiss this notice.' )
536
  );
inc/external/wpmu-lib/inc/class-thelib-updates.php CHANGED
@@ -437,11 +437,12 @@ class TheLib_Updates extends TheLib {
437
  '<b>Abborting update of %s!</b> '.
438
  'Could not create a restore-point [%s]<br />%s',
439
  ucwords( $this->plugin ),
440
- $err_code,
441
- $error
442
  );
443
 
444
- wp_die( $msg );
 
445
  }
446
 
447
  /**
437
  '<b>Abborting update of %s!</b> '.
438
  'Could not create a restore-point [%s]<br />%s',
439
  ucwords( $this->plugin ),
440
+ esc_html( $err_code ),
441
+ esc_html( $error )
442
  );
443
 
444
+ CustomSidebars::wp_kses_wf( $msg );
445
+ die();
446
  }
447
 
448
  /**
inc/external/wpmu-lib/view/list.php CHANGED
@@ -34,9 +34,9 @@ $current = 'current';
34
  foreach ( $filters as $key => $label ) {
35
  printf(
36
  '<li><a href="#" class="filter %3$s" data-filter="%1$s">%2$s</a></li>',
37
- $key,
38
- $label,
39
- $current
40
  );
41
  $current = '';
42
  }
@@ -64,7 +64,7 @@ $current = 'current';
64
  <?php echo esc_html( $lang->active_badge ); ?>
65
  </span>
66
  </span>
67
- <div class="item-icon"><?php echo $item->icon; ?></div>
68
  <div class="name">
69
  <h4 class="<?php if ( $item->details ) : ?>toggle-details<?php endif; ?> is-no-detail">
70
  <?php echo esc_html( $item->title ); ?>
@@ -74,7 +74,7 @@ $current = 'current';
74
  </h4>
75
  </div>
76
  <div class="desc">
77
- <?php echo $item->description; ?>
78
  </div>
79
  <div class="action-links">
80
  <span class="toggle-details toggle-link is-detail close-button">
@@ -103,7 +103,7 @@ $current = 'current';
103
  </div>
104
  <div class="list-card-bottom">
105
  <span class="list-card-footer is-no-detail">
106
- <?php echo $item->footer; ?>
107
  </span>
108
  <?php if ( $item->details ) : ?>
109
  <span class="toggle-details toggle-link is-no-detail">
34
  foreach ( $filters as $key => $label ) {
35
  printf(
36
  '<li><a href="#" class="filter %3$s" data-filter="%1$s">%2$s</a></li>',
37
+ esc_html( $key ),
38
+ esc_html( $label ),
39
+ esc_html( $current )
40
  );
41
  $current = '';
42
  }
64
  <?php echo esc_html( $lang->active_badge ); ?>
65
  </span>
66
  </span>
67
+ <div class="item-icon"><?php CustomSidebars::wp_kses_wf( $item->icon ); ?></div>
68
  <div class="name">
69
  <h4 class="<?php if ( $item->details ) : ?>toggle-details<?php endif; ?> is-no-detail">
70
  <?php echo esc_html( $item->title ); ?>
74
  </h4>
75
  </div>
76
  <div class="desc">
77
+ <?php CustomSidebars::wp_kses_wf ( $item->description ); ?>
78
  </div>
79
  <div class="action-links">
80
  <span class="toggle-details toggle-link is-detail close-button">
103
  </div>
104
  <div class="list-card-bottom">
105
  <span class="list-card-footer is-no-detail">
106
+ <?php CustomSidebars::wp_kses_wf( $item->footer ); ?>
107
  </span>
108
  <?php if ( $item->details ) : ?>
109
  <span class="toggle-details toggle-link is-no-detail">
inc/external/wpmu-lib/view/pointer.php CHANGED
@@ -51,7 +51,7 @@ $code = str_replace( array( "\r", "\n" ), '', $code );
51
  return;
52
  }
53
  if ( jQuery().pointer !== undefined ) {
54
- var target = jQuery( '<?php echo $html_el; ?>' );
55
  if ( ! target.length ) { return; }
56
  target = target.first();
57
 
@@ -74,7 +74,7 @@ $code = str_replace( array( "\r", "\n" ), '', $code );
74
 
75
  // Insert the pointer HTML code
76
  target.pointer({
77
- content: '<?php echo $code; ?>',
78
  position: {
79
  edge: 'left',
80
  align: 'center'
@@ -92,7 +92,7 @@ $code = str_replace( array( "\r", "\n" ), '', $code );
92
 
93
  <?php if ( $once ) : ?>
94
  jQuery.post( ajaxurl, {
95
- pointer: '<?php echo esc_js( $pointer_id ) ?>',
96
  action: 'dismiss-wp-pointer'
97
  });
98
  <?php endif; ?>
51
  return;
52
  }
53
  if ( jQuery().pointer !== undefined ) {
54
+ var target = jQuery( '<?php CustomSidebars::wp_kses_wf( $html_el ); ?>' );
55
  if ( ! target.length ) { return; }
56
  target = target.first();
57
 
74
 
75
  // Insert the pointer HTML code
76
  target.pointer({
77
+ content: '<?php CustomSidebars::wp_kses_wf( $code ); ?>',
78
  position: {
79
  edge: 'left',
80
  align: 'center'
92
 
93
  <?php if ( $once ) : ?>
94
  jQuery.post( ajaxurl, {
95
+ pointer: '<?php esc_attr_e( $pointer_id ); ?>',
96
  action: 'dismiss-wp-pointer'
97
  });
98
  <?php endif; ?>
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: WebFactory
3
  Tags: sidebar, widget, custom sidebar, dynamic widgets, manage sidebars, flexible layout, replace widgets, custom widget area, footer
4
  Requires at least: 4.6
5
- Tested up to: 6.0
6
- Stable tag: 3.35
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -99,6 +99,9 @@ Any user that can switch themes, can create sidebars. Switch_themes is the capab
99
  Custom Sidebars has the same license as WordPress, so you can use it wherever you want for free. Yay!
100
 
101
  == Changelog ==
 
 
 
102
 
103
  = 3.35 =
104
  * 2022-01-11
2
  Contributors: WebFactory
3
  Tags: sidebar, widget, custom sidebar, dynamic widgets, manage sidebars, flexible layout, replace widgets, custom widget area, footer
4
  Requires at least: 4.6
5
+ Tested up to: 6.1
6
+ Stable tag: 3.36
7
  Requires PHP: 5.6
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
99
  Custom Sidebars has the same license as WordPress, so you can use it wherever you want for free. Yay!
100
 
101
  == Changelog ==
102
+ = 3.36 =
103
+ * 2022-11-26
104
+ * Minor security fixes
105
 
106
  = 3.35 =
107
  * 2022-01-11
views/bulk-edit.php CHANGED
@@ -20,7 +20,7 @@ if ( $print_nonce ) {
20
  ?>
21
  <fieldset class="inline-edit-col-left cs-quickedit">
22
  <div class="inline-edit-col">
23
- <label><?php _e( 'Custom Sidebars', 'custom-sidebars' ); ?></label>
24
  <?php
25
 
26
 
@@ -32,7 +32,7 @@ foreach ( $sidebars as $s ) {
32
  <span class="title"><?php echo esc_html( $sb_name ); ?></span>
33
  <select name="cs_replacement_<?php echo esc_attr( $s ); ?>"
34
  class="cs-replacement-field <?php echo esc_attr( $s ); ?>">
35
- <option value="-"><?php _e( '&mdash; No Change &mdash;', 'custom-sidebars' ); ?></option>
36
  <?php foreach ( $available as $a ) : ?>
37
  <option value="<?php echo esc_attr( $a['id'] ); ?>" <?php selected( $selected[ $s ], $a['id'] ); ?>>
38
  <?php echo esc_html( $a['name'] ); ?>
20
  ?>
21
  <fieldset class="inline-edit-col-left cs-quickedit">
22
  <div class="inline-edit-col">
23
+ <label><?php esc_html_e( 'Custom Sidebars', 'custom-sidebars' ); ?></label>
24
  <?php
25
 
26
 
32
  <span class="title"><?php echo esc_html( $sb_name ); ?></span>
33
  <select name="cs_replacement_<?php echo esc_attr( $s ); ?>"
34
  class="cs-replacement-field <?php echo esc_attr( $s ); ?>">
35
+ <option value="-"><?php esc_html_e( '&mdash; No Change &mdash;', 'custom-sidebars' ); ?></option>
36
  <?php foreach ( $available as $a ) : ?>
37
  <option value="<?php echo esc_attr( $a['id'] ); ?>" <?php selected( $selected[ $s ], $a['id'] ); ?>>
38
  <?php echo esc_html( $a['name'] ); ?>
views/col-sidebars.php CHANGED
@@ -74,7 +74,7 @@ if ( $is_front ) {
74
  echo '-';
75
  } else {
76
  echo '<dl>';
77
- echo $content;
78
  echo '</dl>';
79
  }
80
  }
74
  echo '-';
75
  } else {
76
  echo '<dl>';
77
+ CustomSidebars::wp_kses_wf( $content );
78
  echo '</dl>';
79
  }
80
  }
views/import.php CHANGED
@@ -65,24 +65,24 @@ if ( ! function_exists( 'list_sidebar_replacement' ) ) {
65
  $filename = $import['meta']['filename'];
66
  }
67
  ?>
68
- <h2 class="no-pad-top"><?php _e( 'Import', 'custom-sidebars' ); ?></h2>
69
  <div class="show-infos">
70
  <i class="dashicons dashicons-info"></i>
71
  <div class="export-infos" style="display:none">
72
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
73
  <tbody>
74
  <tr>
75
- <th><?php _e( 'Filename', 'custom-sidebars' ); ?></th>
76
  <td colspan="2"><?php echo esc_html( $filename ); ?></td>
77
  </tr>
78
  <tr>
79
- <th><?php _e( 'Exported on', 'custom-sidebars' ); ?></th>
80
  <td colspan="2"><?php echo esc_html( ' ' . date( $date_format, $import['meta']['created'] ) ); ?></td>
81
  </tr>
82
  </tbody>
83
  </table>
84
 
85
- <div class="section"><?php _e( 'WordPress Settings', 'custom-sidebars' ); ?></div>
86
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
87
  <thead>
88
  <tr>
@@ -93,17 +93,17 @@ if ( ! function_exists( 'list_sidebar_replacement' ) ) {
93
  </thead>
94
  <tbody>
95
  <tr>
96
- <th><?php _e( 'WordPress Version', 'custom-sidebars' ); ?></th>
97
  <td><?php echo esc_html( $import['meta']['wp_version'] ); ?></td>
98
  <td><?php echo esc_html( $wp_version ); ?></td>
99
  </tr>
100
  <tr>
101
- <th><?php _e( 'Plugin Version', 'custom-sidebars' ); ?></th>
102
  <td><?php echo esc_html( $import['meta']['csb_version'] ); ?></td>
103
- <td><?php echo esc_html( isset( $csb_info['Version'] )? $csb_info['Version'] : __( 'Unknown', 'custom-sidebars' ) ); ?></td>
104
  </tr>
105
  <tr>
106
- <th><?php _e( 'Theme', 'custom-sidebars' ); ?></th>
107
  <td><?php echo esc_html( $import['meta']['theme_name'] . ' (' . $import['meta']['theme_version'] . ')' ); ?></td>
108
  <td><?php echo esc_html( $theme->get( 'Name' ) . ' (' . $theme->get( 'Version' ) . ')' ); ?></td>
109
  </tr>
@@ -126,24 +126,24 @@ if ( ! function_exists( 'list_sidebar_replacement' ) ) {
126
  */
127
  $alternate = '';
128
  ?>
129
- <h3 class="title"><?php _e( 'Custom Sidebars', 'custom-sidebars' ); ?></h3>
130
  <p>
131
- <?php _e( 'Mark the sidebars that you want to import.', 'custom-sidebars' ); ?>
132
  </p>
133
  <p>
134
  <label for="import-widgets">
135
  <input type="checkbox" id="import-widgets" name="import_widgets" />
136
- <?php _e( 'Also import all widgets of the selected sidebars.', 'custom-sidebars' ); ?>
137
  </label>
138
  </p>
139
  <table class="widefat">
140
  <thead>
141
  <tr>
142
  <th scope="col" id="cb" class="manage-column column-cb check-column"><input type="checkbox" /></th>
143
- <th scope="col" id="name" class="manage-column column-name"><?php _e( 'Name', 'custom-sidebars' ); ?></th>
144
- <th scope="col" id="description" class="manage-column column-description"><?php _e( 'Description', 'custom-sidebars' ); ?></th>
145
- <th scope="col" id="note" class="manage-column column-note"><?php _e( 'Note', 'custom-sidebars' ); ?></th>
146
- <th scope="col" id="widgets" class="manage-column column-widgets" style="display:none"><?php _e( 'Widgets', 'custom-sidebars' ); ?></th>
147
  </tr>
148
  </thead>
149
  <tbody>
@@ -220,7 +220,7 @@ foreach ( $theme_sidebars as $sidebar ) {
220
  </th>
221
  <td class="name column-name"><label for="<?php echo esc_attr( $id ); ?>"><?php echo esc_html( $sidebar['name'] ); ?></label></td>
222
  <td class="description column-description"><?php echo esc_html( $sidebar['description'] ); ?></td>
223
- <td><em><?php _e( '(Theme sidebar)', 'custom-sidebars' ); ?></em></td>
224
  <td class="widgets column-widgets">
225
  <?php
226
  if ( count( $import_sidebar ) ) {
@@ -248,14 +248,14 @@ if ( count( $import_sidebar ) ) {
248
  */
249
  ?>
250
  <p>&nbsp;</p>
251
- <h3 class="title"><?php _e( 'Configuration', 'custom-sidebars' ); ?>
252
  <div class="show-infos">
253
  <i class="dashicons dashicons-info"></i>
254
  <div class="export-infos" style="display:none">
255
- <div class="section"><?php _e( 'Replaceable Sidebars', 'custom-sidebars' ); ?></div>
256
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
257
  <tr>
258
- <th scope="row"><?php _e( 'Replaceable Sidebars', 'custom-sidebars' ); ?></th>
259
  <td>
260
  <?php foreach ( $import['options']['modifiable'] as $sb_id ) : ?>
261
  <?php echo esc_html( $theme_sidebars[ $sb_id ]['name'] ); ?><br />
@@ -303,7 +303,7 @@ if (
303
  && is_array( $import['options']['post_type_archive'] )
304
  ) {
305
  ?>
306
- <div class="section"><?php _e( 'Post-Type Archives', 'custom-sidebars' ); ?></div>
307
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
308
  <?php
309
  $list = $import['options']['post_type_archive'];
@@ -324,7 +324,7 @@ if (
324
  ) {
325
 
326
  ?>
327
- <div class="section"><?php _e( 'By Category', 'custom-sidebars' ); ?></div>
328
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
329
  <?php
330
  $list = $import['options']['category_single'];
@@ -344,7 +344,7 @@ if (
344
  && is_array( $import['options']['category_archive'] )
345
  ) {
346
  ?>
347
- <div class="section"><?php _e( 'Category Archives', 'custom-sidebars' ); ?></div>
348
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
349
  <?php
350
  $list = $import['options']['category_archive'];
@@ -362,7 +362,7 @@ foreach ( $list as $key => $values ) {
362
  }
363
  ?>
364
  <?php /* special pages */ ?>
365
- <div class="section"><?php _e( 'Special Pages', 'custom-sidebars' ); ?></div>
366
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
367
  <?php
368
  list_sidebar_replacement( __( 'Main Blog Page', 'custom-sidebars' ), $import['options']['blog'] );
@@ -379,7 +379,7 @@ list_sidebar_replacement( __( 'Search Results Page', 'custom-sidebars' ), $impor
379
  <p>
380
  <label for="import-config">
381
  <input type="checkbox" id="import-config" name="import_plugin_config" />
382
- <?php _e( 'Replace the current plugin configuration with the imported configuration.', 'custom-sidebars' ); ?>
383
  </label>
384
  </p>
385
 
65
  $filename = $import['meta']['filename'];
66
  }
67
  ?>
68
+ <h2 class="no-pad-top"><?php esc_html_e( 'Import', 'custom-sidebars' ); ?></h2>
69
  <div class="show-infos">
70
  <i class="dashicons dashicons-info"></i>
71
  <div class="export-infos" style="display:none">
72
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
73
  <tbody>
74
  <tr>
75
+ <th><?php esc_html_e( 'Filename', 'custom-sidebars' ); ?></th>
76
  <td colspan="2"><?php echo esc_html( $filename ); ?></td>
77
  </tr>
78
  <tr>
79
+ <th><?php esc_html_e( 'Exported on', 'custom-sidebars' ); ?></th>
80
  <td colspan="2"><?php echo esc_html( ' ' . date( $date_format, $import['meta']['created'] ) ); ?></td>
81
  </tr>
82
  </tbody>
83
  </table>
84
 
85
+ <div class="section"><?php esc_html_e( 'WordPress Settings', 'custom-sidebars' ); ?></div>
86
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
87
  <thead>
88
  <tr>
93
  </thead>
94
  <tbody>
95
  <tr>
96
+ <th><?php esc_html_e( 'WordPress Version', 'custom-sidebars' ); ?></th>
97
  <td><?php echo esc_html( $import['meta']['wp_version'] ); ?></td>
98
  <td><?php echo esc_html( $wp_version ); ?></td>
99
  </tr>
100
  <tr>
101
+ <th><?php esc_html_e( 'Plugin Version', 'custom-sidebars' ); ?></th>
102
  <td><?php echo esc_html( $import['meta']['csb_version'] ); ?></td>
103
+ <td><?php echo isset( $csb_info['Version'] )? esc_html($csb_info['Version']) : esc_html__( 'Unknown', 'custom-sidebars' ); ?></td>
104
  </tr>
105
  <tr>
106
+ <th><?php esc_html_e( 'Theme', 'custom-sidebars' ); ?></th>
107
  <td><?php echo esc_html( $import['meta']['theme_name'] . ' (' . $import['meta']['theme_version'] . ')' ); ?></td>
108
  <td><?php echo esc_html( $theme->get( 'Name' ) . ' (' . $theme->get( 'Version' ) . ')' ); ?></td>
109
  </tr>
126
  */
127
  $alternate = '';
128
  ?>
129
+ <h3 class="title"><?php esc_html_e( 'Custom Sidebars', 'custom-sidebars' ); ?></h3>
130
  <p>
131
+ <?php esc_html_e( 'Mark the sidebars that you want to import.', 'custom-sidebars' ); ?>
132
  </p>
133
  <p>
134
  <label for="import-widgets">
135
  <input type="checkbox" id="import-widgets" name="import_widgets" />
136
+ <?php esc_html_e( 'Also import all widgets of the selected sidebars.', 'custom-sidebars' ); ?>
137
  </label>
138
  </p>
139
  <table class="widefat">
140
  <thead>
141
  <tr>
142
  <th scope="col" id="cb" class="manage-column column-cb check-column"><input type="checkbox" /></th>
143
+ <th scope="col" id="name" class="manage-column column-name"><?php esc_html_e( 'Name', 'custom-sidebars' ); ?></th>
144
+ <th scope="col" id="description" class="manage-column column-description"><?php esc_html_e( 'Description', 'custom-sidebars' ); ?></th>
145
+ <th scope="col" id="note" class="manage-column column-note"><?php esc_html_e( 'Note', 'custom-sidebars' ); ?></th>
146
+ <th scope="col" id="widgets" class="manage-column column-widgets" style="display:none"><?php esc_html_e( 'Widgets', 'custom-sidebars' ); ?></th>
147
  </tr>
148
  </thead>
149
  <tbody>
220
  </th>
221
  <td class="name column-name"><label for="<?php echo esc_attr( $id ); ?>"><?php echo esc_html( $sidebar['name'] ); ?></label></td>
222
  <td class="description column-description"><?php echo esc_html( $sidebar['description'] ); ?></td>
223
+ <td><em><?php esc_html_e( '(Theme sidebar)', 'custom-sidebars' ); ?></em></td>
224
  <td class="widgets column-widgets">
225
  <?php
226
  if ( count( $import_sidebar ) ) {
248
  */
249
  ?>
250
  <p>&nbsp;</p>
251
+ <h3 class="title"><?php esc_html_e( 'Configuration', 'custom-sidebars' ); ?>
252
  <div class="show-infos">
253
  <i class="dashicons dashicons-info"></i>
254
  <div class="export-infos" style="display:none">
255
+ <div class="section"><?php esc_html_e( 'Replaceable Sidebars', 'custom-sidebars' ); ?></div>
256
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
257
  <tr>
258
+ <th scope="row"><?php esc_html_e( 'Replaceable Sidebars', 'custom-sidebars' ); ?></th>
259
  <td>
260
  <?php foreach ( $import['options']['modifiable'] as $sb_id ) : ?>
261
  <?php echo esc_html( $theme_sidebars[ $sb_id ]['name'] ); ?><br />
303
  && is_array( $import['options']['post_type_archive'] )
304
  ) {
305
  ?>
306
+ <div class="section"><?php esc_html_e( 'Post-Type Archives', 'custom-sidebars' ); ?></div>
307
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
308
  <?php
309
  $list = $import['options']['post_type_archive'];
324
  ) {
325
 
326
  ?>
327
+ <div class="section"><?php esc_html_e( 'By Category', 'custom-sidebars' ); ?></div>
328
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
329
  <?php
330
  $list = $import['options']['category_single'];
344
  && is_array( $import['options']['category_archive'] )
345
  ) {
346
  ?>
347
+ <div class="section"><?php esc_html_e( 'Category Archives', 'custom-sidebars' ); ?></div>
348
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
349
  <?php
350
  $list = $import['options']['category_archive'];
362
  }
363
  ?>
364
  <?php /* special pages */ ?>
365
+ <div class="section"><?php esc_html_e( 'Special Pages', 'custom-sidebars' ); ?></div>
366
  <table cellspacing="1" cellpadding="4" class="csb-export-head">
367
  <?php
368
  list_sidebar_replacement( __( 'Main Blog Page', 'custom-sidebars' ), $import['options']['blog'] );
379
  <p>
380
  <label for="import-config">
381
  <input type="checkbox" id="import-config" name="import_plugin_config" />
382
+ <?php esc_html_e( 'Replace the current plugin configuration with the imported configuration.', 'custom-sidebars' ); ?>
383
  </label>
384
  </p>
385
 
views/metabox.php CHANGED
@@ -33,7 +33,7 @@ if ( ! function_exists( 'custom_sidebars_replace_not_allowed' ) ) {
33
  '<strong>%s</strong>',
34
  sprintf(
35
  esc_html__( 'To change the sidebar for %s', 'custom-sidebars' ),
36
- $page_name
37
  )
38
  );
39
  echo '<ul>';
@@ -86,7 +86,7 @@ if ( $is_front ) {
86
  custom_sidebars_replace_not_allowed( $page_name, 'wooshop-info.png', $archive );
87
  } else {
88
  echo '<p>';
89
- _e( 'Here you can replace the default sidebars. Simply select what sidebar you want to show for this post!', 'custom-sidebars' );
90
  echo '</p>';
91
  if ( ! empty( $sidebars ) ) {
92
  global $wp_registered_sidebars;
33
  '<strong>%s</strong>',
34
  sprintf(
35
  esc_html__( 'To change the sidebar for %s', 'custom-sidebars' ),
36
+ esc_html( $page_name )
37
  )
38
  );
39
  echo '<ul>';
86
  custom_sidebars_replace_not_allowed( $page_name, 'wooshop-info.png', $archive );
87
  } else {
88
  echo '<p>';
89
+ esc_html_e( 'Here you can replace the default sidebars. Simply select what sidebar you want to show for this post!', 'custom-sidebars' );
90
  echo '</p>';
91
  if ( ! empty( $sidebars ) ) {
92
  global $wp_registered_sidebars;
views/widgets-delete.php CHANGED
@@ -8,13 +8,13 @@
8
 
9
  <div class="wpmui-form">
10
  <div>
11
- <?php _e(
12
- 'Please confirm that you want to delete the sidebar <strong class="name"></strong>.', 'custom-sidebars'
13
  ); ?>
14
  </div>
15
  <div class="buttons">
16
- <button type="button" class="button-link btn-cancel"><?php _e( 'Cancel', 'custom-sidebars' ); ?></button>
17
- <button type="button" class="button-primary btn-delete"><?php _e( 'Yes, delete it', 'custom-sidebars' ); ?></button>
18
  <?php wp_nonce_field( 'custom-sidebars-delete-sidebar', '_wp_nonce_cs_delete_sidebar' ); ?>
19
  </div>
20
  </div>
8
 
9
  <div class="wpmui-form">
10
  <div>
11
+ <?php esc_html_e(
12
+ 'Please confirm that you want to delete this sidebar.', 'custom-sidebars'
13
  ); ?>
14
  </div>
15
  <div class="buttons">
16
+ <button type="button" class="button-link btn-cancel"><?php esc_html_e( 'Cancel', 'custom-sidebars' ); ?></button>
17
+ <button type="button" class="button-primary btn-delete"><?php esc_html_e( 'Yes, delete it', 'custom-sidebars' ); ?></button>
18
  <?php wp_nonce_field( 'custom-sidebars-delete-sidebar', '_wp_nonce_cs_delete_sidebar' ); ?>
19
  </div>
20
  </div>
views/widgets-editor.php CHANGED
@@ -12,55 +12,55 @@
12
  <?php wp_nonce_field( 'custom-sidebars-edit-sidebar' ); ?>
13
  <div class="wpmui-grid-8 no-pad-top">
14
  <div class="col-3">
15
- <label for="csb-name"><?php _e( 'Name', 'custom-sidebars' ); ?></label>
16
- <input type="text" name="name" id="csb-name" maxlength="40" placeholder="<?php _e( 'Sidebar name here...', 'custom-sidebars' ); ?>" />
17
- <div class="hint"><?php _e( 'The name should be unique.', 'custom-sidebars' ); ?></div>
18
  </div>
19
  <div class="col-5">
20
- <label for="csb-description"><?php _e( 'Description', 'custom-sidebars' ); ?></label>
21
- <input type="text" name="description" id="csb-description" maxlength="200" placeholder="<?php _e( 'Sidebar description here...', 'custom-sidebars' ); ?>" />
22
  </div>
23
  </div>
24
  <hr class="csb-more-content" />
25
  <div class="wpmui-grid-8 csb-more-content">
26
  <div class="col-8 hint">
27
- <strong><?php _e( 'Caution:', 'custom-sidebars' ); ?></strong>
28
- <?php _e(
29
  'Before-after title-widget properties define the html code that will wrap ' .
30
  'the widgets and their titles in the sidebars, more info about them on the '.
31
  '<a href="http://justintadlock.com/archives/2010/11/08/sidebars-in-wordpress" target="_blank">Justin ' .
32
  'Tadlock Blog</a>. Do not use these fields if you are not sure what you are doing, it can break ' .
33
  'the design of your site. Leave these fields blank to use the theme sidebars design.', 'custom-sidebars'
34
- ); ?>
35
  </div>
36
  </div>
37
  <div class="wpmui-grid-8 csb-more-content">
38
  <div class="col-4">
39
- <label for="csb-before-title"><?php _e( 'Before Title', 'custom-sidebars' ); ?></label>
40
  <textarea rows="4" name="before_title" id="csb-before-title"></textarea>
41
  </div>
42
  <div class="col-4">
43
- <label for="csb-after-title"><?php _e( 'After Title', 'custom-sidebars' ); ?></label>
44
  <textarea rows="4" name="after_title" id="csb-after-title"></textarea>
45
  </div>
46
  </div>
47
  <div class="wpmui-grid-8 csb-more-content">
48
  <div class="col-4">
49
- <label for="csb-before-widget"><?php _e( 'Before Widget', 'custom-sidebars' ); ?></label>
50
  <textarea rows="4" name="before_widget" id="csb-before-widget"></textarea>
51
  </div>
52
  <div class="col-4">
53
- <label for="csb-after-widget"><?php _e( 'After Widget', 'custom-sidebars' ); ?></label>
54
  <textarea rows="4" name="after_widget" id="csb-after-widget"></textarea>
55
  </div>
56
  </div>
57
  <div class="buttons">
58
  <label for="csb-more" class="wpmui-left">
59
  <input type="checkbox" id="csb-more" />
60
- <?php _e( 'Advanced - Edit custom wrapper code', 'custom-sidebars' ); ?>
61
  </label>
62
 
63
- <button type="button" class="button-link btn-cancel"><?php _e( 'Cancel', 'custom-sidebars' ); ?></button>
64
- <button type="button" class="button-primary btn-save"><?php _e( 'Create Sidebar', 'custom-sidebars' ); ?></button>
65
  </div>
66
  </form>
12
  <?php wp_nonce_field( 'custom-sidebars-edit-sidebar' ); ?>
13
  <div class="wpmui-grid-8 no-pad-top">
14
  <div class="col-3">
15
+ <label for="csb-name"><?php esc_html_e( 'Name', 'custom-sidebars' ); ?></label>
16
+ <input type="text" name="name" id="csb-name" maxlength="40" placeholder="<?php esc_html_e( 'Sidebar name here...', 'custom-sidebars' ); ?>" />
17
+ <div class="hint"><?php esc_html_e( 'The name should be unique.', 'custom-sidebars' ); ?></div>
18
  </div>
19
  <div class="col-5">
20
+ <label for="csb-description"><?php esc_html_e( 'Description', 'custom-sidebars' ); ?></label>
21
+ <input type="text" name="description" id="csb-description" maxlength="200" placeholder="<?php esc_html_e( 'Sidebar description here...', 'custom-sidebars' ); ?>" />
22
  </div>
23
  </div>
24
  <hr class="csb-more-content" />
25
  <div class="wpmui-grid-8 csb-more-content">
26
  <div class="col-8 hint">
27
+ <strong><?php esc_html_e( 'Caution:', 'custom-sidebars' ); ?></strong>
28
+ <?php CustomSidebars::wp_kses_wf(__(
29
  'Before-after title-widget properties define the html code that will wrap ' .
30
  'the widgets and their titles in the sidebars, more info about them on the '.
31
  '<a href="http://justintadlock.com/archives/2010/11/08/sidebars-in-wordpress" target="_blank">Justin ' .
32
  'Tadlock Blog</a>. Do not use these fields if you are not sure what you are doing, it can break ' .
33
  'the design of your site. Leave these fields blank to use the theme sidebars design.', 'custom-sidebars'
34
+ )); ?>
35
  </div>
36
  </div>
37
  <div class="wpmui-grid-8 csb-more-content">
38
  <div class="col-4">
39
+ <label for="csb-before-title"><?php esc_html_e( 'Before Title', 'custom-sidebars' ); ?></label>
40
  <textarea rows="4" name="before_title" id="csb-before-title"></textarea>
41
  </div>
42
  <div class="col-4">
43
+ <label for="csb-after-title"><?php esc_html_e( 'After Title', 'custom-sidebars' ); ?></label>
44
  <textarea rows="4" name="after_title" id="csb-after-title"></textarea>
45
  </div>
46
  </div>
47
  <div class="wpmui-grid-8 csb-more-content">
48
  <div class="col-4">
49
+ <label for="csb-before-widget"><?php esc_html_e( 'Before Widget', 'custom-sidebars' ); ?></label>
50
  <textarea rows="4" name="before_widget" id="csb-before-widget"></textarea>
51
  </div>
52
  <div class="col-4">
53
+ <label for="csb-after-widget"><?php esc_html_e( 'After Widget', 'custom-sidebars' ); ?></label>
54
  <textarea rows="4" name="after_widget" id="csb-after-widget"></textarea>
55
  </div>
56
  </div>
57
  <div class="buttons">
58
  <label for="csb-more" class="wpmui-left">
59
  <input type="checkbox" id="csb-more" />
60
+ <?php esc_html_e( 'Advanced - Edit custom wrapper code', 'custom-sidebars' ); ?>
61
  </label>
62
 
63
+ <button type="button" class="button-link btn-cancel"><?php esc_html_e( 'Cancel', 'custom-sidebars' ); ?></button>
64
+ <button type="button" class="button-primary btn-save"><?php esc_html_e( 'Create Sidebar', 'custom-sidebars' ); ?></button>
65
  </div>
66
  </form>
views/widgets-export.php CHANGED
@@ -7,40 +7,40 @@
7
  ?>
8
 
9
  <div class="wpmui-form module-export">
10
- <h2 class="no-pad-top"><?php _e( 'Export', 'custom-sidebars' ); ?></h2>
11
  <form class="frm-export">
12
  <input type="hidden" name="do" value="export" />
13
  <p>
14
  <i class="dashicons dashicons-info light"></i>
15
  <?php
16
- _e(
17
  'This will generate a complete export file containing all ' .
18
  'your sidebars and the current sidebar configuration.', 'custom-sidebars'
19
  );
20
  ?>
21
  </p>
22
  <p>
23
- <label for="description"><?php _e( 'Optional description for the export file:', 'custom-sidebars' ); ?></label><br />
24
  <textarea id="description" name="export-description" placeholder="" cols="80" rows="3"></textarea>
25
  </p>
26
  <p>
27
  <button class="button-primary">
28
- <i class="dashicons dashicons-download"></i> <?php _e( 'Export', 'custom-sidebars' ); ?>
29
  </button>
30
  </p>
31
  <?php wp_nonce_field( 'custom-sidebars-export' ); ?>
32
  </form>
33
  <hr />
34
- <h2><?php _e( 'Import', 'custom-sidebars' ); ?></h2>
35
  <form class="frm-preview-import">
36
  <input type="hidden" name="do" value="preview-import" />
37
  <p>
38
- <label for="import-file"><?php _e( 'Select a file to import', 'custom-sidebars' ); ?></label>
39
  <input type="file" id="import-file" name="data" />
40
  </p>
41
  <p>
42
  <button class="button-primary">
43
- <i class="dashicons dashicons-upload"></i> <?php _e( 'Preview', 'custom-sidebars' ); ?>
44
  </button>
45
  </p>
46
  <?php wp_nonce_field( 'custom-sidebars-import' ); ?>
7
  ?>
8
 
9
  <div class="wpmui-form module-export">
10
+ <h2 class="no-pad-top"><?php esc_html_e( 'Export', 'custom-sidebars' ); ?></h2>
11
  <form class="frm-export">
12
  <input type="hidden" name="do" value="export" />
13
  <p>
14
  <i class="dashicons dashicons-info light"></i>
15
  <?php
16
+ esc_html_e(
17
  'This will generate a complete export file containing all ' .
18
  'your sidebars and the current sidebar configuration.', 'custom-sidebars'
19
  );
20
  ?>
21
  </p>
22
  <p>
23
+ <label for="description"><?php esc_html_e( 'Optional description for the export file:', 'custom-sidebars' ); ?></label><br />
24
  <textarea id="description" name="export-description" placeholder="" cols="80" rows="3"></textarea>
25
  </p>
26
  <p>
27
  <button class="button-primary">
28
+ <i class="dashicons dashicons-download"></i> <?php esc_html_e( 'Export', 'custom-sidebars' ); ?>
29
  </button>
30
  </p>
31
  <?php wp_nonce_field( 'custom-sidebars-export' ); ?>
32
  </form>
33
  <hr />
34
+ <h2><?php esc_html_e( 'Import', 'custom-sidebars' ); ?></h2>
35
  <form class="frm-preview-import">
36
  <input type="hidden" name="do" value="preview-import" />
37
  <p>
38
+ <label for="import-file"><?php esc_html_e( 'Select a file to import', 'custom-sidebars' ); ?></label>
39
  <input type="file" id="import-file" name="data" />
40
  </p>
41
  <p>
42
  <button class="button-primary">
43
+ <i class="dashicons dashicons-upload"></i> <?php esc_html_e( 'Preview', 'custom-sidebars' ); ?>
44
  </button>
45
  </p>
46
  <?php wp_nonce_field( 'custom-sidebars-import' ); ?>
views/widgets-location.php CHANGED
@@ -27,7 +27,7 @@ if ( ! function_exists( '_show_replaceable' ) ) {
27
  ?>
28
  <div
29
  class="cs-replaceable <?php echo esc_attr( $sb_id . $class ); ?>"
30
- data-lbl-used="<?php _e( 'Replaced by another sidebar:', 'custom-sidebars' ); ?>"
31
  >
32
  <label for="<?php echo esc_attr( $inp_id ); ?>">
33
  <input type="checkbox"
@@ -36,8 +36,8 @@ if ( ! function_exists( '_show_replaceable' ) ) {
36
  />
37
  <?php printf(
38
  __( 'As <strong>%1$s</strong> for selected %2$s', 'custom-sidebars' ),
39
- $sidebar['name'],
40
- $cat_name
41
  ); ?>
42
  </label>
43
  <div class="details">
@@ -85,7 +85,7 @@ if ( ! function_exists( '_show_replaceable' ) ) {
85
  </p>
86
 
87
  <div class="hidden">
88
- <p class="message no-sidebars"><?php _e( 'There are no replaceable sidebars. Please allow at least one as replaceable.', 'custom-sidebars' ); ?></p>
89
  </div>
90
  <?php
91
  /**
@@ -95,11 +95,11 @@ if ( ! function_exists( '_show_replaceable' ) ) {
95
  ?>
96
  <div class="wpmui-box">
97
  <h3>
98
- <a href="#" class="toggle" title="<?php _e( 'Click to toggle', 'custom-sidebars' ); ?>"><br></a>
99
- <span><?php _e( 'For all Single Entries matching selected criteria', 'custom-sidebars' ); ?></span>
100
  </h3>
101
  <div class="inside">
102
- <p><?php _e( 'These replacements will be applied to every single post that matches a certain post type or category.', 'custom-sidebars' ); ?>
103
 
104
  <div class="cs-half">
105
  <?php
@@ -147,15 +147,15 @@ foreach ( $taxonomies as $taxonomy_slug => $taxonomy ) {
147
  ?>
148
  <div class="wpmui-box closed">
149
  <h3>
150
- <a href="#" class="toggle" title="<?php _e( 'Click to toggle', 'custom-sidebars' );?>"><br></a>
151
- <span><?php _e( 'For Archives', 'custom-sidebars' ); ?></span>
152
  </h3>
153
  <div class="inside">
154
- <p><?php _e( 'These replacements will be applied to Archive Type posts and pages.', 'custom-sidebars' ); ?>
155
  <h3 class="wpmui-tabs">
156
- <a href="#tab-arch" class="tab active"><?php _e( 'Archive Types', 'custom-sidebars' ); ?></a>
157
- <a href="#tab-catg" class="tab"><?php _e( 'Category Archives', 'custom-sidebars' ); ?></a>
158
- <a href="#tab-aut" class="tab"><?php _e( 'Authors', 'custom-sidebars' ); ?></a>
159
  </h3>
160
  <div class="wpmui-tab-contents">
161
  <div id="tab-arch" class="tab active">
@@ -203,11 +203,11 @@ foreach ( $taxonomies as $taxonomy_slug => $taxonomy ) {
203
  ?>
204
  <div class="wpmui-box closed csb-media-screen-width">
205
  <h3>
206
- <a href="#" class="toggle" title="<?php _e( 'Click to toggle', 'custom-sidebars' ); ?>"><br></a>
207
- <span><?php _e( 'For Screen Sizes', 'custom-sidebars' ); ?></span>
208
  </h3>
209
  <div class="inside">
210
- <p class="description"><?php _e( 'Those settings do not load unload sidebars, it only hide or show widgets, NOT SIDEBARS, depend on media screen width.', 'custom-sidebars' ); ?></p>
211
  <table class="form-table">
212
  <thead>
213
  <tr>
@@ -237,11 +237,11 @@ foreach ( $taxonomies as $taxonomy_slug => $taxonomy ) {
237
  ?>
238
  <div class="wpmui-box closed cs-3rd-part">
239
  <h3>
240
- <a href="#" class="toggle" title="<?php _e( 'Click to toggle', 'custom-sidebars' ); ?>"><br></a>
241
- <span><?php _e( '3rd party plugins', 'custom-sidebars' ); ?></span>
242
  </h3>
243
  <div class="inside">
244
- <p><?php _e( 'These replacements will be applied to 3rd party plugins.', 'custom-sidebars' ); ?>
245
 
246
  <h3 class="wpmui-tabs">
247
  <?php
@@ -281,8 +281,8 @@ foreach ( $integrations as $id => $one ) {
281
  ?>
282
 
283
  <div class="buttons">
284
- <button type="button" class="button-link btn-cancel"><?php _e( 'Cancel', 'custom-sidebars' ); ?></button>
285
- <button type="button" class="button-primary btn-save"><?php _e( 'Save Changes', 'custom-sidebars' ); ?></button>
286
  </div>
287
  <?php wp_nonce_field( 'custom-sidebars-set-location' ); ?>
288
  </form>
27
  ?>
28
  <div
29
  class="cs-replaceable <?php echo esc_attr( $sb_id . $class ); ?>"
30
+ data-lbl-used="<?php esc_html_e( 'Replaced by another sidebar:', 'custom-sidebars' ); ?>"
31
  >
32
  <label for="<?php echo esc_attr( $inp_id ); ?>">
33
  <input type="checkbox"
36
  />
37
  <?php printf(
38
  __( 'As <strong>%1$s</strong> for selected %2$s', 'custom-sidebars' ),
39
+ esc_attr($sidebar['name']),
40
+ esc_attr($cat_name)
41
  ); ?>
42
  </label>
43
  <div class="details">
85
  </p>
86
 
87
  <div class="hidden">
88
+ <p class="message no-sidebars"><?php esc_html_e( 'There are no replaceable sidebars. Please allow at least one as replaceable.', 'custom-sidebars' ); ?></p>
89
  </div>
90
  <?php
91
  /**
95
  ?>
96
  <div class="wpmui-box">
97
  <h3>
98
+ <a href="#" class="toggle" title="<?php esc_html_e( 'Click to toggle', 'custom-sidebars' ); ?>"><br></a>
99
+ <span><?php esc_html_e( 'For all Single Entries matching selected criteria', 'custom-sidebars' ); ?></span>
100
  </h3>
101
  <div class="inside">
102
+ <p><?php esc_html_e( 'These replacements will be applied to every single post that matches a certain post type or category.', 'custom-sidebars' ); ?>
103
 
104
  <div class="cs-half">
105
  <?php
147
  ?>
148
  <div class="wpmui-box closed">
149
  <h3>
150
+ <a href="#" class="toggle" title="<?php esc_html_e( 'Click to toggle', 'custom-sidebars' );?>"><br></a>
151
+ <span><?php esc_html_e( 'For Archives', 'custom-sidebars' ); ?></span>
152
  </h3>
153
  <div class="inside">
154
+ <p><?php esc_html_e( 'These replacements will be applied to Archive Type posts and pages.', 'custom-sidebars' ); ?>
155
  <h3 class="wpmui-tabs">
156
+ <a href="#tab-arch" class="tab active"><?php esc_html_e( 'Archive Types', 'custom-sidebars' ); ?></a>
157
+ <a href="#tab-catg" class="tab"><?php esc_html_e( 'Category Archives', 'custom-sidebars' ); ?></a>
158
+ <a href="#tab-aut" class="tab"><?php esc_html_e( 'Authors', 'custom-sidebars' ); ?></a>
159
  </h3>
160
  <div class="wpmui-tab-contents">
161
  <div id="tab-arch" class="tab active">
203
  ?>
204
  <div class="wpmui-box closed csb-media-screen-width">
205
  <h3>
206
+ <a href="#" class="toggle" title="<?php esc_html_e( 'Click to toggle', 'custom-sidebars' ); ?>"><br></a>
207
+ <span><?php esc_html_e( 'For Screen Sizes', 'custom-sidebars' ); ?></span>
208
  </h3>
209
  <div class="inside">
210
+ <p class="description"><?php esc_html_e( 'Those settings do not load unload sidebars, it only hide or show widgets, NOT SIDEBARS, depend on media screen width.', 'custom-sidebars' ); ?></p>
211
  <table class="form-table">
212
  <thead>
213
  <tr>
237
  ?>
238
  <div class="wpmui-box closed cs-3rd-part">
239
  <h3>
240
+ <a href="#" class="toggle" title="<?php esc_html_e( 'Click to toggle', 'custom-sidebars' ); ?>"><br></a>
241
+ <span><?php esc_html_e( '3rd party plugins', 'custom-sidebars' ); ?></span>
242
  </h3>
243
  <div class="inside">
244
+ <p><?php esc_html_e( 'These replacements will be applied to 3rd party plugins.', 'custom-sidebars' ); ?>
245
 
246
  <h3 class="wpmui-tabs">
247
  <?php
281
  ?>
282
 
283
  <div class="buttons">
284
+ <button type="button" class="button-link btn-cancel"><?php esc_html_e( 'Cancel', 'custom-sidebars' ); ?></button>
285
+ <button type="button" class="button-primary btn-save"><?php esc_html_e( 'Save Changes', 'custom-sidebars' ); ?></button>
286
  </div>
287
  <?php wp_nonce_field( 'custom-sidebars-set-location' ); ?>
288
  </form>
views/widgets.php CHANGED
@@ -14,11 +14,11 @@
14
  ============================================================================
15
  */ ?>
16
  <div id="cs-title-options">
17
- <h2><?php _e( 'Sidebars', 'custom-sidebars' ); ?></h2>
18
  <div id="cs-options" class="csb cs-options">
19
  <button type="button" class="button button-primary cs-action btn-create-sidebar">
20
  <i class="dashicons dashicons-plus-alt"></i>
21
- <?php _e( 'Create a new sidebar', 'custom-sidebars' ); ?>
22
  </button>
23
  <?php
24
  /**
@@ -37,19 +37,19 @@
37
  */ ?>
38
  <script>
39
  csSidebarsData = {
40
- 'title_edit': "<?php _e( 'Edit [Sidebar]', 'custom-sidebars' ); ?>",
41
- 'title_new': "<?php _e( 'New Custom Sidebar', 'custom-sidebars' ); ?>",
42
- 'btn_edit': "<?php _e( 'Save Changes', 'custom-sidebars' ); ?>",
43
- 'btn_new': "<?php _e( 'Create Sidebar', 'custom-sidebars' ); ?>",
44
- 'title_delete': "<?php _e( 'Delete Sidebar', 'custom-sidebars' ); ?>",
45
- 'title_location': "<?php _e( 'Define where you want this sidebar to appear.', 'custom-sidebars' ); ?>",
46
- 'title_export': "<?php _e( 'Import / Export Sidebars', 'custom-sidebars' ); ?>",
47
- 'custom_sidebars': "<?php _e( 'Custom Sidebars', 'custom-sidebars' ); ?>",
48
- 'theme_sidebars': "<?php _e( 'Theme Sidebars', 'custom-sidebars' ); ?>",
49
- 'ajax_error': "<?php _e( 'Couldn\'t load data from WordPress...', 'custom-sidebars' ); ?>",
50
- 'lbl_replaceable': "<?php _e( 'This sidebar can be replaced on certain pages', 'custom-sidebars' ); ?>",
51
- 'replace_tip': "<?php _e( 'Activate this option to replace the sidebar with one of your custom sidebars.', 'custom-sidebars' ); ?>",
52
- 'filter': "<?php _e( 'Filter...', 'custom-sidebars' ); ?>",
53
  'replaceable': <?php echo json_encode( (object) CustomSidebars::get_options( 'modifiable' ) ); ?>,
54
  '_wpnonce_get': "<?php echo esc_attr( wp_create_nonce( 'custom-sidebars-get' ) ); ?>"
55
  };
@@ -66,7 +66,7 @@
66
  class="cs-tool delete-sidebar"
67
  data-action="delete"
68
  href="#"
69
- title="<?php _e( 'Delete this sidebar.', 'custom-sidebars' ); ?>"
70
  >
71
  <i class="dashicons dashicons-trash"></i>
72
  </a>
@@ -75,18 +75,18 @@
75
  class="cs-tool"
76
  data-action="edit"
77
  href="#"
78
- title="<?php _e( 'Edit this sidebar.', 'custom-sidebars' ); ?>"
79
  >
80
- <?php _e( 'Edit', 'custom-sidebars' ); ?>
81
  </a>
82
  <span class="cs-separator">|</span>
83
  <a
84
  class="cs-tool"
85
  data-action="location"
86
  href="#"
87
- title="<?php _e( 'Where do you want to show the sidebar?', 'custom-sidebars' ); ?>"
88
  >
89
- <?php _e( 'Sidebar Location', 'custom-sidebars' ); ?>
90
  </a>
91
  <span class="cs-separator">|</span>
92
  </div>
@@ -102,8 +102,8 @@
102
  for="cs-replaceable"
103
  class="cs-tool btn-replaceable"
104
  data-action="replaceable"
105
- data-on="<?php _e( 'This sidebar can be replaced on certain pages', 'custom-sidebars' ); ?>"
106
- data-off="<?php _e( 'This sidebar will always be same on all pages', 'custom-sidebars' ); ?>"
107
  >
108
  <span class="icon"></span>
109
  <input
@@ -112,7 +112,7 @@
112
  class="has-label chk-replaceable"
113
  />
114
  <span class="is-label">
115
- <?php _e( 'Allow this sidebar to be replaced', 'custom-sidebars' ); ?>
116
  </span>
117
  </label>
118
  </div>
14
  ============================================================================
15
  */ ?>
16
  <div id="cs-title-options">
17
+ <h2><?php esc_html_e( 'Sidebars', 'custom-sidebars' ); ?></h2>
18
  <div id="cs-options" class="csb cs-options">
19
  <button type="button" class="button button-primary cs-action btn-create-sidebar">
20
  <i class="dashicons dashicons-plus-alt"></i>
21
+ <?php esc_html_e( 'Create a new sidebar', 'custom-sidebars' ); ?>
22
  </button>
23
  <?php
24
  /**
37
  */ ?>
38
  <script>
39
  csSidebarsData = {
40
+ 'title_edit': "<?php esc_html_e( 'Edit [Sidebar]', 'custom-sidebars' ); ?>",
41
+ 'title_new': "<?php esc_html_e( 'New Custom Sidebar', 'custom-sidebars' ); ?>",
42
+ 'btn_edit': "<?php esc_html_e( 'Save Changes', 'custom-sidebars' ); ?>",
43
+ 'btn_new': "<?php esc_html_e( 'Create Sidebar', 'custom-sidebars' ); ?>",
44
+ 'title_delete': "<?php esc_html_e( 'Delete Sidebar', 'custom-sidebars' ); ?>",
45
+ 'title_location': "<?php esc_html_e( 'Define where you want this sidebar to appear.', 'custom-sidebars' ); ?>",
46
+ 'title_export': "<?php esc_html_e( 'Import / Export Sidebars', 'custom-sidebars' ); ?>",
47
+ 'custom_sidebars': "<?php esc_html_e( 'Custom Sidebars', 'custom-sidebars' ); ?>",
48
+ 'theme_sidebars': "<?php esc_html_e( 'Theme Sidebars', 'custom-sidebars' ); ?>",
49
+ 'ajax_error': "<?php esc_html_e( 'Couldn\'t load data from WordPress...', 'custom-sidebars' ); ?>",
50
+ 'lbl_replaceable': "<?php esc_html_e( 'This sidebar can be replaced on certain pages', 'custom-sidebars' ); ?>",
51
+ 'replace_tip': "<?php esc_html_e( 'Activate this option to replace the sidebar with one of your custom sidebars.', 'custom-sidebars' ); ?>",
52
+ 'filter': "<?php esc_html_e( 'Filter...', 'custom-sidebars' ); ?>",
53
  'replaceable': <?php echo json_encode( (object) CustomSidebars::get_options( 'modifiable' ) ); ?>,
54
  '_wpnonce_get': "<?php echo esc_attr( wp_create_nonce( 'custom-sidebars-get' ) ); ?>"
55
  };
66
  class="cs-tool delete-sidebar"
67
  data-action="delete"
68
  href="#"
69
+ title="<?php esc_html_e( 'Delete this sidebar.', 'custom-sidebars' ); ?>"
70
  >
71
  <i class="dashicons dashicons-trash"></i>
72
  </a>
75
  class="cs-tool"
76
  data-action="edit"
77
  href="#"
78
+ title="<?php esc_html_e( 'Edit this sidebar.', 'custom-sidebars' ); ?>"
79
  >
80
+ <?php esc_html_e( 'Edit', 'custom-sidebars' ); ?>
81
  </a>
82
  <span class="cs-separator">|</span>
83
  <a
84
  class="cs-tool"
85
  data-action="location"
86
  href="#"
87
+ title="<?php esc_html_e( 'Where do you want to show the sidebar?', 'custom-sidebars' ); ?>"
88
  >
89
+ <?php esc_html_e( 'Sidebar Location', 'custom-sidebars' ); ?>
90
  </a>
91
  <span class="cs-separator">|</span>
92
  </div>
102
  for="cs-replaceable"
103
  class="cs-tool btn-replaceable"
104
  data-action="replaceable"
105
+ data-on="<?php esc_html_e( 'This sidebar can be replaced on certain pages', 'custom-sidebars' ); ?>"
106
+ data-off="<?php esc_html_e( 'This sidebar will always be same on all pages', 'custom-sidebars' ); ?>"
107
  >
108
  <span class="icon"></span>
109
  <input
112
  class="has-label chk-replaceable"
113
  />
114
  <span class="is-label">
115
+ <?php esc_html_e( 'Allow this sidebar to be replaced', 'custom-sidebars' ); ?>
116
  </span>
117
  </label>
118
  </div>