Child Theme Configurator - Version 2.2.5

Version Description

  • Fixed Preview and Analyzer for some child theme configurations by removing nonce requirement
  • Fixed header not being repaired on first pass with "Repair Header" selected
  • Fixed styles being pruned before new "Raw CSS" styles are added
Download this release

Release Info

Developer lilaeamedia
Plugin Icon 128x128 Child Theme Configurator
Version 2.2.5
Comparing to
See all releases

Code changes from version 2.2.4.1 to 2.2.5

child-theme-configurator.php CHANGED
@@ -6,7 +6,7 @@ if ( !defined( 'ABSPATH' ) ) exit;
6
  Plugin Name: Child Theme Configurator
7
  Plugin URI: http://www.childthemeconfigurator.com
8
  Description: When using the Customizer is not enough - Create child themes and customize styles, templates, functions and more.
9
- Version: 2.2.4.1
10
  Author: Lilaea Media
11
  Author URI: http://www.lilaeamedia.com
12
  Text Domain: child-theme-configurator
6
  Plugin Name: Child Theme Configurator
7
  Plugin URI: http://www.childthemeconfigurator.com
8
  Description: When using the Customizer is not enough - Create child themes and customize styles, templates, functions and more.
9
+ Version: 2.2.5
10
  Author: Lilaea Media
11
  Author URI: http://www.lilaeamedia.com
12
  Text Domain: child-theme-configurator
includes/classes/Admin.php CHANGED
@@ -6,7 +6,7 @@ if ( !defined( 'ABSPATH' ) ) exit;
6
  Class: ChildThemeConfiguratorAdmin
7
  Plugin URI: http://www.childthemeconfigurator.com/
8
  Description: Main Controller Class
9
- Version: 2.2.4.1
10
  Author: Lilaea Media
11
  Author URI: http://www.lilaeamedia.com/
12
  Text Domain: child-theme-configurator
@@ -259,6 +259,8 @@ class ChildThemeConfiguratorAdmin {
259
  if ( $this->get( 'child' ) ):
260
  // hook for add'l plugin files and subdirectories
261
  do_action( 'chld_thm_cfg_addl_files' );
 
 
262
  $this->css->write_css();
263
  /*
264
  $this->updates[] = array(
@@ -275,10 +277,10 @@ class ChildThemeConfiguratorAdmin {
275
  // add any additional updates to pass back to browser
276
  do_action( 'chld_thm_cfg_cache_updates' );
277
  endif;
 
 
278
  endif;
279
- $result = $this->css->obj_to_utf8( $this->updates );
280
- // send all updates back to browser to update cache
281
- die( json_encode( $result ) );
282
  }
283
 
284
  function save_config() {
@@ -2086,7 +2088,8 @@ defined( 'CHLD_THM_CFG_IGNORE_PARENT' ) or define( 'CHLD_THM_CFG_IGNORE_PARENT',
2086
  endforeach;
2087
  endif;
2088
  endif;
2089
- // store parent theme signals
 
2090
  if ( isset( $analysis->{ $baseline }->signals ) ):
2091
  $this->css->set_prop( 'hasstyles', isset( $analysis->{ $baseline }->signals->thm_no_styles ) ? 0 : 1 );
2092
  $this->css->set_prop( 'csswphead', isset( $analysis->{ $baseline }->signals->thm_past_wphead ) ? 1 : 0 );
@@ -2095,35 +2098,38 @@ defined( 'CHLD_THM_CFG_IGNORE_PARENT' ) or define( 'CHLD_THM_CFG_IGNORE_PARENT',
2095
  $this->set_enqueue_priority( $analysis, $baseline );
2096
  endif;
2097
  endif;
2098
- if ( isset( $analysis->child->signals ) ):
2099
- // test these again for child theme
2100
- $this->css->set_prop( 'csswphead', isset( $analysis->child->signals->thm_past_wphead ) ? 1 : 0 );
2101
- $this->css->set_prop( 'cssunreg', isset( $analysis->child->signals->thm_unregistered ) ? 1 : 0 );
2102
- // special case where theme does not link child stylesheet at all
2103
- $this->css->set_prop( 'cssnotheme', isset( $analysis->child->signals->thm_notheme ) ? 1 : 0 );
2104
- if ( isset( $analysis->child->signals->thm_child_loaded ) ):
2105
- $this->css->set_prop( 'childloaded', $analysis->child->signals->thm_child_loaded );
2106
- $this->set_enqueue_priority( $analysis, 'child' );
2107
- else:
2108
- $this->css->set_prop( 'childloaded', 0 );
2109
- endif;
2110
- // if theme loads parent theme when is_child_theme, add child dependency
2111
- if ( isset( $analysis->child->signals->thm_parnt_loaded ) ):
2112
- $this->css->set_prop( 'parntloaded', $analysis->child->signals->thm_parnt_loaded );
2113
- if ( 'thm_unregistered' != $analysis->child->signals->thm_parnt_loaded ):
2114
- array_unshift( $this->css->child_deps, $analysis->child->signals->thm_parnt_loaded );
2115
- endif;
2116
- else:
2117
- $this->css->set_prop( 'parntloaded', 0 );
 
2118
  endif;
2119
-
2120
- // if main styleheet is loading out of sequence, force dependency
2121
- if ( isset( $analysis->child->signals->ctc_parnt_reorder ) )
2122
- $this->css->set_prop( 'reorder', 1 );
2123
- // roll back CTC Pro Genesis handling option
2124
- if ( isset( $analysis->child->signals->ctc_gen_loaded ) )
2125
- $this->genesis = TRUE;
2126
  endif;
 
 
 
 
 
 
 
2127
  }
2128
 
2129
  /**
6
  Class: ChildThemeConfiguratorAdmin
7
  Plugin URI: http://www.childthemeconfigurator.com/
8
  Description: Main Controller Class
9
+ Version: 2.2.5
10
  Author: Lilaea Media
11
  Author URI: http://www.lilaeamedia.com/
12
  Text Domain: child-theme-configurator
259
  if ( $this->get( 'child' ) ):
260
  // hook for add'l plugin files and subdirectories
261
  do_action( 'chld_thm_cfg_addl_files' );
262
+
263
+
264
  $this->css->write_css();
265
  /*
266
  $this->updates[] = array(
277
  // add any additional updates to pass back to browser
278
  do_action( 'chld_thm_cfg_cache_updates' );
279
  endif;
280
+ // send all updates back to browser to update cache
281
+ die( json_encode( $this->css->obj_to_utf8( $this->updates ) ) );
282
  endif;
283
+ die();
 
 
284
  }
285
 
286
  function save_config() {
2088
  endforeach;
2089
  endif;
2090
  endif;
2091
+
2092
+ // store parent theme signals ( or child if ignore parent is set )
2093
  if ( isset( $analysis->{ $baseline }->signals ) ):
2094
  $this->css->set_prop( 'hasstyles', isset( $analysis->{ $baseline }->signals->thm_no_styles ) ? 0 : 1 );
2095
  $this->css->set_prop( 'csswphead', isset( $analysis->{ $baseline }->signals->thm_past_wphead ) ? 1 : 0 );
2098
  $this->set_enqueue_priority( $analysis, $baseline );
2099
  endif;
2100
  endif;
2101
+
2102
+ // tests specific to child theme - v2.2.5: changed to series of if statements because it was unsetting changes in previous block
2103
+
2104
+ if ( isset( $analysis->child->signals->thm_past_wphead ) )
2105
+ $this->css->set_prop( 'csswphead', 1 );
2106
+ if ( isset( $analysis->child->signals->thm_unregistered ) )
2107
+ $this->css->set_prop( 'cssunreg', 1 );
2108
+ // special case where theme does not link child stylesheet at all
2109
+ if ( isset( $analysis->child->signals->thm_notheme ) )
2110
+ $this->css->set_prop( 'cssnotheme', 1 );
2111
+ if ( isset( $analysis->child->signals->thm_child_loaded ) ):
2112
+ $this->css->set_prop( 'childloaded', $analysis->child->signals->thm_child_loaded );
2113
+ $this->set_enqueue_priority( $analysis, 'child' );
2114
+ else:
2115
+ $this->css->set_prop( 'childloaded', 0 );
2116
+ endif;
2117
+ // if theme loads parent theme when is_child_theme, add child dependency
2118
+ if ( isset( $analysis->child->signals->thm_parnt_loaded ) ):
2119
+ $this->css->set_prop( 'parntloaded', $analysis->child->signals->thm_parnt_loaded );
2120
+ if ( 'thm_unregistered' != $analysis->child->signals->thm_parnt_loaded ):
2121
+ array_unshift( $this->css->child_deps, $analysis->child->signals->thm_parnt_loaded );
2122
  endif;
2123
+ else:
2124
+ $this->css->set_prop( 'parntloaded', 0 );
 
 
 
 
 
2125
  endif;
2126
+
2127
+ // if main styleheet is loading out of sequence, force dependency
2128
+ if ( isset( $analysis->child->signals->ctc_parnt_reorder ) )
2129
+ $this->css->set_prop( 'reorder', 1 );
2130
+ // roll back CTC Pro Genesis handling option
2131
+ if ( isset( $analysis->child->signals->ctc_gen_loaded ) )
2132
+ $this->genesis = TRUE;
2133
  }
2134
 
2135
  /**
includes/classes/CSS.php CHANGED
@@ -6,7 +6,7 @@ if ( !defined( 'ABSPATH' ) ) exit;
6
  Class: ChildThemeConfiguratorCSS
7
  Plugin URI: http://www.childthemeconfigurator.com/
8
  Description: Handles all CSS input, output, parsing, normalization and storage
9
- Version: 2.2.4.1
10
  Author: Lilaea Media
11
  Author URI: http://www.lilaeamedia.com/
12
  Text Domain: chld_thm_cfg
@@ -167,7 +167,7 @@ class ChildThemeConfiguratorCSS {
167
  $this->parnt = '';
168
  $this->ignoreparnt = 0;
169
  $this->qpriority = 10;
170
- $this->version = '2.2.4.1';
171
 
172
  // do not set enqueue, not being set is used to flag old versions
173
 
@@ -631,10 +631,9 @@ class ChildThemeConfiguratorCSS {
631
  $this->update_rule_value( $valarr[ $ruleid ][ $template ], $id, $valid, $important );
632
  endif;
633
  endif;
634
- // remove if all values have been cleared
635
- if ( $this->prune_if_empty( $qsid, $valarr ) )
636
- return FALSE;
637
- //$this->ctc()->debug( 'revised valarr: ' . print_r( $valarr, TRUE ), __FUNCTION__, __CLASS__ );
638
  $this->pack_val_ndx( $qsid, $valarr );
639
  // return query selector id
640
  return $qsid;
@@ -699,8 +698,9 @@ class ChildThemeConfiguratorCSS {
699
  * Automatically cleans up hierarchies when no values exist
700
  * in either parent or child for a given selector.
701
  */
702
- function prune_if_empty( $qsid, $valarr ) {
703
  $empty = $this->get_dict_id( 'val', '' );
 
704
  foreach ( $valarr as $ruleid => $arr ):
705
  foreach ( array( 'c', 'p' ) as $template ):
706
  if ( isset( $arr[ $template ] ) ):
@@ -842,6 +842,7 @@ class ChildThemeConfiguratorCSS {
842
  $important = $this->is_important( $value );
843
  if ( !empty( $_POST[ 'ctc_' . $valid . '_child_' . $rule . '_i_' . $qsid . '_' . $rulevalid ] ) ) $important = 1;
844
  $selarr = $this->denorm_query_sel( $qsid );
 
845
  if ( !empty( $matches[ 6 ] ) ):
846
  $parts[ $qsid ][ $rule ][ 'values' ][ $rulevalid ][ $matches[ 6 ] ] = $value;
847
  $parts[ $qsid ][ $rule ][ 'values' ][ $rulevalid ][ 'important' ] = $important;
@@ -974,14 +975,18 @@ class ChildThemeConfiguratorCSS {
974
  endforeach;
975
  if ( $newqsid )
976
  $qsid = $newqsid;
 
 
 
 
977
  // return updated qsid to browser to update form
978
- if ( $this->ctc()->cache_updates ):
979
  $this->ctc()->updates[] = array(
980
  'obj' => 'qsid',
981
  'key' => $qsid,
982
  'data' => $this->obj_to_utf8( $this->denorm_sel_val( $qsid ) ),
983
  );
984
- endif;
985
  do_action( 'chld_thm_cfg_update_qsid', $qsid );
986
  endif;
987
 
6
  Class: ChildThemeConfiguratorCSS
7
  Plugin URI: http://www.childthemeconfigurator.com/
8
  Description: Handles all CSS input, output, parsing, normalization and storage
9
+ Version: 2.2.5
10
  Author: Lilaea Media
11
  Author URI: http://www.lilaeamedia.com/
12
  Text Domain: chld_thm_cfg
167
  $this->parnt = '';
168
  $this->ignoreparnt = 0;
169
  $this->qpriority = 10;
170
+ $this->version = '2.2.5';
171
 
172
  // do not set enqueue, not being set is used to flag old versions
173
 
631
  $this->update_rule_value( $valarr[ $ruleid ][ $template ], $id, $valid, $important );
632
  endif;
633
  endif;
634
+
635
+ // moved call to prune_if_empty to parse_post_data v2.2.5
636
+
 
637
  $this->pack_val_ndx( $qsid, $valarr );
638
  // return query selector id
639
  return $qsid;
698
  * Automatically cleans up hierarchies when no values exist
699
  * in either parent or child for a given selector.
700
  */
701
+ function prune_if_empty( $qsid ) {
702
  $empty = $this->get_dict_id( 'val', '' );
703
+ if ( FALSE == ( $valarr = $this->unpack_val_ndx( $qsid ) ) ) return FALSE;
704
  foreach ( $valarr as $ruleid => $arr ):
705
  foreach ( array( 'c', 'p' ) as $template ):
706
  if ( isset( $arr[ $template ] ) ):
842
  $important = $this->is_important( $value );
843
  if ( !empty( $_POST[ 'ctc_' . $valid . '_child_' . $rule . '_i_' . $qsid . '_' . $rulevalid ] ) ) $important = 1;
844
  $selarr = $this->denorm_query_sel( $qsid );
845
+ if ( empty( $selarr ) ) continue;
846
  if ( !empty( $matches[ 6 ] ) ):
847
  $parts[ $qsid ][ $rule ][ 'values' ][ $rulevalid ][ $matches[ 6 ] ] = $value;
848
  $parts[ $qsid ][ $rule ][ 'values' ][ $rulevalid ][ 'important' ] = $important;
975
  endforeach;
976
  if ( $newqsid )
977
  $qsid = $newqsid;
978
+
979
+ // remove if all values have been cleared - moved from update_arrays v2.2.5
980
+ $this->prune_if_empty( $qsid );
981
+
982
  // return updated qsid to browser to update form
983
+ if ( $this->ctc()->cache_updates )
984
  $this->ctc()->updates[] = array(
985
  'obj' => 'qsid',
986
  'key' => $qsid,
987
  'data' => $this->obj_to_utf8( $this->denorm_sel_val( $qsid ) ),
988
  );
989
+
990
  do_action( 'chld_thm_cfg_update_qsid', $qsid );
991
  endif;
992
 
includes/classes/Core.php CHANGED
@@ -14,7 +14,7 @@ if ( !defined( 'ABSPATH' ) ) exit;
14
  define( 'LILAEAMEDIA_URL', "http://www.lilaeamedia.com" );
15
  defined( 'CHLD_THM_CFG_DOCS_URL' ) or
16
  define( 'CHLD_THM_CFG_DOCS_URL', "http://www.childthemeconfigurator.com" );
17
- define( 'CHLD_THM_CFG_VERSION', '2.2.4.1' );
18
  define( 'CHLD_THM_CFG_PREV_VERSION', '1.7.9.1' );
19
  define( 'CHLD_THM_CFG_MIN_WP_VERSION', '3.7' );
20
  define( 'CHLD_THM_CFG_PRO_MIN_VERSION', '2.2.0' );
14
  define( 'LILAEAMEDIA_URL', "http://www.lilaeamedia.com" );
15
  defined( 'CHLD_THM_CFG_DOCS_URL' ) or
16
  define( 'CHLD_THM_CFG_DOCS_URL', "http://www.childthemeconfigurator.com" );
17
+ define( 'CHLD_THM_CFG_VERSION', '2.2.5' );
18
  define( 'CHLD_THM_CFG_PREV_VERSION', '1.7.9.1' );
19
  define( 'CHLD_THM_CFG_MIN_WP_VERSION', '3.7' );
20
  define( 'CHLD_THM_CFG_PRO_MIN_VERSION', '2.2.0' );
includes/classes/Preview.php CHANGED
@@ -16,7 +16,6 @@ class ChildThemeConfiguratorPreview {
16
  protected $template;
17
 
18
  public function __construct(){
19
-
20
  add_action( 'setup_theme', array( $this, 'setup_theme' ) );
21
  add_filter( 'wp_redirect_status', array( $this, 'wp_redirect_status' ), 1000 );
22
 
@@ -30,8 +29,8 @@ class ChildThemeConfiguratorPreview {
30
  }
31
 
32
  public function setup_theme() {
33
- // are we previewing?
34
- if ( !wp_verify_nonce( $_GET['preview_ctc'] ) || !current_user_can( 'switch_themes' ) )
35
  return;
36
  $this->original_stylesheet = get_stylesheet();
37
  $this->theme = wp_get_theme( isset( $_GET[ 'stylesheet' ] ) ? $_GET[ 'stylesheet' ] : NULL );
@@ -45,7 +44,6 @@ class ChildThemeConfiguratorPreview {
45
  // swap out theme mods with preview theme mods
46
  add_filter( 'pre_option_theme_mods_' . $this->original_stylesheet, array( $this, 'preview_mods' ) );
47
  endif;
48
-
49
  // impossibly high priority to test for stylesheets loaded after wp_head()
50
  add_action( 'wp_print_styles', array( $this, 'test_css' ), 999999 );
51
  // pass the wp_styles queue back to use for stylesheet handle verification
16
  protected $template;
17
 
18
  public function __construct(){
 
19
  add_action( 'setup_theme', array( $this, 'setup_theme' ) );
20
  add_filter( 'wp_redirect_status', array( $this, 'wp_redirect_status' ), 1000 );
21
 
29
  }
30
 
31
  public function setup_theme() {
32
+ // are we previewing? - removed nonce requirement to bool flag v2.2.5
33
+ if ( empty( $_GET['preview_ctc'] ) || !current_user_can( 'switch_themes' ) )
34
  return;
35
  $this->original_stylesheet = get_stylesheet();
36
  $this->theme = wp_get_theme( isset( $_GET[ 'stylesheet' ] ) ? $_GET[ 'stylesheet' ] : NULL );
44
  // swap out theme mods with preview theme mods
45
  add_filter( 'pre_option_theme_mods_' . $this->original_stylesheet, array( $this, 'preview_mods' ) );
46
  endif;
 
47
  // impossibly high priority to test for stylesheets loaded after wp_head()
48
  add_action( 'wp_print_styles', array( $this, 'test_css' ), 999999 );
49
  // pass the wp_styles queue back to use for stylesheet handle verification
includes/classes/UI.php CHANGED
@@ -5,7 +5,7 @@ if ( !defined( 'ABSPATH' ) ) exit;
5
  Class: ChildThemeConfiguratorUI
6
  Plugin URI: http://www.childthemeconfigurator.com/
7
  Description: Handles the plugin User Interface
8
- Version: 2.2.4.1
9
  Author: Lilaea Media
10
  Author URI: http://www.lilaeamedia.com/
11
  Text Domain: chld_thm_cfg
@@ -267,7 +267,7 @@ class ChildThemeConfiguratorUI {
267
  $localize_array = apply_filters( 'chld_thm_cfg_localize_script', array(
268
  'converted' => $this->css()->get_prop( 'converted' ),
269
  'ssl' => is_ssl(),
270
- 'homeurl' => home_url( '/' ) . '?preview_ctc=' . wp_create_nonce(),
271
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
272
  'theme_uri' => get_theme_root_uri(),
273
  'page' => CHLD_THM_CFG_MENU,
@@ -337,8 +337,8 @@ class ChildThemeConfiguratorUI {
337
  'anlz25_txt' => __( "The parent theme's <code>style.css</code> file is being loaded automatically.", 'child-theme-configurator' ),
338
  'anlz26_txt' => __( '<p>The Configurator selected "Do not add any parent stylesheet handling" for the "Parent stylesheet handling" option (see step 6, below).</p>', 'child-theme-configurator' ),
339
  'anlz27_txt' => __( "This theme does not require the parent theme's <code>style.css</code> file for its appearance.", 'child-theme-configurator' ),
340
- 'anlz28_txt' => __( "This Child Theme was configured with an earlier version.", 'child-theme-configurator' ),
341
- 'anlz29_txt' => __( '<p>The selected stylesheet handling method is no longer used. Please update the configuration using the "Repair header template" option (see step 6, "Additional handling options", below).</p>', 'child-theme-configurator' ),
342
  'anlz30_txt' => __( 'Click to show/hide raw analysis data. Please include contents below with any support requests.', 'child-theme-configurator' ),
343
  'anlz31_txt' => __( 'This child theme was configured using the CTC Pro "Genesis stylesheet handling" method.', 'child-theme-configurator' ),
344
  'anlz32_txt' => __( '<p>This method has been replaced by the "Separate stylesheet" and "Ignore Parent Theme" options ( selected below ) for broader framework compatability.</p>', 'child-theme-configurator' ),
5
  Class: ChildThemeConfiguratorUI
6
  Plugin URI: http://www.childthemeconfigurator.com/
7
  Description: Handles the plugin User Interface
8
+ Version: 2.2.5
9
  Author: Lilaea Media
10
  Author URI: http://www.lilaeamedia.com/
11
  Text Domain: chld_thm_cfg
267
  $localize_array = apply_filters( 'chld_thm_cfg_localize_script', array(
268
  'converted' => $this->css()->get_prop( 'converted' ),
269
  'ssl' => is_ssl(),
270
+ 'homeurl' => home_url( '/' ) . '?preview_ctc=1',
271
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
272
  'theme_uri' => get_theme_root_uri(),
273
  'page' => CHLD_THM_CFG_MENU,
337
  'anlz25_txt' => __( "The parent theme's <code>style.css</code> file is being loaded automatically.", 'child-theme-configurator' ),
338
  'anlz26_txt' => __( '<p>The Configurator selected "Do not add any parent stylesheet handling" for the "Parent stylesheet handling" option (see step 6, below).</p>', 'child-theme-configurator' ),
339
  'anlz27_txt' => __( "This theme does not require the parent theme's <code>style.css</code> file for its appearance.", 'child-theme-configurator' ),
340
+ 'anlz28_txt' => __( "This Child Theme was configured to accomodate a hard-coded stylesheet link.", 'child-theme-configurator' ),
341
+ 'anlz29_txt' => __( '<p>This workaround was used in earlier versions of CTC and can be eliminated by using the "Repair header template" option (see step 6, "Additional handling options", below).</p>', 'child-theme-configurator' ),
342
  'anlz30_txt' => __( 'Click to show/hide raw analysis data. Please include contents below with any support requests.', 'child-theme-configurator' ),
343
  'anlz31_txt' => __( 'This child theme was configured using the CTC Pro "Genesis stylesheet handling" method.', 'child-theme-configurator' ),
344
  'anlz32_txt' => __( '<p>This method has been replaced by the "Separate stylesheet" and "Ignore Parent Theme" options ( selected below ) for broader framework compatability.</p>', 'child-theme-configurator' ),
includes/classes/Upgrade.php CHANGED
@@ -198,7 +198,6 @@ jQuery( document ).ready(function($){
198
  $upgrader = new Plugin_Upgrader( new Plugin_Upgrader_Skin( compact( 'title', 'nonce', 'url', 'plugin' ) ) );
199
  //return;
200
  $upgrader->upgrade( $plugin );
201
-
202
  include(ABSPATH . 'wp-admin/admin-footer.php');
203
  self::set_update_key( $key );
204
 
198
  $upgrader = new Plugin_Upgrader( new Plugin_Upgrader_Skin( compact( 'title', 'nonce', 'url', 'plugin' ) ) );
199
  //return;
200
  $upgrader->upgrade( $plugin );
 
201
  include(ABSPATH . 'wp-admin/admin-footer.php');
202
  self::set_update_key( $key );
203
 
includes/forms/parent-child.php CHANGED
@@ -272,7 +272,7 @@ if ( !defined( 'ABSPATH' ) )exit;
272
  <label><input class="ctc_checkbox ctc-themeonly" id="ctc_ignoreparnt" name="ctc_ignoreparnt" type="checkbox"
273
  value="1" autocomplete="off" />
274
  <strong><?php _e( 'Ignore parent theme stylesheets.', 'child-theme-configurator' ); ?></strong>
275
- <p class="howto indent"><?php _e( 'Do not load or parse the parent theme styles. Only use this option if the Child Theme uses a Framework like Genesis and only uses child theme stylesheets for its appearance.', 'child-theme-configurator' ); ?></p></label>
276
  </div>
277
  <div id="ctc_repairheader_container" style="display:none">
278
  <div class="ctc-input-cell ctc-clear">
272
  <label><input class="ctc_checkbox ctc-themeonly" id="ctc_ignoreparnt" name="ctc_ignoreparnt" type="checkbox"
273
  value="1" autocomplete="off" />
274
  <strong><?php _e( 'Ignore parent theme stylesheets.', 'child-theme-configurator' ); ?></strong>
275
+ <p class="howto indent"><?php _e( 'Do not load or parse the parent theme styles. Only use this option if the Child Theme uses a Framework like Genesis and uses <em>only child theme stylesheets</em> for its appearance.', 'child-theme-configurator' ); ?></p></label>
276
  </div>
277
  <div id="ctc_repairheader_container" style="display:none">
278
  <div class="ctc-input-cell ctc-clear">
js/chldthmcfg.js CHANGED
@@ -2,7 +2,7 @@
2
  * Script: chldthmcfg.js
3
  * Plugin URI: http://www.childthemeconfigurator.com/
4
  * Description: Handles jQuery, AJAX and other UI
5
- * Version: 2.2.4.1
6
  * Author: Lilaea Media
7
  * Author URI: http://www.lilaeamedia.com/
8
  * License: GPLv2
@@ -35,8 +35,15 @@
35
  },
36
 
37
  getname: function( themetype ){
38
- var stylesheet = ( 'child' === themetype ? $.chldthmcfg.currchild : $.chldthmcfg.currparnt );
39
- return window.ctcAjax.themes[ themetype ][ stylesheet ].Name;
 
 
 
 
 
 
 
40
  },
41
 
42
  frascii: function( str ) {
@@ -113,10 +120,10 @@
113
 
114
  validate: function() {
115
  var self = this,
116
- regex = /[^\w\-]/,
117
  newslug = $( '#ctc_child_template' ).length ? $( '#ctc_child_template' )
118
  .val().toString().replace( regex ) : '',
119
- slug = $( '#ctc_theme_child' ).length ? $( '#ctc_theme_child' )
120
  .val().toString().replace( regex ) : newslug,
121
  type = $( 'input[name=ctc_child_type]:checked' ).val(),
122
  errors = [];
@@ -1419,12 +1426,13 @@
1419
  //self.jquery_exception( { 'message':'testing' }, 'Testing' );
1420
  // try to initialize theme menus
1421
  if ( !$( '#ctc_theme_parnt' ).is( 'input' ) ) {
 
1422
  //console.log( 'initializing theme select menus...' );
1423
  try {
1424
  $.widget( 'ctc.themeMenu', $.ui.selectmenu, {
1425
  _renderItem: function( ul, item ) {
1426
  var li = $( "<li>" ),
1427
- sel = item.value.replace( /[^\w\-]/, '' );
1428
  $( '#ctc_theme_option_' + sel )
1429
  .detach().appendTo( li );
1430
  return li.appendTo( ul );
@@ -1738,7 +1746,7 @@
1738
  var self = this,
1739
  now = Math.floor( $.now() / 1000 ),
1740
  stylesheet = ( 'child' === themetype ? $.chldthmcfg.currchild : $.chldthmcfg.currparnt ),
1741
- testparams = '&template=' + $.chldthmcfg.currparnt + '&stylesheet=' + stylesheet + '&now=' + now,
1742
  homeurl = self.setssl( window.ctcAjax.homeurl ), // window.ctcAjax.homeurl, //
1743
  url = homeurl + testparams;
1744
 
@@ -1749,6 +1757,7 @@
1749
  */
1750
  //console.log( 'Fetching home page: ' + url );
1751
  $.get( url, function( data ) {
 
1752
  self.parse_page( themetype, data );
1753
  $( document ).trigger( 'analysisdone' );
1754
  } ).fail( function( xhr, status, err ){
2
  * Script: chldthmcfg.js
3
  * Plugin URI: http://www.childthemeconfigurator.com/
4
  * Description: Handles jQuery, AJAX and other UI
5
+ * Version: 2.2.5
6
  * Author: Lilaea Media
7
  * Author URI: http://www.lilaeamedia.com/
8
  * License: GPLv2
35
  },
36
 
37
  getname: function( themetype ){
38
+ var self = this,
39
+ stylesheet = ( 'child' === themetype ? $.chldthmcfg.currchild : $.chldthmcfg.currparnt );
40
+ //console.log( 'getname: ' + stylesheet );
41
+ //console.log( window.ctcAjax.themes );
42
+ if ( self.is_empty( window.ctcAjax.themes[ themetype ][ stylesheet ] ) ){
43
+ return '';
44
+ } else {
45
+ return window.ctcAjax.themes[ themetype ][ stylesheet ].Name;
46
+ }
47
  },
48
 
49
  frascii: function( str ) {
120
 
121
  validate: function() {
122
  var self = this,
123
+ regex = /[^\w\-]/g,
124
  newslug = $( '#ctc_child_template' ).length ? $( '#ctc_child_template' )
125
  .val().toString().replace( regex ) : '',
126
+ slug = $( '#ctc_theme_child' ).length && !self.is_empty( $( '#ctc_theme_child' ).val() ) ? $( '#ctc_theme_child' )
127
  .val().toString().replace( regex ) : newslug,
128
  type = $( 'input[name=ctc_child_type]:checked' ).val(),
129
  errors = [];
1426
  //self.jquery_exception( { 'message':'testing' }, 'Testing' );
1427
  // try to initialize theme menus
1428
  if ( !$( '#ctc_theme_parnt' ).is( 'input' ) ) {
1429
+
1430
  //console.log( 'initializing theme select menus...' );
1431
  try {
1432
  $.widget( 'ctc.themeMenu', $.ui.selectmenu, {
1433
  _renderItem: function( ul, item ) {
1434
  var li = $( "<li>" ),
1435
+ sel = item.value.replace( /[^\w\-]/g, '' );
1436
  $( '#ctc_theme_option_' + sel )
1437
  .detach().appendTo( li );
1438
  return li.appendTo( ul );
1746
  var self = this,
1747
  now = Math.floor( $.now() / 1000 ),
1748
  stylesheet = ( 'child' === themetype ? $.chldthmcfg.currchild : $.chldthmcfg.currparnt ),
1749
+ testparams = '&template=' + encodeURIComponent( $.chldthmcfg.currparnt ) + '&stylesheet=' + encodeURIComponent( stylesheet ) + '&now=' + now,
1750
  homeurl = self.setssl( window.ctcAjax.homeurl ), // window.ctcAjax.homeurl, //
1751
  url = homeurl + testparams;
1752
 
1757
  */
1758
  //console.log( 'Fetching home page: ' + url );
1759
  $.get( url, function( data ) {
1760
+ //console.log( data );
1761
  self.parse_page( themetype, data );
1762
  $( document ).trigger( 'analysisdone' );
1763
  } ).fail( function( xhr, status, err ){
js/chldthmcfg.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(e){"use strict";e.chldthmcfg={escquo:function(e){var t=this;return t.is_empty(e)?e:e.toString().replace(/"/g,"&quot;")},getxt:function(e,t){var c=window.ctcAjax[e+"_txt"];return c?(t&&(c=c.replace(/%s/,t)),c):""},getname:function(t){var c="child"===t?e.chldthmcfg.currchild:e.chldthmcfg.currparnt;return window.ctcAjax.themes[t][c].Name},frascii:function(e){var t=parseInt(e),c=String.fromCharCode(t);return c},toascii:function(e){var t=e.charCodeAt(0);return t},is_empty:function(e,t){if("undefined"==typeof e||!1===e||null===e||""===e)return!0;if("undefined"!=typeof t&&"0"===e||0===e)return!0;if(!0===e||"string"==typeof e||"number"==typeof e)return!1;if("object"==typeof e){for(var c in e)if(e.hasOwnProperty(c))return!1;return!0}return!1},theme_exists:function(t,c){var n=!1;return e.each(window.ctcAjax.themes,function(a,i){return e.each(i,function(e,i){return i=null,e.toLowerCase()!==t.toLowerCase()||"parnt"!==a&&"new"!==c?void 0:(n=!0,!1)}),n?!1:void 0}),n},validate:function(){var t=this,c=/[^\w\-]/,n=e("#ctc_child_template").length?e("#ctc_child_template").val().toString().replace(c):"",a=e("#ctc_theme_child").length?e("#ctc_theme_child").val().toString().replace(c):n,i=e("input[name=ctc_child_type]:checked").val(),s=[];return"new"===i&&(a=n),t.theme_exists(a,i)&&s.push(t.getxt("theme_exists").toString().replace(/%s/,a)),t.is_empty(a)&&s.push(t.getxt("inval_theme")),s.length?(t.set_notice({error:s}),!1):"reset"===i?!!confirm(t.getxt("load")):!0},autogen_slugs:function(){if(e("#ctc_theme_parnt").length){for(var t=this,c=e("#ctc_theme_parnt").val(),n=e("#ctc_theme_child").length?e("#ctc_theme_child").val():"",a=""!==n&&e("#ctc_child_type_duplicate").is(":checked")?n:c+"-child",i=a,s=""!==n&&e("#ctc_child_type_duplicate").is(":checked")?e.chldthmcfg.getname("child"):e.chldthmcfg.getname("parnt")+" Child",l="",r="",o="00";t.theme_exists(i,"new");)l=t.is_empty(l)?2:l+1,r=o.substring(0,o.length-l.toString().length)+l.toString(),i=a+r;t.testslug=i,t.testname=s+(r.length?" "+r:"")}},focus_panel:function(t){var c=t+"_panel";e(".nav-tab").removeClass("nav-tab-active"),e(".ctc-option-panel").removeClass("ctc-option-panel-active"),e(t).addClass("nav-tab-active"),e(".ctc-option-panel-container").scrollTop(0),e(c).addClass("ctc-option-panel-active")},selector_input_toggle:function(t){var c,n=this;e("#ctc_rewrite_selector").length?(c=e("#ctc_rewrite_selector_orig").val(),e("#ctc_sel_ovrd_selector_selected").text(c),e(t).text(n.getxt("rename"))):(c=e("#ctc_sel_ovrd_selector_selected").text(),e("#ctc_sel_ovrd_selector_selected").html('<textarea id="ctc_rewrite_selector" name="ctc_rewrite_selector" autocomplete="off"></textarea><input id="ctc_rewrite_selector_orig" name="ctc_rewrite_selector_orig" type="hidden" value="'+n.escquo(c)+'"/>'),e("#ctc_rewrite_selector").val(c),e(t).text(n.getxt("cancel")))},coalesce_inputs:function(t){var c=this,n=e(t).attr("id"),a=/^(ctc_(ovrd|\d+)_(parent|child)_([0-9a-z\-]+)_(\d+?)(_(\d+))?)(_\w+)?$/,i=e(t).parents(".ctc-selector-row, .ctc-parent-row").first(),s=i.find(".ctc-swatch").first(),l={parent:{},child:{}},r={parent:{origin:"",start:"",end:""},child:{origin:"",start:"",end:""}},o={child:!1,parent:!1},_={};return i.find(".ctc-parent-value, .ctc-child-value").each(function(){var t,i,s=e(this).attr("id"),d=s.toString().match(a),u=d[2],h=d[3],p="undefined"==typeof d[4]?"":d[4],m=d[7],g=d[5],f="undefined"==typeof d[7]?"":d[8],y="parent"===h?e(this).text().replace(/!$/,""):"seq"!==p&&"ctc_delete_query_selector"===n?"":e(this).val(),v="seq"===p?!1:"ctc_"+u+"_child_"+p+"_i_"+g+"_"+m;if("child"===h&&(c.is_empty(e(this).data("color"))||(y=c.color_text(e(this).data("color")),e(this).data("color",null)),_[s]=y,v&&(_[v]=e("#"+v).is(":checked")?1:0)),""!==y)if(c.is_empty(f))if(t=p.toString().match(/^border(\-(top|right|bottom|left))?$/)&&!y.match(/none/)){var w=new RegExp(c.border_regx+c.color_regx,"i");i=y.toString().match(w),c.is_empty(i)||(i.shift(),l[h][p+"-width"]=i.shift()||"",i.shift(),l[h][p+"-style"]=i.shift()||"",l[h][p+"-color"]=i.shift()||"")}else if("background-image"!==p||y.match(/none/))"seq"!==p&&(l[h][p]=y);else if(y.toString().match(/url\(/))l[h]["background-image"]=c.image_url(h,y);else{var x=new RegExp(c.grad_regx+c.color_regx+c.color_regx,"i");i=y.toString().match(x),!c.is_empty(i)&&i.length>2?(i.shift(),r[h].origin=i.shift()||"top",r[h].start=i.shift()||"transparent",r[h].end=i.shift()||"transparent",o[h]=!0):l[h]["background-image"]=y}else switch(f){case"_border_width":l[h][p+"-width"]="none"===y?0:y;break;case"_border_style":l[h][p+"-style"]=y;break;case"_border_color":l[h][p+"-color"]=y;break;case"_background_url":l[h]["background-image"]=c.image_url(h,y);break;case"_background_color":l[h]["background-color"]=y;break;case"_background_color1":r[h].start=y,o[h]=!0;break;case"_background_color2":r[h].end=y,o[h]=!0;break;case"_background_origin":r[h].origin=y,o[h]=!0}}),"undefined"==typeof s||c.is_empty(s.attr("id"))||(s.removeAttr("style"),o.parent&&s.ctcgrad(r.parent.origin,[r.parent.start,r.parent.end]),s.css(l.parent),s.attr("id").toString().match(/parent/)||(o.child&&s.ctcgrad(r.child.origin,[r.child.start,r.child.end]),s.css(l.child)),s.css({"z-index":-1})),_},decode_value:function(e,t){t="undefined"==typeof t?"":t;var c,n=this,a={orig:t,names:[""],values:[t]};if(e.toString().match(/^border(\-(top|right|bottom|left))?$/)){var i,s=new RegExp(n.border_regx+"("+n.color_regx+")?","i");c=t.toString().match(s),n.is_empty(c)&&(c=[]),a.names=["_border_width","_border_style","_border_color"],i=c.shift(),a.values[0]=c.shift()||"",c.shift(),a.values[1]=c.shift()||"",c.shift(),a.values[2]=c.shift()||""}else if(e.toString().match(/^background\-image/))if(a.names=["_background_url","_background_origin","_background_color1","_background_color2"],a.values=["","","",""],n.is_empty(t)||t.toString().match(/(url|none)/))a.values[0]=t;else{var l,r;c=t.toString().split(/:/),a.values[1]=c.shift()||"",a.values[2]=c.shift()||"",l=c.shift()||"",a.values[3]=c.shift()||"",r=c.shift()||"",a.orig=[a.values[1],a.values[2],a.values[3]].join(" ")}return a},image_url:function(e,t){var c,n=this,a=t.toString().match(/url\(['" ]*(.+?)['" ]*\)/),i=n.is_empty(a)?null:a[1],s=window.ctcAjax.theme_uri+"/"+("parent"===e?window.ctcAjax.parnt:window.ctcAjax.child)+"/";return i?c=i.toString().match(/^(data:|https?:|\/)/)?t:"url("+s+i+")":!1},setup_menus:function(){var e=this;e.setup_query_menu(),e.setup_selector_menu(),e.setup_rule_menu(),e.setup_new_rule_menu(),e.load_queries(),e.load_rules(),e.set_query(e.currquery)},load_queries:function(){var e=this;e.query_css("queries",null)},load_selectors:function(){var e=this;e.query_css("selectors",e.currquery)},load_rules:function(){var e=this;e.query_css("rules",null)},load_selector_values:function(){var e=this;e.query_css("qsid",e.currqsid)},get_queries:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.chldthmcfg.is_empty(this.element.data("menu"))?n.push({label:window.ctcAjax.nosels_txt,value:null}):e.each(this.element.data("menu"),function(e,t){a.test(t)&&n.push({label:t,value:t})}),c(n)},get_selectors:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.chldthmcfg.is_empty(this.element.data("menu"))?n.push({label:window.ctcAjax.nosels_txt,value:null}):e.each(this.element.data("menu"),function(e,t){a.test(e)&&n.push({label:e,value:t})}),c(n)},get_rules:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.chldthmcfg.is_empty(this.element.data("menu"))?n.push({label:window.ctcAjax.nosels_txt,value:null}):e.each(this.element.data("menu"),function(e,t){a.test(e)&&n.push({label:e,value:t})}),c(n)},get_filtered_rules:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.each(e("#ctc_rule_menu").data("menu"),function(e,t){a.test(e)&&n.push({label:e,value:t})}),c(n)},merge_ruleval_arrays:function(t,c,n){var a=this,i={},s=n?c.child.pop():null;return e.each(["parnt","child"],function(t,l){a.is_empty(c[l])||e.each(c[l],function(e,t){n?parseInt(t[2])>=parseInt(s[2])&&(s[2]=parseInt(t[2])+1):(a.is_empty(i[t[2]])&&(i[t[2]]={}),i[t[2]][l]=t)})}),n&&(i[s[2]]={parnt:[],child:s}),i},input_row:function(t,c,n,a,i){var s=this,l="";if(!s.is_empty(a)&&!s.is_empty(a.value)&&!s.is_empty(a.value[c])){var r=a.value[c],o=s.merge_ruleval_arrays(c,r,i);e.each(o,function(i,r){var o=s.decode_value(c,s.is_empty(r.parnt)?"":r.parnt[0]),_=s.is_empty(r.parnt)||s.is_empty(r.parnt[1],1)?0:1,d=s.decode_value(c,s.is_empty(r.child)?"":r.child[0]),u=s.is_empty(r.child)||s.is_empty(r.child[1],1)?0:1;if(l+='<div class="ctc-'+("ovrd"===n?"input":"selector")+'-row clearfix"><div class="ctc-input-cell">',l+="ovrd"===n?c.replace(/\d+/g,s.frascii):a.selector+'<br/><a href="#" class="ctc-selector-edit" id="ctc_selector_edit_'+t+'" >'+s.getxt("edit")+"</a> "+(s.is_empty(o.orig)?s.getxt("child_only"):""),l+='</div><div class="ctc-parent-value ctc-input-cell"'+("ovrd"!==n?' style="display:none"':"")+' id="ctc_'+n+"_parent_"+c+"_"+t+"_"+i+'">'+(s.is_empty(o.orig)?"[no value]":o.orig+(_?s.getxt("important"):""))+'</div><div class="ctc-input-cell">',!s.is_empty(o.names)){e.each(o.names,function(e,a){a=s.is_empty(a)?"":a,l+='<div class="ctc-child-input-cell ctc-clear">';var r,o="ctc_"+n+"_child_"+c+"_"+t+"_"+i+a;!1===(r=d.values.shift())&&(r=""),l+=(s.is_empty(a)?"":s.getxt(a)+":<br/>")+'<input type="text" id="'+o+'" name="'+o+'" class="ctc-child-value'+((a+c).toString().match(/color/)?" color-picker":"")+(a.toString().match(/url/)?" ctc-input-wide":"")+'" value="'+s.escquo(r)+'" /></div>'});var h="ctc_"+n+"_child_"+c+"_i_"+t+"_"+i;l+='<label for="'+h+'"><input type="checkbox" id="'+h+'" name="'+h+'" value="1" '+(u?"checked":"")+" />"+s.getxt("important")+"</label>"}l+="</div>","ovrd"!==n&&(l+='<div class="ctc-swatch ctc-specific" id="ctc_child_'+c+"_"+t+"_"+i+'_swatch">'+s.getxt("swatch")+'</div><div class="ctc-child-input-cell ctc-button-cell" id="ctc_save_'+c+"_"+t+"_"+i+'_cell"><input type="button" class="button ctc-save-input" id="ctc_save_'+c+"_"+t+"_"+i+'" name="ctc_save_'+c+"_"+t+"_"+i+'" value="Save" /></div>'),l+="</div><!-- end input row -->\n"})}return l},scrolltop:function(){e("html, body, .ctc-option-panel-container").animate({scrollTop:0})},css_preview:function(e){var t=this;(e=e.match(/(child|parnt)/)[1])||(e="child"),t.query_css("preview",e)},setup_iris:function(e){var t=this;t.setup_spectrum(e)},setup_spectrum:function(t){var c=this,n=!c.is_empty(window.ctcAjax.palette);try{e(t).spectrum({showInput:!0,allowEmpty:!0,showAlpha:!0,showInitial:!0,preferredFormat:"hex",clickoutFiresChange:!0,move:function(n){e(t).data("color",n),c.coalesce_inputs(t)},showPalette:!!n,showSelectionPalette:!!n,palette:[],maxSelectionSize:36,localStorageKey:"ctc-palette."+window.ctcAjax.child,hideAfterPaletteSelect:!0}).on("change",function(){c.coalesce_inputs(this)}).on("keyup",function(){var t=this,n=c.addhash(e(this).val());e(t).val(n),clearTimeout(e(this).data("spectrumTimer")),e(this).data("spectrumTimer",setTimeout(function(){c.coalesce_inputs(t),e(t).spectrum("set",n)},500))})}catch(a){c.jquery_exception(a,"Spectrum Color Picker")}},addhash:function(e){return e.replace(/^#?([a-f0-9]{3,6}.*)/,"#$1")},color_text:function(e){var t=this;return t.is_empty(e)?"":e.getAlpha()<1?e.toRgbString():e.toHexString()},setup_query_menu:function(){var t=this;try{e("#ctc_sel_ovrd_query").autocomplete({source:t.get_queries,minLength:0,selectFirst:!0,autoFocus:!0,select:function(e,c){return t.set_query(c.item.value),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"Query Menu")}},setup_selector_menu:function(){var t=this;try{e("#ctc_sel_ovrd_selector").autocomplete({source:t.get_selectors,selectFirst:!0,autoFocus:!0,select:function(e,c){return t.set_selector(c.item.value,c.item.label),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"Selector Menu")}},setup_rule_menu:function(){var t=this;try{e("#ctc_rule_menu").autocomplete({source:t.get_rules,selectFirst:!0,autoFocus:!0,select:function(e,c){return t.set_rule(c.item.value,c.item.label),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"Property Menu")}},setup_new_rule_menu:function(){var t=this;try{e("#ctc_new_rule_menu").autocomplete({source:t.get_filtered_rules,selectFirst:!0,autoFocus:!0,select:function(c,n){c.preventDefault();var a,i,s=n.item.label.replace(/[^\w\-]/g,t.toascii);return t.is_empty(t.currdata.value)&&(t.currdata.value={}),t.is_empty(t.currdata.value[n.item.label])&&(t.currdata.value[n.item.label]={}),t.is_empty(t.currdata.value[n.item.label].child)&&(t.currdata.value[n.item.label].child=[]),t.currdata.value[n.item.label].child.push(["",0,1,1]),a=e(t.input_row(t.currqsid,s,"ovrd",t.currdata,!0)),e("#ctc_sel_ovrd_rule_inputs").append(a),e("#ctc_new_rule_menu").val(""),a.find('input[type="text"]').each(function(c,n){i||(i=n),e(n).hasClass("color-picker")&&t.setup_spectrum(n)}),i&&e(i).focus(),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"New Property Menu")}},set_theme_params:function(t,c){e("#ctc_child_author").val(window.ctcAjax.themes[t][c].Author),e("#ctc_child_version").val(window.ctcAjax.themes[t][c].Version),e("#ctc_child_authoruri").val(window.ctcAjax.themes[t][c].AuthorURI),e("#ctc_child_themeuri").val(window.ctcAjax.themes[t][c].ThemeURI),e("#ctc_child_descr").val(window.ctcAjax.themes[t][c].Descr),e("#ctc_child_tags").val(window.ctcAjax.themes[t][c].Tags)},update_form:function(){var t,c=this;e("#input_row_stylesheet_handling_container,#input_row_parent_handling_container,#ctc_additional_css_files_container,#input_row_new_theme_slug,#input_row_duplicate_theme_slug,#ctc_copy_theme_mods,#ctc_child_header_parameters,#ctc_configure_submit,#input_row_theme_slug").slideUp("fast"),e("#ctc_configure_submit .ctc-step").text("9"),e("#ctc_theme_child").length&&!e("#ctc_child_type_new").is(":checked")?(t=e("#ctc_theme_child").val(),c.existing=1,c.currparnt=window.ctcAjax.themes.child[t].Template,c.autogen_slugs(),e("#ctc_theme_parnt").val(c.currparnt),e("#ctc_theme_parnt-button .ui-selectmenu-text").text(c.getname("parnt")),c.set_theme_params("child",t),e("#ctc_child_type_duplicate").is(":checked")?(e("#ctc_child_template").val(c.testslug),e("#ctc_child_name").val(c.testname),e(".ctc-analyze-theme, .ctc-analyze-howto").show(),e("#ctc_load_styles").val("Duplicate Child Theme")):e("#ctc_child_type_reset").is(":checked")?(e("#ctc_configure_submit .ctc-step").text("3"),e("#ctc_configure_submit").slideDown("fast"),e("#theme_slug_container").text(t),e(".ctc-analyze-theme, .ctc-analyze-howto").hide(),e("#ctc_enqueue_none").prop("checked",!0),e("#ctc_load_styles").val("Reset Child Theme to Previous State")):(e("#ctc_child_template").val(""),e("#theme_slug_container").text(t),e(".ctc-analyze-theme, .ctc-analyze-howto").show(),e("#ctc_child_name").val(c.getname("child")),e("#ctc_load_styles").val("Configure Child Theme")),e("#input_row_existing_theme_option").slideDown("fast"),e("#input_row_new_theme_option").slideUp("fast")):(c.existing=0,c.autogen_slugs(),e("#ctc_theme_parnt").val(c.currparnt),e("#ctc_theme_parnt-button .ui-selectmenu-text").text(e.chldthmcfg.getname("parnt")),c.set_theme_params("parnt",c.currparnt),e("#input_row_existing_theme_option,#input_row_duplicate_theme_container,#input_row_theme_slug").slideUp("fast"),e("#input_row_new_theme_option").slideDown("fast"),e("#ctc_child_name").val(c.testname),e("#ctc_child_template").val(c.testslug),e(".ctc-analyze-theme, .ctc-analyze-howto").show(),e("#ctc_load_styles").val("Create New Child Theme"))},set_notice:function(t){var c,n=this,a="";n.is_empty(t)||e.each(t,function(t,c){a+='<div class="'+t+' notice is-dismissible dashicons-before"><ul>\n',e(c).each(function(e,t){a+="<li>"+t.toString()+"</li>\n"}),a+="</ul></div>"}),c=e(a),e("#ctc_error_notice").html(c),n.bind_dismiss(c),e("html, body").animate({scrollTop:0},"slow")},set_parent_menu:function(e){var t=this;t.currparnt=e.value,t.update_form()},set_child_menu:function(e){var t=this;t.currchild=e.value,t.update_form()},set_query:function(t){var c=this;return c.is_empty(t)?!1:(c.currquery=t,e("#ctc_sel_ovrd_query").val(""),e("#ctc_sel_ovrd_query_selected").text(t),e("#ctc_sel_ovrd_selector").val(""),e("#ctc_sel_ovrd_selector_selected").html("&nbsp;"),c.load_selectors(),void c.scrolltop())},set_selector:function(t,c){var n=this;return c=null,n.is_empty(t)?!1:(e("#ctc_sel_ovrd_selector").val(""),n.currqsid=t,n.reload=!1,n.load_selector_values(),void n.scrolltop())},set_rule:function(t,c){var n=this;return n.is_empty(t)?!1:(e("#ctc_rule_menu").val(""),e("#ctc_rule_menu_selected").text(c),e(".ctc-rewrite-toggle").text(n.getxt("rename")),e("#ctc_rule_value_inputs, #ctc_input_row_rule_header").show(),n.query_css("rule_val",t),void n.scrolltop())},set_qsid:function(t){var c=this;c.currqsid=e(t).attr("id").match(/_(\d+)$/)[1],c.focus_panel("#query_selector_options"),c.reload=!0,c.load_selector_values()},query_css:function(t,c,n){var a=this,i={ctc_query_obj:t,ctc_query_key:c},s="#ctc_status_"+t+("val_qry"===t?"_"+c:"");"object"==typeof n&&e.each(n,function(e,t){i["ctc_query_"+e]=t}),e(".query-icon,.ctc-status-icon").remove(),e(s+" .ctc-status-icon").remove(),e(s).append('<span class="ctc-status-icon spinner is-active query-icon"></span>'),i.action=a.is_empty(e("#ctc_action").val())||"plugin"!==e("#ctc_action").val()?"ctc_query":"ctc_plgqry",i._wpnonce=e("#_wpnonce").val(),a.ajax_post(t,i)},save:function(t){var c,n,a,i,s,l=this,r={},o=e(t).attr("id");e(t).prop("disabled",!0),e(".ctc-query-icon,.ctc-status-icon").remove(),e(t).parent(".ctc-textarea-button-cell, .ctc-button-cell").append('<span class="ctc-status-icon spinner save-icon"></span>'),o.match(/ctc_configtype/)?(e(t).parents(".ctc-input-row").first().append('<span class="ctc-status-icon spinner save-icon"></span>'),r.ctc_configtype=e(t).val()):(c=e("#ctc_new_selectors"))&&"ctc_save_new_selectors"===e(t).attr("id")?(r.ctc_new_selectors=c.val(),(n=e("#ctc_sel_ovrd_query_selected"))&&(r.ctc_sel_ovrd_query=n.text()),l.reload=!0):(a=e("#ctc_child_imports"))&&"ctc_save_imports"===o?r.ctc_child_imports=a.val():"ctc_is_debug"===o?r.ctc_is_debug=e("#ctc_is_debug").is(":checked")?1:0:r=l.coalesce_inputs(t),e(".save-icon").addClass("is-active"),e("#ctc_sel_ovrd_selector_selected").find("#ctc_rewrite_selector").each(function(){i=e("#ctc_rewrite_selector").val(),s=e("#ctc_rewrite_selector_orig").val(),l.is_empty(i)||!i.toString().match(/\w/)?i=s:(r.ctc_rewrite_selector=i,l.reload=!0),e(".ctc-rewrite-toggle").text(l.getxt("rename")),e("#ctc_sel_ovrd_selector_selected").html(i)}),r.action=l.is_empty(e("#ctc_action").val())||"plugin"!==e("#ctc_action").val()?"ctc_update":"ctc_plugin",r._wpnonce=e("#_wpnonce").val(),l.ajax_post("qsid",r)},ajax_post:function(t,c,n){var a=this;e.ajax({url:window.ctcAjax.ajaxurl,data:c,dataType:a.is_empty(n)?"json":n,type:"POST"}).done(function(e){a.handle_success(t,e)}).fail(function(){a.handle_failure(t)}).always(function(){a.jqueryerr.length&&a.jquery_notice()})},handle_failure:function(t){var c=this;e(".query-icon, .save-icon").removeClass("spinner").addClass("failure"),e("input[type=submit], input[type=button], input[type=checkbox],.ctc-delete-input").prop("disabled",!1),e(".ajax-pending").removeClass("ajax-pending"),"preview"===t&&e("#view_parnt_options_panel,#view_child_options_panel").text(c.getxt("css_fail"))},handle_success:function(t,c){var n=this;e(".query-icon, .save-icon").removeClass("spinner"),e(".ajax-pending").removeClass("ajax-pending"),n.is_empty(c)?n.handle_failure(t):(e("#ctc_new_selectors").val(""),e(".query-icon, .save-icon").addClass("success"),e("input[type=submit], input[type=button], input[type=checkbox],.ctc-delete-input").prop("disabled",!1),e(c).each(function(){"function"==typeof n.update[this.obj]&&n.update[this.obj].call(n,this)}))},jquery_exception:function(e,t){var c=this,n=c.is_empty(e.lineNumber)?"":" line: "+e.lineNumber,a=c.is_empty(e.fileName)?"":" "+e.fileName.split(/\?/)[0];c.jqueryerr.push("<code><small>"+t+": "+e.message+a+n+"</small></code>")},jquery_notice:function(t){t=null;var c=this,n=[],a=[];c.jqueryerr.length&&(e("input[type=submit], input[type=button]").prop("disabled",!0),e("script").each(function(){var t=e(this).prop("src");c.is_empty(t)||!t.match(/jquery(\.min|\.js|\-?ui)/i)||t.match(/load\-scripts.php/)||n.push("<code><small>"+t.split(/\?/)[0]+"</small></code>")}),a.push("<strong>"+c.getxt("js")+"</strong> "+c.getxt("contact")),a.push(c.jqueryerr.join("<br/>")),n.length&&a.push(c.getxt("jquery")+"<br/>"+n.join("<br/>")),a.push(c.getxt("plugin"))),c.set_notice({error:a})},update:{qsid:function(t){var c,n,a,i,s=this;s.currqsid=t.key,s.currdata=t.data,e("#ctc_sel_ovrd_qsid").val(s.currqsid),s.is_empty(s.currdata.seq)?e("#ctc_child_load_order_container").empty():(c="ctc_ovrd_child_seq_"+s.currqsid,a=parseInt(s.currdata.seq),n='<input type="text" id="'+c+'" name="'+c+'" class="ctc-child-value" value="'+a+'" />',e("#ctc_child_load_order_container").html(n)),s.is_empty(s.currdata.value)?(i=!0,e("#ctc_sel_ovrd_rule_inputs").empty()):(i=!1,n="",e.each(s.currdata.value,function(e,t){t=null,n+=s.input_row(s.currqsid,e,"ovrd",s.currdata)}),e("#ctc_sel_ovrd_rule_inputs").html(n).find(".color-picker").each(function(){s.setup_spectrum(this)}),s.coalesce_inputs("#ctc_child_all_0_swatch")),s.reload&&(s.load_queries(),s.set_query(s.currdata.query),s.load_rules()),e("#ctc_sel_ovrd_selector_selected").text(s.currdata.selector),e(".ctc-rewrite-toggle").text(s.getxt("rename")),e(".ctc-rewrite-toggle").show(),i?e("#ctc_sel_ovrd_rule_header,#ctc_sel_ovrd_new_rule,#ctc_sel_ovrd_rule_inputs_container,#ctc_sel_ovrd_rule_inputs").hide():e("#ctc_sel_ovrd_rule_header,#ctc_sel_ovrd_new_rule,#ctc_sel_ovrd_rule_inputs_container,#ctc_sel_ovrd_rule_inputs").show()},rule_val:function(t){var c=this,n=e("#ctc_rule_menu_selected").text(),a='<div class="ctc-input-row clearfix" id="ctc_rule_row_'+n+'">\n';c.is_empty(t.data)||(e.each(t.data,function(e,t){var i=c.decode_value(n,t);a+='<div class="ctc-parent-row clearfix" id="ctc_rule_row_'+n+"_"+e+'">\n<div class="ctc-input-cell ctc-parent-value" id="ctc_'+e+"_parent_"+n+"_"+e+'">'+i.orig+'</div>\n<div class="ctc-input-cell">\n<div class="ctc-swatch ctc-specific" id="ctc_'+e+"_parent_"+n+"_"+e+'_swatch">'+c.getxt("swatch")+'</div></div>\n<div class="ctc-input-cell"><a href="#" class="ctc-selector-handle" id="ctc_selector_'+n+"_"+e+'">'+c.getxt("selector")+'</a></div>\n<div id="ctc_selector_'+n+"_"+e+'_container" class="ctc-selector-container">\n<a href="#" id="ctc_selector_'+n+"_"+e+'_close" class="ctc-selector-handle ctc-exit" title="'+c.getxt("close")+'"></a><div id="ctc_selector_'+n+"_"+e+'_inner_container" class="ctc-selector-inner-container clearfix">\n<div id="ctc_status_val_qry_'+e+'"></div>\n<div id="ctc_selector_'+n+"_"+e+'_rows"></div>\n</div></div></div>\n'}),a+="</div>\n"),e("#ctc_rule_value_inputs").html(a).find(".ctc-swatch").each(function(){c.coalesce_inputs(this)})},val_qry:function(t){var c,n,a=this,i="";a.is_empty(t.data)||e.each(t.data,function(n,s){c=n,e.each(s,function(c,s){i+='<h4 class="ctc-query-heading">'+c+"</h4>\n",a.is_empty(s)||e.each(s,function(e,c){i+=a.input_row(e,n,t.key,c)})})}),n="#ctc_selector_"+c+"_"+t.key+"_rows",e(n).html(i).find(".color-picker").each(function(){a.setup_spectrum(this)}),e(n).find(".ctc-swatch").each(function(){a.coalesce_inputs(this)})},queries:function(t){e("#ctc_sel_ovrd_query").data("menu",t.data)},selectors:function(t){e("#ctc_sel_ovrd_selector").data("menu",t.data)},rules:function(t){e("#ctc_rule_menu").data("menu",t.data)},debug:function(t){e("#ctc_debug_box").val(e("#ctc_debug_box").val()+t.data)},preview:function(t){e("#view_"+t.key+"_options_panel").text(t.data)},dismiss:function(){}},bind_dismiss:function(t){var c=this,n=e(t),a=e('<button type="button" class="notice-dismiss"><span class="screen-reader-text"></span></button>'),i=window.commonL10n.dismiss||"";a.find(".screen-reader-text").text(i),n.append(a),a.on("click.wp-dismiss-notice",function(e){e.preventDefault(),c.dismiss_notice(t)})},dismiss_notice:function(t){e(t).fadeTo(100,0,function(){e(this).slideUp(100,function(){e(this).remove()})})},reset_handling:function(){e("#parnt_analysis_notice .notice, #child_analysis_notice .notice").slideUp(),e("#ctc_enqueue_enqueue").prop("checked",!0),e("#ctc_handling_primary").prop("checked",!0),e("#ctc_ignoreparnt").prop("checked",!1),e("#ctc_repairheader").prop("checked",!1)},init:function(){var t=this;if(!e("#ctc_theme_parnt").is("input")){try{e.widget("ctc.themeMenu",e.ui.selectmenu,{_renderItem:function(t,c){var n=e("<li>"),a=c.value.replace(/[^\w\-]/,"");return e("#ctc_theme_option_"+a).detach().appendTo(n),n.appendTo(t)}})}catch(c){t.jquery_exception(c,"Theme Menu")}try{e("#ctc_theme_parnt").themeMenu({select:function(e,c){t.reset_handling(),t.set_parent_menu(c.item)}})}catch(c){"function"==typeof themeMenu?e("#ctc_theme_parnt").themeMenu("destroy"):e("#ctc_theme_parnt-button").remove(),t.jquery_exception(c,"Parent Theme Menu")}if(t.is_empty(window.ctcAjax.themes.child))e("#ctc_child_name").length&&(e("#ctc_child_name").val(t.testname),e("#ctc_child_template").val(t.testslug));else try{e("#ctc_theme_child").themeMenu({select:function(e,c){t.reset_handling(),t.set_child_menu(c.item)}})}catch(c){"function"==typeof themeMenu?e("#ctc_theme_child").themeMenu("destroy"):e("#ctc_theme_child-button").remove(),t.jquery_exception(c,"Child Theme Menu")}}t.currparnt=e("#ctc_theme_parnt").val(),t.currchild=e("#ctc_theme_child").length?e("#ctc_theme_child").val():"",e("#ctc_main").on("click",".ctc-section-toggle",function(t){t.preventDefault(),e(this).parents(".ctc-input-row, .notice-warning, .updated, .error").first().find(".ctc-section-toggle").each(function(){e(this).toggleClass("open")});var c=e(this).attr("id").replace(/\d$/,"")+"_content";return e("#"+c).stop().slideToggle("fast"),!1}),e("#ctc_main").on("click",".ctc-upgrade-notice .notice-dismiss",function(){var c={action:"ctc_dismiss",_wpnonce:e("#_wpnonce").val()};t.ajax_post("dismiss",c)}),t.is_empty(t.jqueryerr)&&(e("#ctc_main").on("click",".ctc-selector-handle",function(c){if(c.preventDefault(),e(this).hasClass("ajax-pending"))return!1;e(this).addClass("ajax-pending");var n,a,i=e(this).attr("id").toString().replace("_close",""),s=i.toString().match(/_([^_]+)_(\d+)$/);e("#"+i+"_container").is(":hidden")&&(t.is_empty(s[1])||t.is_empty(s[2])||(n=s[1],a=s[2],t.query_css("val_qry",a,{rule:n}))),e("#"+i+"_container").fadeToggle("fast"),e(".ctc-selector-container").not("#"+i+"_container").fadeOut("fast")}),e("#ctc_main").on("click",".ctc-save-input[type=button], .ctc-delete-input",function(c){return c.preventDefault(),e(this).hasClass("ajax-pending")?!1:(e(this).addClass("ajax-pending"),t.save(this),!1)}),e("#ctc_main").on("keydown",".ctc-selector-container .ctc-child-value[type=text]",function(c){if(13===c.which){var n=e(this).parents(".ctc-selector-row").find(".ctc-save-input[type=button]").first();if(n.length)return c.preventDefault(),n.hasClass("ajax-pending")?!1:(n.addClass("ajax-pending"),t.save(n),!1)}}),e("#ctc_main").on("click",".ctc-selector-edit",function(c){return c.preventDefault(),e(this).hasClass("ajax-pending")?!1:(e(this).addClass("ajax-pending"),void t.set_qsid(this))}),e("#ctc_main").on("click",".ctc-rewrite-toggle",function(e){e.preventDefault(),t.selector_input_toggle(this)}),e("#ctc_main").on("click","#ctc_copy_selector",function(){var c=e("#ctc_sel_ovrd_selector_selected").text().trim();t.is_empty(c)||e("#ctc_new_selectors").val(e("#ctc_new_selectors").val()+"\n"+c+" {\n\n}")}),e("#ctc_main").on("click",".ctc-backup-theme",function(c){c.preventDefault(),t.existing?e("#ctc_export_theme").val(t.currchild):e("#ctc_export_theme").val(t.currparnt),e("#ctc_export_theme_form").submit()}),e("#ctc_configtype").on("change",function(){var c=e(this).val();if(t.is_empty(c)||"theme"===c){e(".ctc-theme-only, .ctc-themeonly-container").removeClass("ctc-disabled"),e(".ctc-theme-only, .ctc-themeonly-container input").prop("disabled",!1);try{e("#ctc_theme_parnt, #ctc_theme_child").themeMenu("enable")}catch(n){t.jquery_exception(n,"Theme Menu")}}else{e(".ctc-theme-only, .ctc-themeonly-container").addClass("ctc-disabled"),e(".ctc-theme-only, .ctc-themeonly-container input").prop("disabled",!0);try{e("#ctc_theme_parnt, #ctc_theme_child").themeMenu("disable")}catch(n){t.jquery_exception(n,"Theme Menu")}}}),e(".nav-tab").on("click",function(c){if(c.preventDefault(),e(c.target).hasClass("ctc-disabled"))return!1;e(".ctc-query-icon,.ctc-status-icon").remove();var n="#"+e(this).attr("id");t.focus_panel(n)}),e("#view_child_options, #view_parnt_options").on("click",function(c){return e(c.target).hasClass("ajax-pending")||e(c.target).hasClass("ctc-disabled")?!1:(e(c.target).addClass("ajax-pending"),void t.css_preview(e(this).attr("id")))}),e("#ctc_load_form").on("submit",function(){return t.validate()}),e("#ctc_query_selector_form").on("submit",function(c){c.preventDefault();var n=e("#ctc_save_query_selector");return n.hasClass("ajax-pending")?!1:(n.addClass("ajax-pending"),t.save(n),!1)}),e("#ctc_rule_value_form").on("submit",function(e){return e.preventDefault(),!1}),e("#ctc_child_type_new,#ctc_child_type_existing,#ctc_child_type_duplicate,#ctc_child_type_reset").on("focus click",function(){t.reset_handling(),t.update_form()}),e("#ctc_is_debug").on("change",function(){e(this).is(":checked")?e("#ctc_debug_box").length||e("#ctc_debug_container").html('<textarea id="ctc_debug_box"></textarea>'):e("#ctc_debug_box").remove(),t.save(this)}),e(".ctc-live-preview").on("click",function(t){return t.stopImmediatePropagation(),t.preventDefault(),document.location=e(this).prop("href"),!1}),t.setup_menus(),e("input[type=submit], input[type=button]").prop("disabled",!1),t.scrolltop(),t.update_form()),t.jqueryerr.length&&t.jquery_notice()},testslug:"",testname:"",reload:!1,currquery:"base",currqsid:null,currdata:{},currparnt:"",currchild:"",existing:!1,jqueryerr:[],color_regx:"\\s+(\\#[a-f0-9]{3,6}|rgba?\\([\\d., ]+?\\)|hsla?\\([\\d%., ]+?\\)|[a-z]+)",border_regx:"(\\w+)(\\s+(\\w+))?",grad_regx:"(\\w+)"},e.chldthmanalyze={escrgx:function(e){return e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1")},trmcss:function(e){return"undefined"==typeof e?"":e.replace(/\-css$/,"")},show_loading:function(t,c){var n=e.chldthmcfg.existing?"child":"parnt",a=c?c:e.chldthmcfg.getname(n),i='<strong class="ctc_analyze_loading"><span class="spinner is-active"></span>'+e.chldthmcfg.getxt(t?"anlz1":"anlz2")+" "+a+"...</strong>";self.noticediv="",e("#"+n+"_analysis_notice").html(i)},hide_loading:function(){e(".ctc_analyze_loading").fadeTo(200,0,function(){e(this).slideUp(200,function(){e(this).remove()})})},setssl:function(e){return e.replace(/^https?/,window.ctcAjax.ssl?"https":"http")},analyze_theme:function(t){var c=this,n=Math.floor(e.now()/1e3),a="child"===t?e.chldthmcfg.currchild:e.chldthmcfg.currparnt,i="&template="+e.chldthmcfg.currparnt+"&stylesheet="+a+"&now="+n,s=c.setssl(window.ctcAjax.homeurl),l=s+i;c.analysis[t].url=l,e.get(l,function(n){c.parse_page(t,n),e(document).trigger("analysisdone")}).fail(function(n,i,s){c.analysis[t].signals.xhrgeterr=s,e.ajax({url:window.ctcAjax.ajaxurl,data:{action:"ctc_analyze",stylesheet:a,template:e.chldthmcfg.currparnt,_wpnonce:e("#_wpnonce").val()},dataType:"json",type:"POST"}).done(function(n){n.signals.httperr?(c.analysis[t].signals.failure=1,c.analysis[t].signals.httperr=n.signals.httperr):c.parse_page(t,n.body),e(document).trigger("analysisdone")}).fail(function(n,a,i){c.analysis[t].signals.failure=1,c.analysis[t].signals.xhrajaxerr=i,e(document).trigger("analysisdone")})})},parse_page:function(t,c){var n,a,i,s=this,l=window.ctcAjax.theme_uri.replace(/^https?:\/\//,""),r="child"===t?e.chldthmcfg.currchild:e.chldthmcfg.currparnt,o=s.escrgx(e.chldthmcfg.currparnt)+("child"===t?"|"+s.escrgx(r):""),_=new RegExp("<link( rel=[\"']stylesheet[\"'] id=['\"]([^'\"]+?)['\"])?[^>]+?"+s.escrgx(l)+"/("+o+")/([^\"']+\\.css)(\\?[^\"']+)?[\"'][^>]+>","gi"),d=/<br \/>\n[^\n]+?(fatal|strict|notice|warning|error)[\s\S]+?<br \/>/gi,u=0,h=0;
2
  for((a=c.match(/BEGIN WP QUEUE\n([\s\S]*?)\nEND WP QUEUE/))?s.analysis[t].queue=a[1].split(/\n/):(s.analysis[t].queue=[],s.analysis[t].signals.thm_noqueue=1),(a=c.match(/BEGIN CTC IRREGULAR\n([\s\S]*?)\nEND CTC IRREGULAR/))?s.analysis[t].irreg=a[1].split(/\n/):s.analysis[t].irreg=[],c.match(/CHLD_THM_CFG_IGNORE_PARENT/)&&(s.analysis[t].signals.thm_ignoreparnt=1),c.match(/IS_CTC_THEME/)&&(s.analysis[t].signals.thm_is_ctc=1),c.match(/NO_CTC_STYLES/)&&(s.analysis[t].signals.thm_no_styles=1),c.match(/HAS_CTC_IMPORT/)&&(s.analysis[t].signals.thm_has_import=1),c=c.replace(/<!\-\-[\s\S]*?\-\->/g,"");n=d.exec(c);){var p=n[0].replace(/<.*?>/g,"");s.phperr[t].push(p),s.analysis[t].signals.err_php=1,p.match(/Fatal error/i)&&(s.analysis[t].signals.err_fatal=1)}for(;i=_.exec(c);){var m=s.trmcss(i[2]),g=i[3],f=i[4],y=e.chldthmcfg.currparnt===g?"parnt":"child",v=0;if(""===m||-1===e.inArray(m,s.analysis[t].queue))v=1;else if(0===m.indexOf("chld_thm_cfg")){f.match(/^ctc\-style([\-\.]min)?\.css$/)?(u=1,s.analysis[t].signals.ctc_sep_loaded=1):f.match(/^ctc\-genesis([\-\.]min)?\.css$/)?(u=1,s.analysis[t].signals.ctc_gen_loaded=1):m.match(/$chld_thm_cfg_ext/)?(s.analysis[t].signals.ctc_ext_loaded=1,s.analysis[t].deps[u].push([m,f])):"chld_thm_cfg_child"===m?(s.analysis[t].signals.ctc_child_loaded=1,s.analysis[t].deps[u].push([m,f])):"chld_thm_cfg_parent"===m&&(s.analysis[t].signals.ctc_parnt_loaded=1,s.analysis[t].deps[u].push([m,f]),u&&(s.analysis[t].signals.ctc_parnt_reorder=1));continue}if(f.match(/^style([\-\.]min)?\.css$/))u=1,"parnt"===y?v?s.analysis[t].signals.thm_parnt_loaded="thm_unregistered":(s.analysis[t].signals.thm_parnt_loaded=m,"child"===t&&s.analysis[t].signals.thm_child_loaded&&(s.analysis[t].signals.ctc_parnt_reorder=1)):s.analysis[t].signals.thm_child_loaded=v?"thm_unregistered":m,v?h?(s.analysis[t].signals.thm_past_wphead=1,s.analysis[t].deps[u].push(["thm_past_wphead",f])):(s.analysis[t].signals.thm_unregistered=1,s.analysis[t].deps[u].push(["thm_unregistered",f])):s.analysis[t].deps[u].push([m,f]);else if("ctc-test.css"===f)h=1;else{var w=null;v&&(w="dep_unregistered"),h&&(w=u?"css_past_wphead":"dep_past_wphead"),w?(s.analysis[t].signals[w]=1,m=w):s.dependencies[m]=f,s.analysis[t].deps[u].push([m,f])}}u||(s.analysis[t].signals.thm_notheme=1)},css_notice:function(){var t,c,n=this,a=e.chldthmcfg.existing?"child":"parnt",i=e.chldthmcfg.getname(a),s="",l={notices:[]},r={style:"notice-warning",headline:e.chldthmcfg.getxt("anlz3",i),errlist:""},o=0,_={},d="";if(n.analysis[a].signals.failure||n.analysis[a].signals.thm_noqueue&&!n.phperr[a].length)d=e.chldthmcfg.getxt("anlz33").replace(/%1/,'<a href="'+n.analysis[a].url+'" target="_new">').replace(/%2/,"</a>"),l.notices.push({headline:e.chldthmcfg.getxt("anlz4",i),msg:e.chldthmcfg.getxt("anlz5")+d,style:"notice-warning"});else{if(n.phperr[a].length&&(e.each(n.phperr[a],function(t,c){c.match(/Fatal error/i)&&(r.style="error",r.headline=e.chldthmcfg.getxt("anlz8",i)),r.errlist+=c+"\n"}),r.msg='<div style="background-color:#ffeebb;padding:6px"><div class="ctc-section-toggle" id="ctc_analysis_errs">'+e.chldthmcfg.getxt("anlz6")+'</div><div id="ctc_analysis_errs_content" style="display:none"><textarea>'+r.errlist+"</textarea></div></div>"+e.chldthmcfg.getxt("anlz7"),l.notices.push(r)),(n.analysis[a].signals.thm_past_wphead||n.analysis[a].signals.dep_past_wphead)&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz9"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz10")}),e("#ctc_repairheader").prop("checked",!0),e("#ctc_repairheader_container").show()),n.analysis[a].signals.thm_unregistered&&(n.analysis[a].signals.ctc_child_loaded||n.analysis[a].signals.ctc_sep_loaded||(l.notices.push({headline:e.chldthmcfg.getxt("anlz11"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz12")}),e("#ctc_repairheader_container").show(),e("#ctc_repairheader").prop("checked",!0))),"child"===a&&(n.analysis.child.signals.ctc_parnt_reorder&&(o=1),n.analysis.child.signals.ctc_child_loaded||n.analysis.child.signals.ctc_sep_loaded||n.analysis.child.signals.thm_child_loaded||(l.notices.push({headline:e.chldthmcfg.getxt("anlz13"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz14")}),o=1),n.analysis[a].signals.ctc_gen_loaded&&l.notices.push({headline:e.chldthmcfg.getxt("anlz31"),msg:e.chldthmcfg.getxt("anlz32"),style:"notice-warning"}),n.analysis.parnt.signals.thm_no_styles||n.analysis.child.signals.ctc_gen_loaded||n.analysis.child.signals.thm_parnt_loaded||n.analysis.child.signals.ctc_parnt_loaded||n.analysis.child.signals.thm_ignoreparnt||n.analysis.child.signals.thm_has_import||(l.notices.push({headline:e.chldthmcfg.getxt("anlz15"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz16")}),o=1),n.analysis.child.signals.thm_unregistered&&n.analysis.child.signals.thm_child_loaded&&"thm_unregistered"===n.analysis.child.signals.thm_child_loaded&&n.analysis.child.signals.ctc_child_loaded&&n.analysis.child.signals.ctc_parnt_loaded&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz28"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz29")}),e("#ctc_repairheader_container").show(),e("#ctc_repairheader").prop("checked",!0)),n.analysis.child.signals.thm_is_ctc||e("#ctc_child_type_duplicate").is(":checked")||l.notices.push({headline:e.chldthmcfg.getxt("anlz19"),msg:e.chldthmcfg.getxt("anlz20"),style:"notice-warning"})),(n.analysis[a].signals.ctc_sep_loaded||n.analysis[a].signals.ctc_gen_loaded)&&e("#ctc_handling_separate").prop("checked",!0),l.notices.length||l.notices.push({headline:""+("child"===a?e.chldthmcfg.getxt("anlz17"):e.chldthmcfg.getxt("anlz18")),style:"updated",msg:""}),"child"===a&&n.analysis.child.signals.thm_has_import&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz21"),msg:e.chldthmcfg.getxt("anlz22"),style:"notice-warning"}),e("#ctc_enqueue_import").prop("checked",!0)),n.analysis[a].signals.thm_ignoreparnt||n.analysis[a].signals.ctc_gen_loaded?(e("#ctc_ignoreparnt").prop("checked",!0),e("#ctc_enqueue_none").is(":checked")||(e("#ctc_enqueue_none").prop("checked",!0),o=1,_.ctc_enqueue="none")):e("#ctc_ignoreparnt").prop("checked",!1),!n.analysis[a].signals.ctc_sep_loaded&&!n.analysis[a].signals.ctc_gen_loaded&&!n.analysis[a].signals.ctc_child_loaded&&!n.analysis[a].signals.thm_unregistered&&!n.analysis[a].signals.thm_past_wphead&&n.analysis[a].deps[1].length){var u="";e.each(n.analysis[a].deps[1],function(e,t){t[1].match(/^style([\-\.]min)?\.css$/)||(u+="<li>"+t[1]+"</li>\n")}),""!==u&&(u="<ul class='howto' style='padding-left:1em'>\n"+u+"</ul>\n",l.notices.push({headline:e.chldthmcfg.getxt("anlz23"),msg:u+e.chldthmcfg.getxt("anlz24"),style:"updated"}))}"child"===a&&n.analysis[a].signals.thm_parnt_loaded&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz25"),msg:e.chldthmcfg.getxt("anlz26"),style:"updated"}),e("#ctc_enqueue_none").prop("checked",!0),o=1,_.ctc_enqueue="none"),n.analysis.parnt.signals.thm_no_styles&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz27"),msg:e.chldthmcfg.getxt("anlz26"),style:"updated"}),e("#ctc_enqueue_none").prop("checked",!0),o=1,_.ctc_enqueue="none")}return s=encodeURIComponent(JSON.stringify(n.analysis)),e('input[name="ctc_analysis"]').val(s),_.ctc_analysis=s,n.is_success()&&o&&!n.resubmitting?(n.resubmitting=1,void n.resubmit(_)):(n.resubmitting=0,n.hide_loading(),e.each(l.notices,function(t,c){var n=e('<div class="'+c.style+' notice is-dismissible dashicons-before" ><h4>'+c.headline+"</h4>"+c.msg+"</div>");e.chldthmcfg.bind_dismiss(n),n.hide().appendTo("#"+a+"_analysis_notice").slideDown()}),t='<div style="background-color:#ddd;padding:6px"><div class="ctc-section-toggle" id="ctc_analysis_obj">'+e.chldthmcfg.getxt("anlz30")+'</div><div id="ctc_analysis_obj_content" style="display:none"><textarea style="font-family:monospace;font-size:10px">'+JSON.stringify(n.analysis,null,2)+"</textarea></div></div>",e(t).appendTo("#"+a+"_analysis_notice"),c="",e.each(n.dependencies,function(t,n){n&&(c+='<label><input class="ctc_checkbox ctc-themeonly" id="ctc_forcedep_'+t+'" name="ctc_forcedep[]" type="checkbox" value="'+t+'" autocomplete="off" '+(-1!==e.inArray(t,window.ctcAjax.forcedep)?"checked":"")+" />"+t+"</label><br/>\n")}),c.length?(e("#ctc_dependencies").html(c),e("#ctc_dependencies_container").show()):(e("#ctc_dependencies").empty(),e("#ctc_dependencies_container").hide()),e("#ctc_child_type_reset").is(":checked")||(e("#input_row_stylesheet_handling_container,#input_row_parent_handling_container,#ctc_child_header_parameters,#ctc_configure_submit").slideDown("fast"),e("#ctc_child_type_duplicate").is(":checked")?(e("#ctc_configure_submit .ctc-step").text("8"),e("#ctc_copy_theme_mods").find("input").prop("checked",!1)):(e("#ctc_configure_submit .ctc-step").text("9"),e("#ctc_copy_theme_mods").slideDown("fast")),e("#ctc_child_type_duplicate").is(":checked")||e("#ctc_child_type_new").is(":checked")?(e("#input_row_theme_slug").hide(),e("#input_row_new_theme_slug").slideDown("fast")):(e("#input_row_new_theme_slug").hide(),e("#input_row_theme_slug").slideDown("fast"))),void 0)},resubmit:function(t){var c=this;c.hide_loading(),c.show_loading(!0),t.action="ctc_update",t._wpnonce=e("#_wpnonce").val(),e.ajax({url:window.ctcAjax.ajaxurl,data:t,type:"POST"}).done(function(){c.hide_loading(),c.do_analysis()}).fail(function(){c.hide_loading()})},do_analysis:function(){var t=this;t.analysis={parnt:{deps:[[],[]],signals:{failure:0},queue:[],irreg:[]},child:{deps:[[],[]],signals:{failure:0},queue:[],irreg:[]}},t.phperr={parnt:[],child:[]},t.dependencies={},t.done=0,t.show_loading(!1),t.analyze_theme("parnt"),e.chldthmcfg.existing&&t.analyze_theme("child")},init:function(){var t=this;e(document).on("analysisdone",function(){t.done++,t.done>e.chldthmcfg.existing&&(t.done=0,t.css_notice())}),e("#ctc_main").on("click",".ctc-analyze-theme",function(){t.is_success()&&e.chldthmcfg.dismiss_notice(e(".ctc-success-response").parent(".notice")),t.do_analysis()}),t.is_success()&&!window.ctcAjax.pluginmode&&t.do_analysis()},analysis:{},done:0,resubmitting:0,dependencies:{},is_success:function(){return e(".ctc-success-response").length}},e("#request-filesystem-credentials-form").length||(e.chldthmcfg.init(),e.chldthmanalyze.init())}(jQuery);
1
+ !function(e){"use strict";e.chldthmcfg={escquo:function(e){var t=this;return t.is_empty(e)?e:e.toString().replace(/"/g,"&quot;")},getxt:function(e,t){var c=window.ctcAjax[e+"_txt"];return c?(t&&(c=c.replace(/%s/,t)),c):""},getname:function(t){var c=this,n="child"===t?e.chldthmcfg.currchild:e.chldthmcfg.currparnt;return c.is_empty(window.ctcAjax.themes[t][n])?"":window.ctcAjax.themes[t][n].Name},frascii:function(e){var t=parseInt(e),c=String.fromCharCode(t);return c},toascii:function(e){var t=e.charCodeAt(0);return t},is_empty:function(e,t){if("undefined"==typeof e||!1===e||null===e||""===e)return!0;if("undefined"!=typeof t&&"0"===e||0===e)return!0;if(!0===e||"string"==typeof e||"number"==typeof e)return!1;if("object"==typeof e){for(var c in e)if(e.hasOwnProperty(c))return!1;return!0}return!1},theme_exists:function(t,c){var n=!1;return e.each(window.ctcAjax.themes,function(a,i){return e.each(i,function(e,i){return i=null,e.toLowerCase()!==t.toLowerCase()||"parnt"!==a&&"new"!==c?void 0:(n=!0,!1)}),n?!1:void 0}),n},validate:function(){var t=this,c=/[^\w\-]/g,n=e("#ctc_child_template").length?e("#ctc_child_template").val().toString().replace(c):"",a=e("#ctc_theme_child").length&&!t.is_empty(e("#ctc_theme_child").val())?e("#ctc_theme_child").val().toString().replace(c):n,i=e("input[name=ctc_child_type]:checked").val(),s=[];return"new"===i&&(a=n),t.theme_exists(a,i)&&s.push(t.getxt("theme_exists").toString().replace(/%s/,a)),t.is_empty(a)&&s.push(t.getxt("inval_theme")),s.length?(t.set_notice({error:s}),!1):"reset"===i?!!confirm(t.getxt("load")):!0},autogen_slugs:function(){if(e("#ctc_theme_parnt").length){for(var t=this,c=e("#ctc_theme_parnt").val(),n=e("#ctc_theme_child").length?e("#ctc_theme_child").val():"",a=""!==n&&e("#ctc_child_type_duplicate").is(":checked")?n:c+"-child",i=a,s=""!==n&&e("#ctc_child_type_duplicate").is(":checked")?e.chldthmcfg.getname("child"):e.chldthmcfg.getname("parnt")+" Child",l="",r="",o="00";t.theme_exists(i,"new");)l=t.is_empty(l)?2:l+1,r=o.substring(0,o.length-l.toString().length)+l.toString(),i=a+r;t.testslug=i,t.testname=s+(r.length?" "+r:"")}},focus_panel:function(t){var c=t+"_panel";e(".nav-tab").removeClass("nav-tab-active"),e(".ctc-option-panel").removeClass("ctc-option-panel-active"),e(t).addClass("nav-tab-active"),e(".ctc-option-panel-container").scrollTop(0),e(c).addClass("ctc-option-panel-active")},selector_input_toggle:function(t){var c,n=this;e("#ctc_rewrite_selector").length?(c=e("#ctc_rewrite_selector_orig").val(),e("#ctc_sel_ovrd_selector_selected").text(c),e(t).text(n.getxt("rename"))):(c=e("#ctc_sel_ovrd_selector_selected").text(),e("#ctc_sel_ovrd_selector_selected").html('<textarea id="ctc_rewrite_selector" name="ctc_rewrite_selector" autocomplete="off"></textarea><input id="ctc_rewrite_selector_orig" name="ctc_rewrite_selector_orig" type="hidden" value="'+n.escquo(c)+'"/>'),e("#ctc_rewrite_selector").val(c),e(t).text(n.getxt("cancel")))},coalesce_inputs:function(t){var c=this,n=e(t).attr("id"),a=/^(ctc_(ovrd|\d+)_(parent|child)_([0-9a-z\-]+)_(\d+?)(_(\d+))?)(_\w+)?$/,i=e(t).parents(".ctc-selector-row, .ctc-parent-row").first(),s=i.find(".ctc-swatch").first(),l={parent:{},child:{}},r={parent:{origin:"",start:"",end:""},child:{origin:"",start:"",end:""}},o={child:!1,parent:!1},_={};return i.find(".ctc-parent-value, .ctc-child-value").each(function(){var t,i,s=e(this).attr("id"),d=s.toString().match(a),u=d[2],h=d[3],p="undefined"==typeof d[4]?"":d[4],m=d[7],g=d[5],f="undefined"==typeof d[7]?"":d[8],y="parent"===h?e(this).text().replace(/!$/,""):"seq"!==p&&"ctc_delete_query_selector"===n?"":e(this).val(),v="seq"===p?!1:"ctc_"+u+"_child_"+p+"_i_"+g+"_"+m;if("child"===h&&(c.is_empty(e(this).data("color"))||(y=c.color_text(e(this).data("color")),e(this).data("color",null)),_[s]=y,v&&(_[v]=e("#"+v).is(":checked")?1:0)),""!==y)if(c.is_empty(f))if(t=p.toString().match(/^border(\-(top|right|bottom|left))?$/)&&!y.match(/none/)){var w=new RegExp(c.border_regx+c.color_regx,"i");i=y.toString().match(w),c.is_empty(i)||(i.shift(),l[h][p+"-width"]=i.shift()||"",i.shift(),l[h][p+"-style"]=i.shift()||"",l[h][p+"-color"]=i.shift()||"")}else if("background-image"!==p||y.match(/none/))"seq"!==p&&(l[h][p]=y);else if(y.toString().match(/url\(/))l[h]["background-image"]=c.image_url(h,y);else{var x=new RegExp(c.grad_regx+c.color_regx+c.color_regx,"i");i=y.toString().match(x),!c.is_empty(i)&&i.length>2?(i.shift(),r[h].origin=i.shift()||"top",r[h].start=i.shift()||"transparent",r[h].end=i.shift()||"transparent",o[h]=!0):l[h]["background-image"]=y}else switch(f){case"_border_width":l[h][p+"-width"]="none"===y?0:y;break;case"_border_style":l[h][p+"-style"]=y;break;case"_border_color":l[h][p+"-color"]=y;break;case"_background_url":l[h]["background-image"]=c.image_url(h,y);break;case"_background_color":l[h]["background-color"]=y;break;case"_background_color1":r[h].start=y,o[h]=!0;break;case"_background_color2":r[h].end=y,o[h]=!0;break;case"_background_origin":r[h].origin=y,o[h]=!0}}),"undefined"==typeof s||c.is_empty(s.attr("id"))||(s.removeAttr("style"),o.parent&&s.ctcgrad(r.parent.origin,[r.parent.start,r.parent.end]),s.css(l.parent),s.attr("id").toString().match(/parent/)||(o.child&&s.ctcgrad(r.child.origin,[r.child.start,r.child.end]),s.css(l.child)),s.css({"z-index":-1})),_},decode_value:function(e,t){t="undefined"==typeof t?"":t;var c,n=this,a={orig:t,names:[""],values:[t]};if(e.toString().match(/^border(\-(top|right|bottom|left))?$/)){var i,s=new RegExp(n.border_regx+"("+n.color_regx+")?","i");c=t.toString().match(s),n.is_empty(c)&&(c=[]),a.names=["_border_width","_border_style","_border_color"],i=c.shift(),a.values[0]=c.shift()||"",c.shift(),a.values[1]=c.shift()||"",c.shift(),a.values[2]=c.shift()||""}else if(e.toString().match(/^background\-image/))if(a.names=["_background_url","_background_origin","_background_color1","_background_color2"],a.values=["","","",""],n.is_empty(t)||t.toString().match(/(url|none)/))a.values[0]=t;else{var l,r;c=t.toString().split(/:/),a.values[1]=c.shift()||"",a.values[2]=c.shift()||"",l=c.shift()||"",a.values[3]=c.shift()||"",r=c.shift()||"",a.orig=[a.values[1],a.values[2],a.values[3]].join(" ")}return a},image_url:function(e,t){var c,n=this,a=t.toString().match(/url\(['" ]*(.+?)['" ]*\)/),i=n.is_empty(a)?null:a[1],s=window.ctcAjax.theme_uri+"/"+("parent"===e?window.ctcAjax.parnt:window.ctcAjax.child)+"/";return i?c=i.toString().match(/^(data:|https?:|\/)/)?t:"url("+s+i+")":!1},setup_menus:function(){var e=this;e.setup_query_menu(),e.setup_selector_menu(),e.setup_rule_menu(),e.setup_new_rule_menu(),e.load_queries(),e.load_rules(),e.set_query(e.currquery)},load_queries:function(){var e=this;e.query_css("queries",null)},load_selectors:function(){var e=this;e.query_css("selectors",e.currquery)},load_rules:function(){var e=this;e.query_css("rules",null)},load_selector_values:function(){var e=this;e.query_css("qsid",e.currqsid)},get_queries:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.chldthmcfg.is_empty(this.element.data("menu"))?n.push({label:window.ctcAjax.nosels_txt,value:null}):e.each(this.element.data("menu"),function(e,t){a.test(t)&&n.push({label:t,value:t})}),c(n)},get_selectors:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.chldthmcfg.is_empty(this.element.data("menu"))?n.push({label:window.ctcAjax.nosels_txt,value:null}):e.each(this.element.data("menu"),function(e,t){a.test(e)&&n.push({label:e,value:t})}),c(n)},get_rules:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.chldthmcfg.is_empty(this.element.data("menu"))?n.push({label:window.ctcAjax.nosels_txt,value:null}):e.each(this.element.data("menu"),function(e,t){a.test(e)&&n.push({label:e,value:t})}),c(n)},get_filtered_rules:function(t,c){var n=[],a=new RegExp(e.ui.autocomplete.escapeRegex(t.term),"i");e.each(e("#ctc_rule_menu").data("menu"),function(e,t){a.test(e)&&n.push({label:e,value:t})}),c(n)},merge_ruleval_arrays:function(t,c,n){var a=this,i={},s=n?c.child.pop():null;return e.each(["parnt","child"],function(t,l){a.is_empty(c[l])||e.each(c[l],function(e,t){n?parseInt(t[2])>=parseInt(s[2])&&(s[2]=parseInt(t[2])+1):(a.is_empty(i[t[2]])&&(i[t[2]]={}),i[t[2]][l]=t)})}),n&&(i[s[2]]={parnt:[],child:s}),i},input_row:function(t,c,n,a,i){var s=this,l="";if(!s.is_empty(a)&&!s.is_empty(a.value)&&!s.is_empty(a.value[c])){var r=a.value[c],o=s.merge_ruleval_arrays(c,r,i);e.each(o,function(i,r){var o=s.decode_value(c,s.is_empty(r.parnt)?"":r.parnt[0]),_=s.is_empty(r.parnt)||s.is_empty(r.parnt[1],1)?0:1,d=s.decode_value(c,s.is_empty(r.child)?"":r.child[0]),u=s.is_empty(r.child)||s.is_empty(r.child[1],1)?0:1;if(l+='<div class="ctc-'+("ovrd"===n?"input":"selector")+'-row clearfix"><div class="ctc-input-cell">',l+="ovrd"===n?c.replace(/\d+/g,s.frascii):a.selector+'<br/><a href="#" class="ctc-selector-edit" id="ctc_selector_edit_'+t+'" >'+s.getxt("edit")+"</a> "+(s.is_empty(o.orig)?s.getxt("child_only"):""),l+='</div><div class="ctc-parent-value ctc-input-cell"'+("ovrd"!==n?' style="display:none"':"")+' id="ctc_'+n+"_parent_"+c+"_"+t+"_"+i+'">'+(s.is_empty(o.orig)?"[no value]":o.orig+(_?s.getxt("important"):""))+'</div><div class="ctc-input-cell">',!s.is_empty(o.names)){e.each(o.names,function(e,a){a=s.is_empty(a)?"":a,l+='<div class="ctc-child-input-cell ctc-clear">';var r,o="ctc_"+n+"_child_"+c+"_"+t+"_"+i+a;!1===(r=d.values.shift())&&(r=""),l+=(s.is_empty(a)?"":s.getxt(a)+":<br/>")+'<input type="text" id="'+o+'" name="'+o+'" class="ctc-child-value'+((a+c).toString().match(/color/)?" color-picker":"")+(a.toString().match(/url/)?" ctc-input-wide":"")+'" value="'+s.escquo(r)+'" /></div>'});var h="ctc_"+n+"_child_"+c+"_i_"+t+"_"+i;l+='<label for="'+h+'"><input type="checkbox" id="'+h+'" name="'+h+'" value="1" '+(u?"checked":"")+" />"+s.getxt("important")+"</label>"}l+="</div>","ovrd"!==n&&(l+='<div class="ctc-swatch ctc-specific" id="ctc_child_'+c+"_"+t+"_"+i+'_swatch">'+s.getxt("swatch")+'</div><div class="ctc-child-input-cell ctc-button-cell" id="ctc_save_'+c+"_"+t+"_"+i+'_cell"><input type="button" class="button ctc-save-input" id="ctc_save_'+c+"_"+t+"_"+i+'" name="ctc_save_'+c+"_"+t+"_"+i+'" value="Save" /></div>'),l+="</div><!-- end input row -->\n"})}return l},scrolltop:function(){e("html, body, .ctc-option-panel-container").animate({scrollTop:0})},css_preview:function(e){var t=this;(e=e.match(/(child|parnt)/)[1])||(e="child"),t.query_css("preview",e)},setup_iris:function(e){var t=this;t.setup_spectrum(e)},setup_spectrum:function(t){var c=this,n=!c.is_empty(window.ctcAjax.palette);try{e(t).spectrum({showInput:!0,allowEmpty:!0,showAlpha:!0,showInitial:!0,preferredFormat:"hex",clickoutFiresChange:!0,move:function(n){e(t).data("color",n),c.coalesce_inputs(t)},showPalette:!!n,showSelectionPalette:!!n,palette:[],maxSelectionSize:36,localStorageKey:"ctc-palette."+window.ctcAjax.child,hideAfterPaletteSelect:!0}).on("change",function(){c.coalesce_inputs(this)}).on("keyup",function(){var t=this,n=c.addhash(e(this).val());e(t).val(n),clearTimeout(e(this).data("spectrumTimer")),e(this).data("spectrumTimer",setTimeout(function(){c.coalesce_inputs(t),e(t).spectrum("set",n)},500))})}catch(a){c.jquery_exception(a,"Spectrum Color Picker")}},addhash:function(e){return e.replace(/^#?([a-f0-9]{3,6}.*)/,"#$1")},color_text:function(e){var t=this;return t.is_empty(e)?"":e.getAlpha()<1?e.toRgbString():e.toHexString()},setup_query_menu:function(){var t=this;try{e("#ctc_sel_ovrd_query").autocomplete({source:t.get_queries,minLength:0,selectFirst:!0,autoFocus:!0,select:function(e,c){return t.set_query(c.item.value),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"Query Menu")}},setup_selector_menu:function(){var t=this;try{e("#ctc_sel_ovrd_selector").autocomplete({source:t.get_selectors,selectFirst:!0,autoFocus:!0,select:function(e,c){return t.set_selector(c.item.value,c.item.label),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"Selector Menu")}},setup_rule_menu:function(){var t=this;try{e("#ctc_rule_menu").autocomplete({source:t.get_rules,selectFirst:!0,autoFocus:!0,select:function(e,c){return t.set_rule(c.item.value,c.item.label),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"Property Menu")}},setup_new_rule_menu:function(){var t=this;try{e("#ctc_new_rule_menu").autocomplete({source:t.get_filtered_rules,selectFirst:!0,autoFocus:!0,select:function(c,n){c.preventDefault();var a,i,s=n.item.label.replace(/[^\w\-]/g,t.toascii);return t.is_empty(t.currdata.value)&&(t.currdata.value={}),t.is_empty(t.currdata.value[n.item.label])&&(t.currdata.value[n.item.label]={}),t.is_empty(t.currdata.value[n.item.label].child)&&(t.currdata.value[n.item.label].child=[]),t.currdata.value[n.item.label].child.push(["",0,1,1]),a=e(t.input_row(t.currqsid,s,"ovrd",t.currdata,!0)),e("#ctc_sel_ovrd_rule_inputs").append(a),e("#ctc_new_rule_menu").val(""),a.find('input[type="text"]').each(function(c,n){i||(i=n),e(n).hasClass("color-picker")&&t.setup_spectrum(n)}),i&&e(i).focus(),!1},focus:function(e){e.preventDefault()}}).data("menu",{})}catch(c){t.jquery_exception(c,"New Property Menu")}},set_theme_params:function(t,c){e("#ctc_child_author").val(window.ctcAjax.themes[t][c].Author),e("#ctc_child_version").val(window.ctcAjax.themes[t][c].Version),e("#ctc_child_authoruri").val(window.ctcAjax.themes[t][c].AuthorURI),e("#ctc_child_themeuri").val(window.ctcAjax.themes[t][c].ThemeURI),e("#ctc_child_descr").val(window.ctcAjax.themes[t][c].Descr),e("#ctc_child_tags").val(window.ctcAjax.themes[t][c].Tags)},update_form:function(){var t,c=this;e("#input_row_stylesheet_handling_container,#input_row_parent_handling_container,#ctc_additional_css_files_container,#input_row_new_theme_slug,#input_row_duplicate_theme_slug,#ctc_copy_theme_mods,#ctc_child_header_parameters,#ctc_configure_submit,#input_row_theme_slug").slideUp("fast"),e("#ctc_configure_submit .ctc-step").text("9"),e("#ctc_theme_child").length&&!e("#ctc_child_type_new").is(":checked")?(t=e("#ctc_theme_child").val(),c.existing=1,c.currparnt=window.ctcAjax.themes.child[t].Template,c.autogen_slugs(),e("#ctc_theme_parnt").val(c.currparnt),e("#ctc_theme_parnt-button .ui-selectmenu-text").text(c.getname("parnt")),c.set_theme_params("child",t),e("#ctc_child_type_duplicate").is(":checked")?(e("#ctc_child_template").val(c.testslug),e("#ctc_child_name").val(c.testname),e(".ctc-analyze-theme, .ctc-analyze-howto").show(),e("#ctc_load_styles").val("Duplicate Child Theme")):e("#ctc_child_type_reset").is(":checked")?(e("#ctc_configure_submit .ctc-step").text("3"),e("#ctc_configure_submit").slideDown("fast"),e("#theme_slug_container").text(t),e(".ctc-analyze-theme, .ctc-analyze-howto").hide(),e("#ctc_enqueue_none").prop("checked",!0),e("#ctc_load_styles").val("Reset Child Theme to Previous State")):(e("#ctc_child_template").val(""),e("#theme_slug_container").text(t),e(".ctc-analyze-theme, .ctc-analyze-howto").show(),e("#ctc_child_name").val(c.getname("child")),e("#ctc_load_styles").val("Configure Child Theme")),e("#input_row_existing_theme_option").slideDown("fast"),e("#input_row_new_theme_option").slideUp("fast")):(c.existing=0,c.autogen_slugs(),e("#ctc_theme_parnt").val(c.currparnt),e("#ctc_theme_parnt-button .ui-selectmenu-text").text(e.chldthmcfg.getname("parnt")),c.set_theme_params("parnt",c.currparnt),e("#input_row_existing_theme_option,#input_row_duplicate_theme_container,#input_row_theme_slug").slideUp("fast"),e("#input_row_new_theme_option").slideDown("fast"),e("#ctc_child_name").val(c.testname),e("#ctc_child_template").val(c.testslug),e(".ctc-analyze-theme, .ctc-analyze-howto").show(),e("#ctc_load_styles").val("Create New Child Theme"))},set_notice:function(t){var c,n=this,a="";n.is_empty(t)||e.each(t,function(t,c){a+='<div class="'+t+' notice is-dismissible dashicons-before"><ul>\n',e(c).each(function(e,t){a+="<li>"+t.toString()+"</li>\n"}),a+="</ul></div>"}),c=e(a),e("#ctc_error_notice").html(c),n.bind_dismiss(c),e("html, body").animate({scrollTop:0},"slow")},set_parent_menu:function(e){var t=this;t.currparnt=e.value,t.update_form()},set_child_menu:function(e){var t=this;t.currchild=e.value,t.update_form()},set_query:function(t){var c=this;return c.is_empty(t)?!1:(c.currquery=t,e("#ctc_sel_ovrd_query").val(""),e("#ctc_sel_ovrd_query_selected").text(t),e("#ctc_sel_ovrd_selector").val(""),e("#ctc_sel_ovrd_selector_selected").html("&nbsp;"),c.load_selectors(),void c.scrolltop())},set_selector:function(t,c){var n=this;return c=null,n.is_empty(t)?!1:(e("#ctc_sel_ovrd_selector").val(""),n.currqsid=t,n.reload=!1,n.load_selector_values(),void n.scrolltop())},set_rule:function(t,c){var n=this;return n.is_empty(t)?!1:(e("#ctc_rule_menu").val(""),e("#ctc_rule_menu_selected").text(c),e(".ctc-rewrite-toggle").text(n.getxt("rename")),e("#ctc_rule_value_inputs, #ctc_input_row_rule_header").show(),n.query_css("rule_val",t),void n.scrolltop())},set_qsid:function(t){var c=this;c.currqsid=e(t).attr("id").match(/_(\d+)$/)[1],c.focus_panel("#query_selector_options"),c.reload=!0,c.load_selector_values()},query_css:function(t,c,n){var a=this,i={ctc_query_obj:t,ctc_query_key:c},s="#ctc_status_"+t+("val_qry"===t?"_"+c:"");"object"==typeof n&&e.each(n,function(e,t){i["ctc_query_"+e]=t}),e(".query-icon,.ctc-status-icon").remove(),e(s+" .ctc-status-icon").remove(),e(s).append('<span class="ctc-status-icon spinner is-active query-icon"></span>'),i.action=a.is_empty(e("#ctc_action").val())||"plugin"!==e("#ctc_action").val()?"ctc_query":"ctc_plgqry",i._wpnonce=e("#_wpnonce").val(),a.ajax_post(t,i)},save:function(t){var c,n,a,i,s,l=this,r={},o=e(t).attr("id");e(t).prop("disabled",!0),e(".ctc-query-icon,.ctc-status-icon").remove(),e(t).parent(".ctc-textarea-button-cell, .ctc-button-cell").append('<span class="ctc-status-icon spinner save-icon"></span>'),o.match(/ctc_configtype/)?(e(t).parents(".ctc-input-row").first().append('<span class="ctc-status-icon spinner save-icon"></span>'),r.ctc_configtype=e(t).val()):(c=e("#ctc_new_selectors"))&&"ctc_save_new_selectors"===e(t).attr("id")?(r.ctc_new_selectors=c.val(),(n=e("#ctc_sel_ovrd_query_selected"))&&(r.ctc_sel_ovrd_query=n.text()),l.reload=!0):(a=e("#ctc_child_imports"))&&"ctc_save_imports"===o?r.ctc_child_imports=a.val():"ctc_is_debug"===o?r.ctc_is_debug=e("#ctc_is_debug").is(":checked")?1:0:r=l.coalesce_inputs(t),e(".save-icon").addClass("is-active"),e("#ctc_sel_ovrd_selector_selected").find("#ctc_rewrite_selector").each(function(){i=e("#ctc_rewrite_selector").val(),s=e("#ctc_rewrite_selector_orig").val(),l.is_empty(i)||!i.toString().match(/\w/)?i=s:(r.ctc_rewrite_selector=i,l.reload=!0),e(".ctc-rewrite-toggle").text(l.getxt("rename")),e("#ctc_sel_ovrd_selector_selected").html(i)}),r.action=l.is_empty(e("#ctc_action").val())||"plugin"!==e("#ctc_action").val()?"ctc_update":"ctc_plugin",r._wpnonce=e("#_wpnonce").val(),l.ajax_post("qsid",r)},ajax_post:function(t,c,n){var a=this;e.ajax({url:window.ctcAjax.ajaxurl,data:c,dataType:a.is_empty(n)?"json":n,type:"POST"}).done(function(e){a.handle_success(t,e)}).fail(function(){a.handle_failure(t)}).always(function(){a.jqueryerr.length&&a.jquery_notice()})},handle_failure:function(t){var c=this;e(".query-icon, .save-icon").removeClass("spinner").addClass("failure"),e("input[type=submit], input[type=button], input[type=checkbox],.ctc-delete-input").prop("disabled",!1),e(".ajax-pending").removeClass("ajax-pending"),"preview"===t&&e("#view_parnt_options_panel,#view_child_options_panel").text(c.getxt("css_fail"))},handle_success:function(t,c){var n=this;e(".query-icon, .save-icon").removeClass("spinner"),e(".ajax-pending").removeClass("ajax-pending"),n.is_empty(c)?n.handle_failure(t):(e("#ctc_new_selectors").val(""),e(".query-icon, .save-icon").addClass("success"),e("input[type=submit], input[type=button], input[type=checkbox],.ctc-delete-input").prop("disabled",!1),e(c).each(function(){"function"==typeof n.update[this.obj]&&n.update[this.obj].call(n,this)}))},jquery_exception:function(e,t){var c=this,n=c.is_empty(e.lineNumber)?"":" line: "+e.lineNumber,a=c.is_empty(e.fileName)?"":" "+e.fileName.split(/\?/)[0];c.jqueryerr.push("<code><small>"+t+": "+e.message+a+n+"</small></code>")},jquery_notice:function(t){t=null;var c=this,n=[],a=[];c.jqueryerr.length&&(e("input[type=submit], input[type=button]").prop("disabled",!0),e("script").each(function(){var t=e(this).prop("src");c.is_empty(t)||!t.match(/jquery(\.min|\.js|\-?ui)/i)||t.match(/load\-scripts.php/)||n.push("<code><small>"+t.split(/\?/)[0]+"</small></code>")}),a.push("<strong>"+c.getxt("js")+"</strong> "+c.getxt("contact")),a.push(c.jqueryerr.join("<br/>")),n.length&&a.push(c.getxt("jquery")+"<br/>"+n.join("<br/>")),a.push(c.getxt("plugin"))),c.set_notice({error:a})},update:{qsid:function(t){var c,n,a,i,s=this;s.currqsid=t.key,s.currdata=t.data,e("#ctc_sel_ovrd_qsid").val(s.currqsid),s.is_empty(s.currdata.seq)?e("#ctc_child_load_order_container").empty():(c="ctc_ovrd_child_seq_"+s.currqsid,a=parseInt(s.currdata.seq),n='<input type="text" id="'+c+'" name="'+c+'" class="ctc-child-value" value="'+a+'" />',e("#ctc_child_load_order_container").html(n)),s.is_empty(s.currdata.value)?(i=!0,e("#ctc_sel_ovrd_rule_inputs").empty()):(i=!1,n="",e.each(s.currdata.value,function(e,t){t=null,n+=s.input_row(s.currqsid,e,"ovrd",s.currdata)}),e("#ctc_sel_ovrd_rule_inputs").html(n).find(".color-picker").each(function(){s.setup_spectrum(this)}),s.coalesce_inputs("#ctc_child_all_0_swatch")),s.reload&&(s.load_queries(),s.set_query(s.currdata.query),s.load_rules()),e("#ctc_sel_ovrd_selector_selected").text(s.currdata.selector),e(".ctc-rewrite-toggle").text(s.getxt("rename")),e(".ctc-rewrite-toggle").show(),i?e("#ctc_sel_ovrd_rule_header,#ctc_sel_ovrd_new_rule,#ctc_sel_ovrd_rule_inputs_container,#ctc_sel_ovrd_rule_inputs").hide():e("#ctc_sel_ovrd_rule_header,#ctc_sel_ovrd_new_rule,#ctc_sel_ovrd_rule_inputs_container,#ctc_sel_ovrd_rule_inputs").show()},rule_val:function(t){var c=this,n=e("#ctc_rule_menu_selected").text(),a='<div class="ctc-input-row clearfix" id="ctc_rule_row_'+n+'">\n';c.is_empty(t.data)||(e.each(t.data,function(e,t){var i=c.decode_value(n,t);a+='<div class="ctc-parent-row clearfix" id="ctc_rule_row_'+n+"_"+e+'">\n<div class="ctc-input-cell ctc-parent-value" id="ctc_'+e+"_parent_"+n+"_"+e+'">'+i.orig+'</div>\n<div class="ctc-input-cell">\n<div class="ctc-swatch ctc-specific" id="ctc_'+e+"_parent_"+n+"_"+e+'_swatch">'+c.getxt("swatch")+'</div></div>\n<div class="ctc-input-cell"><a href="#" class="ctc-selector-handle" id="ctc_selector_'+n+"_"+e+'">'+c.getxt("selector")+'</a></div>\n<div id="ctc_selector_'+n+"_"+e+'_container" class="ctc-selector-container">\n<a href="#" id="ctc_selector_'+n+"_"+e+'_close" class="ctc-selector-handle ctc-exit" title="'+c.getxt("close")+'"></a><div id="ctc_selector_'+n+"_"+e+'_inner_container" class="ctc-selector-inner-container clearfix">\n<div id="ctc_status_val_qry_'+e+'"></div>\n<div id="ctc_selector_'+n+"_"+e+'_rows"></div>\n</div></div></div>\n'}),a+="</div>\n"),e("#ctc_rule_value_inputs").html(a).find(".ctc-swatch").each(function(){c.coalesce_inputs(this)})},val_qry:function(t){var c,n,a=this,i="";a.is_empty(t.data)||e.each(t.data,function(n,s){c=n,e.each(s,function(c,s){i+='<h4 class="ctc-query-heading">'+c+"</h4>\n",a.is_empty(s)||e.each(s,function(e,c){i+=a.input_row(e,n,t.key,c)})})}),n="#ctc_selector_"+c+"_"+t.key+"_rows",e(n).html(i).find(".color-picker").each(function(){a.setup_spectrum(this)}),e(n).find(".ctc-swatch").each(function(){a.coalesce_inputs(this)})},queries:function(t){e("#ctc_sel_ovrd_query").data("menu",t.data)},selectors:function(t){e("#ctc_sel_ovrd_selector").data("menu",t.data)},rules:function(t){e("#ctc_rule_menu").data("menu",t.data)},debug:function(t){e("#ctc_debug_box").val(e("#ctc_debug_box").val()+t.data)},preview:function(t){e("#view_"+t.key+"_options_panel").text(t.data)},dismiss:function(){}},bind_dismiss:function(t){var c=this,n=e(t),a=e('<button type="button" class="notice-dismiss"><span class="screen-reader-text"></span></button>'),i=window.commonL10n.dismiss||"";a.find(".screen-reader-text").text(i),n.append(a),a.on("click.wp-dismiss-notice",function(e){e.preventDefault(),c.dismiss_notice(t)})},dismiss_notice:function(t){e(t).fadeTo(100,0,function(){e(this).slideUp(100,function(){e(this).remove()})})},reset_handling:function(){e("#parnt_analysis_notice .notice, #child_analysis_notice .notice").slideUp(),e("#ctc_enqueue_enqueue").prop("checked",!0),e("#ctc_handling_primary").prop("checked",!0),e("#ctc_ignoreparnt").prop("checked",!1),e("#ctc_repairheader").prop("checked",!1)},init:function(){var t=this;if(!e("#ctc_theme_parnt").is("input")){try{e.widget("ctc.themeMenu",e.ui.selectmenu,{_renderItem:function(t,c){var n=e("<li>"),a=c.value.replace(/[^\w\-]/g,"");return e("#ctc_theme_option_"+a).detach().appendTo(n),n.appendTo(t)}})}catch(c){t.jquery_exception(c,"Theme Menu")}try{e("#ctc_theme_parnt").themeMenu({select:function(e,c){t.reset_handling(),t.set_parent_menu(c.item)}})}catch(c){"function"==typeof themeMenu?e("#ctc_theme_parnt").themeMenu("destroy"):e("#ctc_theme_parnt-button").remove(),t.jquery_exception(c,"Parent Theme Menu")}if(t.is_empty(window.ctcAjax.themes.child))e("#ctc_child_name").length&&(e("#ctc_child_name").val(t.testname),e("#ctc_child_template").val(t.testslug));else try{e("#ctc_theme_child").themeMenu({select:function(e,c){t.reset_handling(),t.set_child_menu(c.item)}})}catch(c){"function"==typeof themeMenu?e("#ctc_theme_child").themeMenu("destroy"):e("#ctc_theme_child-button").remove(),t.jquery_exception(c,"Child Theme Menu")}}t.currparnt=e("#ctc_theme_parnt").val(),t.currchild=e("#ctc_theme_child").length?e("#ctc_theme_child").val():"",e("#ctc_main").on("click",".ctc-section-toggle",function(t){t.preventDefault(),e(this).parents(".ctc-input-row, .notice-warning, .updated, .error").first().find(".ctc-section-toggle").each(function(){e(this).toggleClass("open")});var c=e(this).attr("id").replace(/\d$/,"")+"_content";return e("#"+c).stop().slideToggle("fast"),!1}),e("#ctc_main").on("click",".ctc-upgrade-notice .notice-dismiss",function(){var c={action:"ctc_dismiss",_wpnonce:e("#_wpnonce").val()};t.ajax_post("dismiss",c)}),t.is_empty(t.jqueryerr)&&(e("#ctc_main").on("click",".ctc-selector-handle",function(c){if(c.preventDefault(),e(this).hasClass("ajax-pending"))return!1;e(this).addClass("ajax-pending");var n,a,i=e(this).attr("id").toString().replace("_close",""),s=i.toString().match(/_([^_]+)_(\d+)$/);e("#"+i+"_container").is(":hidden")&&(t.is_empty(s[1])||t.is_empty(s[2])||(n=s[1],a=s[2],t.query_css("val_qry",a,{rule:n}))),e("#"+i+"_container").fadeToggle("fast"),e(".ctc-selector-container").not("#"+i+"_container").fadeOut("fast")}),e("#ctc_main").on("click",".ctc-save-input[type=button], .ctc-delete-input",function(c){return c.preventDefault(),e(this).hasClass("ajax-pending")?!1:(e(this).addClass("ajax-pending"),t.save(this),!1)}),e("#ctc_main").on("keydown",".ctc-selector-container .ctc-child-value[type=text]",function(c){if(13===c.which){var n=e(this).parents(".ctc-selector-row").find(".ctc-save-input[type=button]").first();if(n.length)return c.preventDefault(),n.hasClass("ajax-pending")?!1:(n.addClass("ajax-pending"),t.save(n),!1)}}),e("#ctc_main").on("click",".ctc-selector-edit",function(c){return c.preventDefault(),e(this).hasClass("ajax-pending")?!1:(e(this).addClass("ajax-pending"),void t.set_qsid(this))}),e("#ctc_main").on("click",".ctc-rewrite-toggle",function(e){e.preventDefault(),t.selector_input_toggle(this)}),e("#ctc_main").on("click","#ctc_copy_selector",function(){var c=e("#ctc_sel_ovrd_selector_selected").text().trim();t.is_empty(c)||e("#ctc_new_selectors").val(e("#ctc_new_selectors").val()+"\n"+c+" {\n\n}")}),e("#ctc_main").on("click",".ctc-backup-theme",function(c){c.preventDefault(),t.existing?e("#ctc_export_theme").val(t.currchild):e("#ctc_export_theme").val(t.currparnt),e("#ctc_export_theme_form").submit()}),e("#ctc_configtype").on("change",function(){var c=e(this).val();if(t.is_empty(c)||"theme"===c){e(".ctc-theme-only, .ctc-themeonly-container").removeClass("ctc-disabled"),e(".ctc-theme-only, .ctc-themeonly-container input").prop("disabled",!1);try{e("#ctc_theme_parnt, #ctc_theme_child").themeMenu("enable")}catch(n){t.jquery_exception(n,"Theme Menu")}}else{e(".ctc-theme-only, .ctc-themeonly-container").addClass("ctc-disabled"),e(".ctc-theme-only, .ctc-themeonly-container input").prop("disabled",!0);try{e("#ctc_theme_parnt, #ctc_theme_child").themeMenu("disable")}catch(n){t.jquery_exception(n,"Theme Menu")}}}),e(".nav-tab").on("click",function(c){if(c.preventDefault(),e(c.target).hasClass("ctc-disabled"))return!1;e(".ctc-query-icon,.ctc-status-icon").remove();var n="#"+e(this).attr("id");t.focus_panel(n)}),e("#view_child_options, #view_parnt_options").on("click",function(c){return e(c.target).hasClass("ajax-pending")||e(c.target).hasClass("ctc-disabled")?!1:(e(c.target).addClass("ajax-pending"),void t.css_preview(e(this).attr("id")))}),e("#ctc_load_form").on("submit",function(){return t.validate()}),e("#ctc_query_selector_form").on("submit",function(c){c.preventDefault();var n=e("#ctc_save_query_selector");return n.hasClass("ajax-pending")?!1:(n.addClass("ajax-pending"),t.save(n),!1)}),e("#ctc_rule_value_form").on("submit",function(e){return e.preventDefault(),!1}),e("#ctc_child_type_new,#ctc_child_type_existing,#ctc_child_type_duplicate,#ctc_child_type_reset").on("focus click",function(){t.reset_handling(),t.update_form()}),e("#ctc_is_debug").on("change",function(){e(this).is(":checked")?e("#ctc_debug_box").length||e("#ctc_debug_container").html('<textarea id="ctc_debug_box"></textarea>'):e("#ctc_debug_box").remove(),t.save(this)}),e(".ctc-live-preview").on("click",function(t){return t.stopImmediatePropagation(),t.preventDefault(),document.location=e(this).prop("href"),!1}),t.setup_menus(),e("input[type=submit], input[type=button]").prop("disabled",!1),t.scrolltop(),t.update_form()),t.jqueryerr.length&&t.jquery_notice()},testslug:"",testname:"",reload:!1,currquery:"base",currqsid:null,currdata:{},currparnt:"",currchild:"",existing:!1,jqueryerr:[],color_regx:"\\s+(\\#[a-f0-9]{3,6}|rgba?\\([\\d., ]+?\\)|hsla?\\([\\d%., ]+?\\)|[a-z]+)",border_regx:"(\\w+)(\\s+(\\w+))?",grad_regx:"(\\w+)"},e.chldthmanalyze={escrgx:function(e){return e.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1")},trmcss:function(e){return"undefined"==typeof e?"":e.replace(/\-css$/,"")},show_loading:function(t,c){var n=e.chldthmcfg.existing?"child":"parnt",a=c?c:e.chldthmcfg.getname(n),i='<strong class="ctc_analyze_loading"><span class="spinner is-active"></span>'+e.chldthmcfg.getxt(t?"anlz1":"anlz2")+" "+a+"...</strong>";self.noticediv="",e("#"+n+"_analysis_notice").html(i)},hide_loading:function(){e(".ctc_analyze_loading").fadeTo(200,0,function(){e(this).slideUp(200,function(){e(this).remove()})})},setssl:function(e){return e.replace(/^https?/,window.ctcAjax.ssl?"https":"http")},analyze_theme:function(t){var c=this,n=Math.floor(e.now()/1e3),a="child"===t?e.chldthmcfg.currchild:e.chldthmcfg.currparnt,i="&template="+encodeURIComponent(e.chldthmcfg.currparnt)+"&stylesheet="+encodeURIComponent(a)+"&now="+n,s=c.setssl(window.ctcAjax.homeurl),l=s+i;c.analysis[t].url=l,e.get(l,function(n){c.parse_page(t,n),e(document).trigger("analysisdone")}).fail(function(n,i,s){c.analysis[t].signals.xhrgeterr=s,e.ajax({url:window.ctcAjax.ajaxurl,data:{action:"ctc_analyze",stylesheet:a,template:e.chldthmcfg.currparnt,_wpnonce:e("#_wpnonce").val()},dataType:"json",type:"POST"}).done(function(n){n.signals.httperr?(c.analysis[t].signals.failure=1,c.analysis[t].signals.httperr=n.signals.httperr):c.parse_page(t,n.body),e(document).trigger("analysisdone")}).fail(function(n,a,i){c.analysis[t].signals.failure=1,c.analysis[t].signals.xhrajaxerr=i,e(document).trigger("analysisdone")})})},parse_page:function(t,c){var n,a,i,s=this,l=window.ctcAjax.theme_uri.replace(/^https?:\/\//,""),r="child"===t?e.chldthmcfg.currchild:e.chldthmcfg.currparnt,o=s.escrgx(e.chldthmcfg.currparnt)+("child"===t?"|"+s.escrgx(r):""),_=new RegExp("<link( rel=[\"']stylesheet[\"'] id=['\"]([^'\"]+?)['\"])?[^>]+?"+s.escrgx(l)+"/("+o+")/([^\"']+\\.css)(\\?[^\"']+)?[\"'][^>]+>","gi"),d=/<br \/>\n[^\n]+?(fatal|strict|notice|warning|error)[\s\S]+?<br \/>/gi,u=0,h=0;
2
  for((a=c.match(/BEGIN WP QUEUE\n([\s\S]*?)\nEND WP QUEUE/))?s.analysis[t].queue=a[1].split(/\n/):(s.analysis[t].queue=[],s.analysis[t].signals.thm_noqueue=1),(a=c.match(/BEGIN CTC IRREGULAR\n([\s\S]*?)\nEND CTC IRREGULAR/))?s.analysis[t].irreg=a[1].split(/\n/):s.analysis[t].irreg=[],c.match(/CHLD_THM_CFG_IGNORE_PARENT/)&&(s.analysis[t].signals.thm_ignoreparnt=1),c.match(/IS_CTC_THEME/)&&(s.analysis[t].signals.thm_is_ctc=1),c.match(/NO_CTC_STYLES/)&&(s.analysis[t].signals.thm_no_styles=1),c.match(/HAS_CTC_IMPORT/)&&(s.analysis[t].signals.thm_has_import=1),c=c.replace(/<!\-\-[\s\S]*?\-\->/g,"");n=d.exec(c);){var p=n[0].replace(/<.*?>/g,"");s.phperr[t].push(p),s.analysis[t].signals.err_php=1,p.match(/Fatal error/i)&&(s.analysis[t].signals.err_fatal=1)}for(;i=_.exec(c);){var m=s.trmcss(i[2]),g=i[3],f=i[4],y=e.chldthmcfg.currparnt===g?"parnt":"child",v=0;if(""===m||-1===e.inArray(m,s.analysis[t].queue))v=1;else if(0===m.indexOf("chld_thm_cfg")){f.match(/^ctc\-style([\-\.]min)?\.css$/)?(u=1,s.analysis[t].signals.ctc_sep_loaded=1):f.match(/^ctc\-genesis([\-\.]min)?\.css$/)?(u=1,s.analysis[t].signals.ctc_gen_loaded=1):m.match(/$chld_thm_cfg_ext/)?(s.analysis[t].signals.ctc_ext_loaded=1,s.analysis[t].deps[u].push([m,f])):"chld_thm_cfg_child"===m?(s.analysis[t].signals.ctc_child_loaded=1,s.analysis[t].deps[u].push([m,f])):"chld_thm_cfg_parent"===m&&(s.analysis[t].signals.ctc_parnt_loaded=1,s.analysis[t].deps[u].push([m,f]),u&&(s.analysis[t].signals.ctc_parnt_reorder=1));continue}if(f.match(/^style([\-\.]min)?\.css$/))u=1,"parnt"===y?v?s.analysis[t].signals.thm_parnt_loaded="thm_unregistered":(s.analysis[t].signals.thm_parnt_loaded=m,"child"===t&&s.analysis[t].signals.thm_child_loaded&&(s.analysis[t].signals.ctc_parnt_reorder=1)):s.analysis[t].signals.thm_child_loaded=v?"thm_unregistered":m,v?h?(s.analysis[t].signals.thm_past_wphead=1,s.analysis[t].deps[u].push(["thm_past_wphead",f])):(s.analysis[t].signals.thm_unregistered=1,s.analysis[t].deps[u].push(["thm_unregistered",f])):s.analysis[t].deps[u].push([m,f]);else if("ctc-test.css"===f)h=1;else{var w=null;v&&(w="dep_unregistered"),h&&(w=u?"css_past_wphead":"dep_past_wphead"),w?(s.analysis[t].signals[w]=1,m=w):s.dependencies[m]=f,s.analysis[t].deps[u].push([m,f])}}u||(s.analysis[t].signals.thm_notheme=1)},css_notice:function(){var t,c,n=this,a=e.chldthmcfg.existing?"child":"parnt",i=e.chldthmcfg.getname(a),s="",l={notices:[]},r={style:"notice-warning",headline:e.chldthmcfg.getxt("anlz3",i),errlist:""},o=0,_={},d="";if(n.analysis[a].signals.failure||n.analysis[a].signals.thm_noqueue&&!n.phperr[a].length)d=e.chldthmcfg.getxt("anlz33").replace(/%1/,'<a href="'+n.analysis[a].url+'" target="_new">').replace(/%2/,"</a>"),l.notices.push({headline:e.chldthmcfg.getxt("anlz4",i),msg:e.chldthmcfg.getxt("anlz5")+d,style:"notice-warning"});else{if(n.phperr[a].length&&(e.each(n.phperr[a],function(t,c){c.match(/Fatal error/i)&&(r.style="error",r.headline=e.chldthmcfg.getxt("anlz8",i)),r.errlist+=c+"\n"}),r.msg='<div style="background-color:#ffeebb;padding:6px"><div class="ctc-section-toggle" id="ctc_analysis_errs">'+e.chldthmcfg.getxt("anlz6")+'</div><div id="ctc_analysis_errs_content" style="display:none"><textarea>'+r.errlist+"</textarea></div></div>"+e.chldthmcfg.getxt("anlz7"),l.notices.push(r)),(n.analysis[a].signals.thm_past_wphead||n.analysis[a].signals.dep_past_wphead)&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz9"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz10")}),e("#ctc_repairheader").prop("checked",!0),e("#ctc_repairheader_container").show()),n.analysis[a].signals.thm_unregistered&&(n.analysis[a].signals.ctc_child_loaded||n.analysis[a].signals.ctc_sep_loaded||(l.notices.push({headline:e.chldthmcfg.getxt("anlz11"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz12")}),e("#ctc_repairheader_container").show(),e("#ctc_repairheader").prop("checked",!0))),"child"===a&&(n.analysis.child.signals.ctc_parnt_reorder&&(o=1),n.analysis.child.signals.ctc_child_loaded||n.analysis.child.signals.ctc_sep_loaded||n.analysis.child.signals.thm_child_loaded||(l.notices.push({headline:e.chldthmcfg.getxt("anlz13"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz14")}),o=1),n.analysis[a].signals.ctc_gen_loaded&&l.notices.push({headline:e.chldthmcfg.getxt("anlz31"),msg:e.chldthmcfg.getxt("anlz32"),style:"notice-warning"}),n.analysis.parnt.signals.thm_no_styles||n.analysis.child.signals.ctc_gen_loaded||n.analysis.child.signals.thm_parnt_loaded||n.analysis.child.signals.ctc_parnt_loaded||n.analysis.child.signals.thm_ignoreparnt||n.analysis.child.signals.thm_has_import||(l.notices.push({headline:e.chldthmcfg.getxt("anlz15"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz16")}),o=1),n.analysis.child.signals.thm_unregistered&&n.analysis.child.signals.thm_child_loaded&&"thm_unregistered"===n.analysis.child.signals.thm_child_loaded&&n.analysis.child.signals.ctc_child_loaded&&n.analysis.child.signals.ctc_parnt_loaded&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz28"),style:"notice-warning",msg:e.chldthmcfg.getxt("anlz29")}),e("#ctc_repairheader_container").show(),e("#ctc_repairheader").prop("checked",!0)),n.analysis.child.signals.thm_is_ctc||e("#ctc_child_type_duplicate").is(":checked")||l.notices.push({headline:e.chldthmcfg.getxt("anlz19"),msg:e.chldthmcfg.getxt("anlz20"),style:"notice-warning"})),(n.analysis[a].signals.ctc_sep_loaded||n.analysis[a].signals.ctc_gen_loaded)&&e("#ctc_handling_separate").prop("checked",!0),l.notices.length||l.notices.push({headline:""+("child"===a?e.chldthmcfg.getxt("anlz17"):e.chldthmcfg.getxt("anlz18")),style:"updated",msg:""}),"child"===a&&n.analysis.child.signals.thm_has_import&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz21"),msg:e.chldthmcfg.getxt("anlz22"),style:"notice-warning"}),e("#ctc_enqueue_import").prop("checked",!0)),n.analysis[a].signals.thm_ignoreparnt||n.analysis[a].signals.ctc_gen_loaded?(e("#ctc_ignoreparnt").prop("checked",!0),e("#ctc_enqueue_none").is(":checked")||(e("#ctc_enqueue_none").prop("checked",!0),o=1,_.ctc_enqueue="none")):e("#ctc_ignoreparnt").prop("checked",!1),!n.analysis[a].signals.ctc_sep_loaded&&!n.analysis[a].signals.ctc_gen_loaded&&!n.analysis[a].signals.ctc_child_loaded&&!n.analysis[a].signals.thm_unregistered&&!n.analysis[a].signals.thm_past_wphead&&n.analysis[a].deps[1].length){var u="";e.each(n.analysis[a].deps[1],function(e,t){t[1].match(/^style([\-\.]min)?\.css$/)||(u+="<li>"+t[1]+"</li>\n")}),""!==u&&(u="<ul class='howto' style='padding-left:1em'>\n"+u+"</ul>\n",l.notices.push({headline:e.chldthmcfg.getxt("anlz23"),msg:u+e.chldthmcfg.getxt("anlz24"),style:"updated"}))}"child"===a&&n.analysis[a].signals.thm_parnt_loaded&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz25"),msg:e.chldthmcfg.getxt("anlz26"),style:"updated"}),e("#ctc_enqueue_none").prop("checked",!0),o=1,_.ctc_enqueue="none"),n.analysis.parnt.signals.thm_no_styles&&(l.notices.push({headline:e.chldthmcfg.getxt("anlz27"),msg:e.chldthmcfg.getxt("anlz26"),style:"updated"}),e("#ctc_enqueue_none").prop("checked",!0),o=1,_.ctc_enqueue="none")}return s=encodeURIComponent(JSON.stringify(n.analysis)),e('input[name="ctc_analysis"]').val(s),_.ctc_analysis=s,n.is_success()&&o&&!n.resubmitting?(n.resubmitting=1,void n.resubmit(_)):(n.resubmitting=0,n.hide_loading(),e.each(l.notices,function(t,c){var n=e('<div class="'+c.style+' notice is-dismissible dashicons-before" ><h4>'+c.headline+"</h4>"+c.msg+"</div>");e.chldthmcfg.bind_dismiss(n),n.hide().appendTo("#"+a+"_analysis_notice").slideDown()}),t='<div style="background-color:#ddd;padding:6px"><div class="ctc-section-toggle" id="ctc_analysis_obj">'+e.chldthmcfg.getxt("anlz30")+'</div><div id="ctc_analysis_obj_content" style="display:none"><textarea style="font-family:monospace;font-size:10px">'+JSON.stringify(n.analysis,null,2)+"</textarea></div></div>",e(t).appendTo("#"+a+"_analysis_notice"),c="",e.each(n.dependencies,function(t,n){n&&(c+='<label><input class="ctc_checkbox ctc-themeonly" id="ctc_forcedep_'+t+'" name="ctc_forcedep[]" type="checkbox" value="'+t+'" autocomplete="off" '+(-1!==e.inArray(t,window.ctcAjax.forcedep)?"checked":"")+" />"+t+"</label><br/>\n")}),c.length?(e("#ctc_dependencies").html(c),e("#ctc_dependencies_container").show()):(e("#ctc_dependencies").empty(),e("#ctc_dependencies_container").hide()),e("#ctc_child_type_reset").is(":checked")||(e("#input_row_stylesheet_handling_container,#input_row_parent_handling_container,#ctc_child_header_parameters,#ctc_configure_submit").slideDown("fast"),e("#ctc_child_type_duplicate").is(":checked")?(e("#ctc_configure_submit .ctc-step").text("8"),e("#ctc_copy_theme_mods").find("input").prop("checked",!1)):(e("#ctc_configure_submit .ctc-step").text("9"),e("#ctc_copy_theme_mods").slideDown("fast")),e("#ctc_child_type_duplicate").is(":checked")||e("#ctc_child_type_new").is(":checked")?(e("#input_row_theme_slug").hide(),e("#input_row_new_theme_slug").slideDown("fast")):(e("#input_row_new_theme_slug").hide(),e("#input_row_theme_slug").slideDown("fast"))),void 0)},resubmit:function(t){var c=this;c.hide_loading(),c.show_loading(!0),t.action="ctc_update",t._wpnonce=e("#_wpnonce").val(),e.ajax({url:window.ctcAjax.ajaxurl,data:t,type:"POST"}).done(function(){c.hide_loading(),c.do_analysis()}).fail(function(){c.hide_loading()})},do_analysis:function(){var t=this;t.analysis={parnt:{deps:[[],[]],signals:{failure:0},queue:[],irreg:[]},child:{deps:[[],[]],signals:{failure:0},queue:[],irreg:[]}},t.phperr={parnt:[],child:[]},t.dependencies={},t.done=0,t.show_loading(!1),t.analyze_theme("parnt"),e.chldthmcfg.existing&&t.analyze_theme("child")},init:function(){var t=this;e(document).on("analysisdone",function(){t.done++,t.done>e.chldthmcfg.existing&&(t.done=0,t.css_notice())}),e("#ctc_main").on("click",".ctc-analyze-theme",function(){t.is_success()&&e.chldthmcfg.dismiss_notice(e(".ctc-success-response").parent(".notice")),t.do_analysis()}),t.is_success()&&!window.ctcAjax.pluginmode&&t.do_analysis()},analysis:{},done:0,resubmitting:0,dependencies:{},is_success:function(){return e(".ctc-success-response").length}},e("#request-filesystem-credentials-form").length||(e.chldthmcfg.init(),e.chldthmanalyze.init())}(jQuery);
lang/child-theme-configurator-fr_FR.mo ADDED
Binary file
lang/child-theme-configurator-fr_FR.po ADDED
@@ -0,0 +1,1149 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Translation of Plugins - Child Theme Configurator - Stable (latest release) in French (France)
2
+ # This file is distributed under the same license as the Plugins - Child Theme Configurator - Stable (latest release) package.
3
+ msgid ""
4
+ msgstr ""
5
+ "PO-Revision-Date: 2017-05-05 09:58:25+0000\n"
6
+ "MIME-Version: 1.0\n"
7
+ "Content-Type: text/plain; charset=UTF-8\n"
8
+ "Content-Transfer-Encoding: 8bit\n"
9
+ "Plural-Forms: nplurals=2; plural=n > 1;\n"
10
+ "X-Generator: GlotPress/2.4.0-alpha\n"
11
+ "Language: fr\n"
12
+ "Project-Id-Version: Plugins - Child Theme Configurator - Stable (latest release)\n"
13
+
14
+ #: includes/forms/parent-child.php:313
15
+ msgid "Show/Hide Child Theme Attributes"
16
+ msgstr "Afficher / masquer les attributs du thème enfant"
17
+
18
+ #: includes/forms/parent-child.php:299
19
+ msgid "By default, the order of stylesheets that load prior to the primary stylesheet is preserved by treating them as dependencies. In some cases, stylesheets are detected in the preview that are not used site-wide. If necessary, dependency can be removed for specific stylesheets below."
20
+ msgstr "Par défaut, l’ordre des feuilles de style qui se chargent avant la feuille de style primaire est conservé en les traitant comme des dépendances. Dans certains cas, les feuilles de style sont détectées dans l’aperçu qui ne sont pas utilisés dans l’ensemble du site. Si nécessaire, la dépendance peut être supprimée pour les feuilles de style spécifiques ci-dessous."
21
+
22
+ #: includes/forms/parent-child.php:296
23
+ msgid "Remove stylesheet dependencies"
24
+ msgstr "Supprimez les dépendances de la feuille de style"
25
+
26
+ #: includes/forms/parent-child.php:267
27
+ msgid "Advanced handling options"
28
+ msgstr "Options de handling avancées"
29
+
30
+ #: includes/classes/Upgrade.php:188
31
+ msgid "Update Plugin"
32
+ msgstr "Mettre à jour l’extension"
33
+
34
+ #: includes/classes/Upgrade.php:70
35
+ msgid "Upgrade Now"
36
+ msgstr "Mettre à jour maintenant"
37
+
38
+ #: includes/classes/Upgrade.php:69
39
+ msgid "You can upgrade to the latest version by clicking the button below. After validating the Update Key from your order, WordPress will retrieve the plugin from our website and install it automatically. If you no longer wish to use the premium version, you can dismiss this notice by clicking the close icon (x) at the top right."
40
+ msgstr "Vous pouvez passer à la dernière version en cliquant sur le bouton ci-dessous. Après avoir validé la clé de mise à jour de votre commande, WordPress va récupérer l’extension depuis notre site et l’installer automatiquement. Si vous ne souhaitez plus utiliser la version premium, vous pouvez rejeter cet avis en cliquant sur l’icône de fermeture (x) en haut à droite."
41
+
42
+ #: includes/classes/Upgrade.php:67
43
+ msgid " is not compatible with the installed version of Child Theme Configurator and has been deactivated."
44
+ msgstr " n’est pas compatible avec la version installée de Child Theme Configurator et a été désactivé."
45
+
46
+ #: includes/classes/Upgrade.php:67
47
+ msgid "Child Theme Configurator Pro version %s"
48
+ msgstr "Child Theme Configurator Pro version %s"
49
+
50
+ #: includes/classes/Upgrade.php:61
51
+ msgid "contact us."
52
+ msgstr "nous contacter."
53
+
54
+ #: includes/classes/Upgrade.php:61
55
+ msgid "Sorry, we could not validate your Update Key. Please try again or, if you need assistance, please %s"
56
+ msgstr "Désolé, nous ne pouvons pas valider votre clé de mise à jour. Veuillez réessayer ou, si vous avez besoin d’assistance, veuillez %s"
57
+
58
+ #: includes/classes/Upgrade.php:60
59
+ msgid "Enter your Update Key"
60
+ msgstr "Entrez votre clé de mise à jour"
61
+
62
+ #: includes/forms/zipform.php:6
63
+ msgid "Export Child Theme"
64
+ msgstr "Exporter le thème enfants"
65
+
66
+ #: includes/forms/settings-errors.php:46
67
+ msgid "%sPreview your child theme%s before activating."
68
+ msgstr "%sPrévisualisez votre thème enfant%s avant de l’activer."
69
+
70
+ #: includes/forms/settings-errors.php:39
71
+ msgid "You must %sNetwork enable%s your child theme."
72
+ msgstr "Vous devez %sRéseau activer%s votre thème enfant."
73
+
74
+ #: includes/forms/settings-errors.php:24
75
+ msgid "Update Key saved successfully."
76
+ msgstr "La clé de mise à jour a été enregistrée avec succès."
77
+
78
+ #: includes/forms/rule-value.php:9
79
+ msgid "To find and edit selectors containing specific values for a given property, first choose the property (e.g., \"color\"), then click \"Selectors\" for any resulting value. A dialog panel will open with the corresponding selectors, grouped by media query."
80
+ msgstr "Pour trouver et modifier des sélecteurs contenant des valeurs spécifiques pour une propriété donnée, choisissez d'abord la propriété (par exemple : « color »), puis cliquez sur « Sélecteurs » pour toute valeur résultante. Une fenêtre de dialogue s'ouvrira avec les sélecteurs correspondants, regroupés par media query."
81
+
82
+ #: includes/forms/query-selector.php:9
83
+ msgid "To find and edit specific selectors within @media query blocks, first choose the query, then the selector. Use the \"base\" query to edit all other selectors."
84
+ msgstr "Pour trouver et modifier des sélecteurs spécifiques dans les blocs @media query, choisissez d'abord la requête (query), puis le sélecteur. Utilisez la requête « base » pour éditer les autres sélecteurs."
85
+
86
+ #: includes/forms/notices.php:111
87
+ msgid "It is a good idea to save a Zip Archive of your Child Theme before using CTC for the first time. Click the \"save backup\" link ( see Step 2, below ) to export your themes."
88
+ msgstr "C’est une bonne idée que d’enregistrer une archive Zip de notre thème enfant avant d’utiliser CTC pour la première fois. Cliquez sur le lien « Enregistrer la sauvegarde » (voir l'étape 2 ci-dessous) pour exporter vos thèmes."
89
+
90
+ #: includes/forms/notices.php:97
91
+ msgid "Thank you for installing Child Theme Configurator."
92
+ msgstr "Nous vous remercions d’avoir installé Child Theme Configurator."
93
+
94
+ #: includes/forms/addl_panels.php:33
95
+ msgid "Create new template and script files right from the admin."
96
+ msgstr "Créez un nouveau modèle et des fichiers de script directement à partir de l’interface d’administration."
97
+
98
+ #: includes/forms/addl_panels.php:32
99
+ msgid "Add Child Theme Files"
100
+ msgstr "Ajouter des fichiers du thème enfant"
101
+
102
+ #: includes/classes/UI.php:345
103
+ msgid "<p>%1Click Here%2 to view the theme as viewed by the Analyzer.</p>"
104
+ msgstr "<p>%1Cliquez ici%2 pour voir le thème tel qu’observé par l’analyseur.</p>"
105
+
106
+ #: includes/classes/UI.php:342
107
+ msgid "Click to show/hide raw analysis data. Please include contents below with any support requests."
108
+ msgstr "Cliquez pour afficher / masquer les données d’analyse brutes. Veuillez inclure le contenu ci-dessous avec toutes les demandes de support."
109
+
110
+ #: includes/classes/UI.php:318
111
+ msgid "Click to show/hide PHP debug output"
112
+ msgstr "Cliquez pour afficher / masquer la sortie de débogage PHP"
113
+
114
+ #: includes/classes/UI.php:317
115
+ msgid "<p>First, verify you can <a href=\"%s\">preview your home page with the Customizer</a> and try analyzing again.</p><p>If that does not work, try temporarily disabling plugins that <strong>minify CSS</strong> or that <strong>force redirects between HTTP and HTTPS</strong>.</p>"
116
+ msgstr "<p>Pour commencer, vérifiez que vous pouvez <a href=\"%s\">visualiser votre page d’accueil avec l'outil de personnalisation</a> puis essayez d’analyser à nouveau.</p><p>Si cela ne fonctionne pas, essayez de désactiver temporairement les extensions qui <strong>minifient le CSS</strong> ou qui <strong>Forcent les redirections entre HTTP et HTTPS</strong>.</p>"
117
+
118
+ #: includes/classes/UI.php:319
119
+ msgid "<p>Please contact this Theme's author and report the items inside the box above. You may or may not be able to use this Theme as a Child Theme while these conditions exist.</p><p>It is possible that this theme has specific requirements to work correctly as a child theme. Please make sure you are using the latest version of this theme and check your theme's documentation for more information.</p>"
120
+ msgstr "<p>Veuillez contacter l’auteur de ce thème et signaler les informations de la fenêtre ci-dessus. Vous pourrez (ou pas) utiliser ce thème comme thème enfant tant que ces conditions existent. </p><p>Il est possible que ce thème ait des exigences spécifiques pour fonctionner correctement en tant que thème enfant. Assurez-vous d’utiliser la dernière version et de lire sa documentation pour plus d’informations.</p>"
121
+
122
+ #: includes/forms/parent-child.php:89 includes/forms/parent-child.php:117
123
+ msgid "Click here to save a backup of the selected theme."
124
+ msgstr "Cliquez ici pour faire une copie de sauvegarde du thème sélectionné"
125
+
126
+ #: includes/forms/files.php:58
127
+ msgid "Click \"Export Zip\" to save a backup of the currently loaded child theme. You can export any of your themes from the Parent/Child tab."
128
+ msgstr "Cliquez sur « Exporter le code postal » pour enregistrer une sauvegarde du thème enfant actuellement chargé. Vous pouvez exporter n’importe lequel de vos thèmes à partir de l’onglet Parent / Enfant."
129
+
130
+ #: includes/forms/notices.php:45
131
+ msgid "This Child Theme has incorrect ownership permissions. Child Theme Configurator will attempt to correct this when you click the button below."
132
+ msgstr "Ce thème enfant a des permissions de propriété incorrectes. Child Theme Configurator tentera de le corriger lorsque vous cliquerez sur le bouton ci-dessous."
133
+
134
+ #: includes/classes/UI.php:316
135
+ msgid "The theme \"%s\" could not be analyzed because the preview did not render correctly."
136
+ msgstr "Le thème « %s » n'a pas pu être analysé car l’aperçu n’a pas été rendu correctement."
137
+
138
+ #: includes/classes/Admin.php:1518
139
+ msgid "Invalid theme root directory."
140
+ msgstr "Répertoire racine du thème invalide."
141
+
142
+ #: includes/classes/Admin.php:1560
143
+ msgid "PclZip returned zero bytes."
144
+ msgstr "PclZip a renvoyé zéro octets."
145
+
146
+ #: includes/classes/Admin.php:1530
147
+ msgid "No writable temp directory."
148
+ msgstr "Le répertoire temporaire n’est pas accessible en écriture."
149
+
150
+ #: includes/classes/UI.php:338
151
+ msgid "<p>The Configurator selected \"Do not add any parent stylesheet handling\" for the \"Parent stylesheet handling\" option (see step 6, below).</p>"
152
+ msgstr "<p>Le configurateur a sélectionné « Ne pas ajouter de gestion de la feuille de style parent » pour l’option « Gestion de la feuille de style parent » (voir l’étape 6 ci-dessous).</p>"
153
+
154
+ #. Description of the plugin/theme
155
+ msgid "When using the Customizer is not enough - Create child themes and customize styles, templates, functions and more."
156
+ msgstr "Lorsque l’outil de personnalisation ne suffit pas - créez des thèmes enfants et personnalisez les styles, les modèles, les fonctions et plus encore."
157
+
158
+ #: includes/forms/tabs.php:29
159
+ msgid "Child Styles"
160
+ msgstr "Styles enfants"
161
+
162
+ #: includes/forms/tabs.php:26
163
+ msgid "Baseline Styles"
164
+ msgstr "Styles de bases"
165
+
166
+ #: includes/forms/query-selector.php:57
167
+ msgid "Baseline Value"
168
+ msgstr "Valeur de référence"
169
+
170
+ #: includes/forms/query-selector.php:15
171
+ msgid "( or \"base\" )"
172
+ msgstr "(Ou « base »)"
173
+
174
+ #: includes/forms/query-selector.php:14
175
+ msgid "@media Query"
176
+ msgstr "@media Query"
177
+
178
+ #: includes/forms/parent-child.php:468
179
+ msgid "Configure Plugin Styles"
180
+ msgstr "Configurer les styles d’extension"
181
+
182
+ #: includes/forms/parent-child.php:443
183
+ msgid "Select the plugin stylesheets you wish to customize below."
184
+ msgstr "Sélectionnez les feuilles de style que vous souhaitez personnaliser ci-dessous."
185
+
186
+ #: includes/forms/parent-child.php:438
187
+ msgid "Parse Plugin stylesheets:"
188
+ msgstr "Examiner les feuilles de style d’extension :"
189
+
190
+ #: includes/forms/parent-child.php:416
191
+ msgid "Configure Child Theme"
192
+ msgstr "Configurer le thème enfant"
193
+
194
+ #: includes/forms/parent-child.php:412 includes/forms/parent-child.php:464
195
+ msgid "Click to run the Configurator:"
196
+ msgstr "Cliquez pour exécuter le configurateur :"
197
+
198
+ #: includes/forms/parent-child.php:401
199
+ msgid "This option replaces the Child Theme's existing Menus, Widgets and other Customizer Settings with those from the Parent Theme. You should only need to use this option the first time you configure a Child Theme."
200
+ msgstr "Cette option remplace les menus existants, widgets et autres paramètres personnalisables du thème enfant par ceux du thème parent. Vous devriez utiliser cette option seulement la première fois que vous configurez un thème enfant."
201
+
202
+ #: includes/forms/parent-child.php:391
203
+ msgid "Copy Menus, Widgets and other Customizer Settings from the Parent Theme to the Child Theme:"
204
+ msgstr "Copier menus, widgets et autres réglages de l'outil de personnalisation du thème parent pour le thème enfant :"
205
+
206
+ #: includes/forms/parent-child.php:309
207
+ msgid "Customize the Child Theme Name, Description, Author, Version, etc.:"
208
+ msgstr "Personnaliser le nom du thème enfant, la description, l’auteur, la version, etc. :"
209
+
210
+ #: includes/forms/parent-child.php:313
211
+ msgid "Click to toggle form"
212
+ msgstr "Cliquez pour basculer le formulaire"
213
+
214
+ #: includes/forms/parent-child.php:286
215
+ msgid "Let the Configurator (try to) resolve any stylesheet issues listed above. This can fix many, but not all, common problems."
216
+ msgstr "Laissez le configurateur (essayer de) résoudre tous les problèmes de feuille de style listés ci-dessus. Cela peut résoudre parfois les problèmes courants."
217
+
218
+ #: includes/forms/parent-child.php:285
219
+ msgid "Repair the header template in the child theme."
220
+ msgstr "Réparez le modèle d’en-tête du thème enfant."
221
+
222
+ #: includes/forms/parent-child.php:275
223
+ msgid "Do not load or parse the parent theme styles. Only use this option if the Child Theme uses a Framework like Genesis and only uses child theme stylesheets for its appearance."
224
+ msgstr "Ne chargez pas et n’analysez pas les styles du thème parent. Utilisez uniquement cette option si le thème enfant utilise un framework comme Genesis et n’utilise que des feuilles de style du thème enfant pour son apparence."
225
+
226
+ #: includes/forms/parent-child.php:274
227
+ msgid "Ignore parent theme stylesheets."
228
+ msgstr "Ignorez les feuilles de style du thème parent."
229
+
230
+ #: includes/forms/parent-child.php:260
231
+ msgid "Select this option if this theme already handles the parent theme stylesheet or if the parent theme's <code>style.css</code> file is not used for its appearance."
232
+ msgstr "Sélectionnez cette option si ce thème gère déjà la feuille de style du thème parent ou si le fichier <code>style.css</code> du thème parent n’est pas utilisé pour son apparence."
233
+
234
+ #: includes/forms/parent-child.php:257
235
+ msgid "Do not add any parent stylesheet handling."
236
+ msgstr "N’ajoutez pas de gestion de la feuille de style parent."
237
+
238
+ #: includes/forms/parent-child.php:251
239
+ msgid "Only use this option if the parent stylesheet cannot be loaded using the WordPress style queue. Using <code>@import</code> is not recommended."
240
+ msgstr "Utilisez uniquement cette option si la feuille de style parent ne peut pas être chargée à l’aide de la file de style WordPress. L’utilisation de <code>@import</code> n’est pas recommandée."
241
+
242
+ #: includes/forms/parent-child.php:245
243
+ msgid "Use <code>@import</code> in the child theme stylesheet."
244
+ msgstr "Utilisez <code>@import</code> dans la feuille de style du thème enfant."
245
+
246
+ #: includes/forms/parent-child.php:239
247
+ msgid "Let the Configurator determine the appropriate actions and dependencies and update the functions file automatically."
248
+ msgstr "Laissez le configurateur déterminer les actions et dépendances appropriées et mettre à jour automatiquement le fichier de fonctions."
249
+
250
+ #: includes/forms/parent-child.php:233
251
+ msgid "Use the WordPress style queue."
252
+ msgstr "Utilisez la file d’attente de style de WordPress."
253
+
254
+ #: includes/forms/parent-child.php:219
255
+ msgid "Select Parent Theme stylesheet handling:"
256
+ msgstr "Sélectionnez la gestion de la feuille de style du thème principal :"
257
+
258
+ #: includes/forms/parent-child.php:209
259
+ msgid "Save new custom styles to a separate stylesheet and combine any existing child theme styles with the parent to form baseline. Select this option if you want to preserve the existing child theme styles instead of overwriting them. This option also allows you to customize stylesheets that load after the primary stylesheet."
260
+ msgstr "Enregistrez de nouveaux styles personnalisés dans une feuille de style distincte et combinez tous les styles du thème enfant existants avec le parent pour former une base de référence. Sélectionnez cette option si vous souhaitez préserver les styles du thème enfant existants au lieu de les écraser. Cette option vous permet également de personnaliser les feuilles de style qui se chargent après la feuille de style primaire."
261
+
262
+ #: includes/forms/parent-child.php:206
263
+ msgid "Separate Stylesheet"
264
+ msgstr "Feuille de style séparée"
265
+
266
+ #: includes/forms/parent-child.php:194
267
+ msgid "Save new custom styles directly to the Child Theme primary stylesheet, replacing the existing values. The primary stylesheet will load in the order set by the theme."
268
+ msgstr "Enregistrez de nouveaux styles personnalisés directement dans la feuille de style primaire du thème enfant, en remplaçant les valeurs existantes. La feuille de style principale sera chargée dans l’ordre défini par le thème."
269
+
270
+ #: includes/forms/parent-child.php:191
271
+ msgid "Primary Stylesheet (style.css)"
272
+ msgstr "Feuille de style primaire (style.css)"
273
+
274
+ #: includes/forms/parent-child.php:182
275
+ msgid "Select where to save new styles:"
276
+ msgstr "Sélectionnez l’endroit où enregistrer les nouveaux styles :"
277
+
278
+ #: includes/forms/parent-child.php:217
279
+ msgid "Click to expand"
280
+ msgstr "Cliquez pour agrandir"
281
+
282
+ #: includes/forms/parent-child.php:169
283
+ msgid "For verification only (you cannot modify the directory of an existing Child Theme)."
284
+ msgstr "Pour vérification uniquement (vous ne pouvez pas modifier le répertoire d’un thème enfant existant)."
285
+
286
+ #: includes/forms/parent-child.php:159
287
+ msgid "Verify Child Theme directory:"
288
+ msgstr "Vérifiez le répertoire du thème enfant :"
289
+
290
+ #: includes/forms/parent-child.php:152
291
+ msgid "This is NOT the name of the Child Theme. You can customize the name, description, etc. in step 7, below."
292
+ msgstr "Ce n’est PAS le nom du thème enfant. Vous pouvez personnaliser le nom, la description, etc. à l’étape 7 ci-dessous."
293
+
294
+ #: includes/forms/parent-child.php:146
295
+ msgid "Directory Name"
296
+ msgstr "Nom de répertoire"
297
+
298
+ #: includes/forms/parent-child.php:142
299
+ msgid "Name the new theme directory:"
300
+ msgstr "Nommez le nouveau répertoire du thème :"
301
+
302
+ #: includes/forms/parent-child.php:127
303
+ msgid "Analyze Child Theme"
304
+ msgstr "Analyser le thème enfant"
305
+
306
+ #: includes/forms/parent-child.php:113
307
+ msgid "Select a Child Theme:"
308
+ msgstr "Sélectionnez un thème enfant :"
309
+
310
+ #: includes/forms/parent-child.php:102 includes/forms/parent-child.php:130
311
+ msgid "Click \"Analyze\" to determine stylesheet dependencies and other potential issues."
312
+ msgstr "Cliquez sur « Analyser » pour déterminer les dépendances de la feuille de style et d’autres problèmes potentiels."
313
+
314
+ #: includes/forms/parent-child.php:99
315
+ msgid "Analyze Parent Theme"
316
+ msgstr "Analyser le thème parent"
317
+
318
+ #: includes/forms/parent-child.php:95 includes/forms/parent-child.php:123
319
+ msgid "Analyze"
320
+ msgstr "Analyser"
321
+
322
+ #: includes/forms/parent-child.php:85
323
+ msgid "Select a Parent Theme:"
324
+ msgstr "Sélectionnez un thème parent :"
325
+
326
+ #: includes/forms/parent-child.php:74
327
+ msgid "Revert the Child theme stylesheet and functions files to their state before the initial configuration or last reset. Additional child theme files will not be removed, but you can delete them under the Files tab."
328
+ msgstr "Rétablir la feuille de style du thème enfant et les fichiers de fonctions à leur état précédent la configuration initiale ou la dernière réinitialisation. Les fichiers supplémentaires du thème enfant ne seront pas supprimés, mais vous pouvez les supprimer sous l’onglet Fichiers."
329
+
330
+ #: includes/forms/parent-child.php:71
331
+ msgid "RESET an existing Child Theme (this will destroy any work you have done in the Configurator)"
332
+ msgstr "RÉINITIALISER un thème enfant existant (cela détruira tout travail que vous avez effectué avec le configurateur)"
333
+
334
+ #: includes/forms/parent-child.php:60
335
+ msgid "Make a complete copy of an existing Child Theme in a new directory, including any menus, widgets and other Customizer settings. The option to copy the Parent Theme settings (step 8, below) is disabled with this action."
336
+ msgstr "Effectuez une copie complète d’un thème enfant existant dans un nouveau répertoire, y compris les menus, widgets et autres réglages de l'outil de personnalisation. L’option de copier les paramètres du thème parent (étape 8, ci-dessous) est désactivée avec cette action."
337
+
338
+ #: includes/forms/parent-child.php:57
339
+ msgid "DUPLICATE an existing Child Theme"
340
+ msgstr "DUPLIQUER un thème enfant existant"
341
+
342
+ #: includes/forms/parent-child.php:46
343
+ msgid "Set up a previously installed child theme for use with the Configurator or to modify current settings."
344
+ msgstr "Configurez un thème enfant précédemment installé pour l’utiliser avec le configurateur ou pour modifier les réglages actuels."
345
+
346
+ #: includes/forms/parent-child.php:43
347
+ msgid "CONFIGURE an existing Child Theme"
348
+ msgstr "CONFIGURER un thème enfant existant"
349
+
350
+ #: includes/forms/parent-child.php:30
351
+ msgid "Install a new customizable child theme using an installed theme as a parent."
352
+ msgstr "Installez un nouveau thème enfant personnalisable à l’aide d’un thème installé en tant que parent."
353
+
354
+ #: includes/forms/parent-child.php:27
355
+ msgid "CREATE a new Child Theme"
356
+ msgstr "CRÉER un nouveau thème enfant"
357
+
358
+ #: includes/forms/parent-child.php:19
359
+ msgid "Select an action:"
360
+ msgstr "Sélectionnez une action :"
361
+
362
+ #: includes/forms/current-theme.php:6
363
+ msgid "Currently loaded"
364
+ msgstr "Actuellement chargé"
365
+
366
+ #: includes/forms/fileform.php:14
367
+ msgid "Copy PHP templates from the parent theme by selecting them here. The Configurator defines a template as a Theme PHP file having no PHP functions or classes. Other PHP files cannot be safely overridden by a child theme."
368
+ msgstr "Copiez les modèles PHP à partir du thème parent en les sélectionnant ici. Le configurateur définit un modèle en tant que fichier PHP de thème n’ayant pas de fonctions ou de classes PHP. Les autres fichiers PHP ne peuvent être remplacés sans risques par un thème enfant."
369
+
370
+ #: includes/forms/notices.php:107
371
+ msgid "click here to view the latest videos."
372
+ msgstr "Cliquez ici pour voir les dernières vidéos."
373
+
374
+ #: includes/forms/notices.php:105
375
+ msgid "For more information, please open the Help tab at the top right or "
376
+ msgstr "Pour plus d’informations, ouvrez l’onglet Aide en haut à droite ou "
377
+
378
+ #: includes/forms/notices.php:102
379
+ msgid "Contact Us."
380
+ msgstr "Contactez-nous."
381
+
382
+ #: includes/forms/notices.php:100
383
+ msgid "A lot of time and testing has gone into this release but there may be edge cases. If you have any questions, please"
384
+ msgstr "Beaucoup de temps et de tests ont été utilisés dans cette version, mais il peut y avoir des cas limite. Si vous avez des questions, veuillez"
385
+
386
+ #: includes/forms/notices.php:84
387
+ msgid "Your stylesheet has changed since the last time you used the Configurator. Please follow the steps for \"CONFIGURE an existing Child Theme\" under the \"Parent/Child\" Tab or you will lose these changes."
388
+ msgstr "Votre feuille de style a changé depuis la dernière fois que vous avez utilisé le configurateur. Suivez les étapes pour « CONFIGURER un thème enfant existant » sous l’onglet « Parent / Enfant » ou vous perdrez ces modifications."
389
+
390
+ #: includes/forms/notices.php:76
391
+ msgid "Child Theme Configurator did not detect any configuration data because a previously configured Child Theme has been removed. Please follow the steps for \"CONFIGURE an existing Child Theme\" under the \"Parent/Child\" Tab."
392
+ msgstr "Child Theme Configurator n'a détecté aucune donnée de configuration car un thème enfant précédemment configuré a été supprimé. Suivez les étapes pour « CONFIGURER un thème enfant existant » sous l'onglet « Parent / Enfant »."
393
+
394
+ #: includes/classes/UI.php:344
395
+ msgid "<p>This method has been replaced by the \"Separate stylesheet\" and \"Ignore Parent Theme\" options ( selected below ) for broader framework compatability.</p>"
396
+ msgstr "<p>Cette méthode a été remplacée par les options « Feuille de style séparée » et « Ignorer les éléments parental » (sélectionnés ci-dessous) pour une compatibilité de framework plus large.</p>"
397
+
398
+ #: includes/classes/UI.php:343
399
+ msgid "This child theme was configured using the CTC Pro \"Genesis stylesheet handling\" method."
400
+ msgstr "Ce thème enfant a été configuré en utilisant la méthode CTC Pro « Genesis stylesheet handling »."
401
+
402
+ #: includes/classes/UI.php:341
403
+ msgid "<p>The selected stylesheet handling method is no longer used. Please update the configuration using the \"Repair header template\" option (see step 6, \"Additional handling options\", below).</p>"
404
+ msgstr "<p>La méthode de manipulation de la feuille de style sélectionnée n’est plus utilisée. Veuillez mettre à jour la configuration à l’aide de l'option « Réparer le modèle d'en-tête » (voir l'étape 6, « Options de manipulation supplémentaires » ci-dessous).</p>"
405
+
406
+ #: includes/classes/UI.php:340
407
+ msgid "This Child Theme was configured with an earlier version."
408
+ msgstr "Ce thème enfant a été configuré avec une version antérieure."
409
+
410
+ #: includes/classes/UI.php:339
411
+ msgid "This theme does not require the parent theme's <code>style.css</code> file for its appearance."
412
+ msgstr "Ce thème ne nécessite pas le fichier <code>style.css</code> du thème parent pour son apparence."
413
+
414
+ #: includes/classes/UI.php:337
415
+ msgid "The parent theme's <code>style.css</code> file is being loaded automatically."
416
+ msgstr "Le fichier <code>style.css</code> du thème parent est chargé automatiquement."
417
+
418
+ #: includes/classes/UI.php:336
419
+ msgid "<p>Consider saving new custom styles to a \"Separate stylesheet\" (see step 5, below) so that you can customize these styles.</p>"
420
+ msgstr "<p>Envisagez de sauvegarder de nouveaux styles personnalisés dans une « Feuille de style séparée » (voir l’étape 5 ci-dessous) afin que vous puissiez personnaliser ces styles.</p>"
421
+
422
+ #: includes/classes/UI.php:335
423
+ msgid "This theme loads additional stylesheets after the <code>style.css</code> file:"
424
+ msgstr "Ce thème charge des feuilles de style supplémentaires après le fichier <code>style.css</code> :"
425
+
426
+ #: includes/classes/UI.php:334
427
+ msgid "<p>Please consider selecting \"Use the WordPress style queue\" for the parent stylesheet handling option (see step 6, below).</p>"
428
+ msgstr "<p>Veuillez considérer la sélection « Utiliser la file d'attente de style WordPress » pour l’option de gestion de la feuille de style parent (voir l'étape 6 ci-dessous).</p>"
429
+
430
+ #: includes/classes/UI.php:333
431
+ msgid "This child theme uses <code>@import</code> to load the parent theme's <code>style.css</code> file."
432
+ msgstr "Ce thème enfant utilise <code>@import</code> pour charger le fichier <code>style.css</code> du thème parent."
433
+
434
+ #: includes/classes/UI.php:332
435
+ msgid "<p>The Configurator makes significant modifications to the child theme, including stylesheet changes and additional php functions. Please consider using the DUPLICATE child theme option (see step 1, above) and keeping the original as a backup.</p>"
436
+ msgstr "<p>Le Configurateur modifie considérablement le thème enfant, y compris les modifications de la feuille de style et les fonctions php supplémentaires. Veuillez envisager d’utiliser l’option « DUPLIQUER thème enfant » (voir l'étape 1 ci-dessus) et de conserver l’original en tant que sauvegarde.</p>"
437
+
438
+ #: includes/classes/UI.php:331
439
+ msgid "This Child Theme has not been configured for this plugin."
440
+ msgstr "Ce thème enfant n’a pas été configuré pour cette extension."
441
+
442
+ #: includes/classes/UI.php:330
443
+ msgid "This theme appears OK to use as a Child theme."
444
+ msgstr "Ce thème semble correct pour l’utilisation en tant que thème enfant."
445
+
446
+ #: includes/classes/UI.php:329
447
+ msgid "This child theme appears to be functioning correctly."
448
+ msgstr "Ce thème enfant semble fonctionner correctement."
449
+
450
+ #: includes/classes/UI.php:328
451
+ msgid "<p>Please select a stylesheet handling method or check \"Ignore parent theme stylesheets\" (see step 6, below).</p>"
452
+ msgstr "<p>Sélectionnez une méthode de gestion de la feuille de style ou cochez « Ignorer les feuilles de style du thème parent » (voir l'étape 6 ci-dessous).</p>"
453
+
454
+ #: includes/classes/UI.php:327
455
+ msgid "This child theme uses the parent stylesheet but does not load the parent theme's <code>style.css</code> file."
456
+ msgstr "Ce thème enfant utilise la feuille de style parent mais ne charge pas le fichier <code>style.css</code> du thème parent."
457
+
458
+ #: includes/classes/UI.php:326
459
+ msgid "<p>If you want to customize styles using this plugin, please click \"Configure Child Theme\" again to add this to the settings.</p>"
460
+ msgstr "<p>Si vous souhaitez personnaliser les styles à l’aide de ce plugin, cliquez à nouveau sur « Configurer thème enfant » pour ajouter ceci aux paramètres.</p>"
461
+
462
+ #: includes/classes/UI.php:325
463
+ msgid "This child theme does not load a Configurator stylesheet."
464
+ msgstr "Ce thème enfant ne charge pas un configurateur de feuille de style."
465
+
466
+ #: includes/classes/UI.php:324
467
+ msgid "<p>This is common with older themes but requires the use of <code>@import</code>, which is no longer recommended. You can try to resolve this using the \"Repair header template\" option (see step 6, \"Additional handling options\", below).</p>"
468
+ msgstr "<p>Ceci est courant avec les thèmes anciens, mais nécessite l’utilisation de <code>@import</code>, ce qui n’est plus recommandé. Vous pouvez essayer de résoudre ce problème en utilisant l’option « Réparer le modèle d'en-tête » (voir l'étape 6, « Options de manipulation supplémentaires » ci-dessous).</p>"
469
+
470
+ #: includes/classes/UI.php:323
471
+ msgid "This theme loads the parent theme's <code>style.css</code> file outside the wp_styles queue."
472
+ msgstr "Ce thème charge le fichier <code>style.css</code> du thème parent à l’extérieur de la file d’attente wp_styles."
473
+
474
+ #: includes/classes/UI.php:322
475
+ msgid "<p>This makes it difficult for plugins to override these styles. You can try to resolve this using the \"Repair header template\" option (Step 6, \"Additional handling options\", below).</p>"
476
+ msgstr "<p>Cela rend difficile pour les plugins de passer outre ces styles. Vous pouvez essayer de résoudre ce problème en utilisant l’option « Réparer l’en-tête d'en-tête » (Étape 6, « Options de manipulation supplémentaires » ci-dessous).</p>"
477
+
478
+ #: includes/classes/UI.php:321
479
+ msgid "This theme loads stylesheets after the wp_styles queue."
480
+ msgstr "Ce thème charge les feuilles de style après la file d’attente wp_styles."
481
+
482
+ #: includes/classes/UI.php:320
483
+ msgid "Do Not Activate \"%s\"! A PHP FATAL ERROR has been detected."
484
+ msgstr "Ne pas activer « %s » ! Une erreur fatale PHP a été détectée."
485
+
486
+ #: includes/classes/UI.php:315
487
+ msgid "The theme \"%s\" generated unexpected PHP debug output."
488
+ msgstr "Le thème « %s » a généré une sortie de débogage PHP inattendue."
489
+
490
+ #: includes/classes/UI.php:314
491
+ msgid "Checking"
492
+ msgstr "Vérification"
493
+
494
+ #: includes/classes/UI.php:313
495
+ msgid "Updating"
496
+ msgstr "Mise à jour"
497
+
498
+ #: includes/classes/UI.php:312
499
+ msgid "No Styles Available. Check Parent/Child settings."
500
+ msgstr "Aucun style disponible. Vérifiez les paramètres parent / enfant."
501
+
502
+ #: includes/classes/UI.php:294
503
+ msgid "Are you sure you wish to RESET? This will destroy any work you have done in the Configurator."
504
+ msgstr "Êtes-vous sûr de vouloir RÉINITIALISER ? Cela détruira tout le travail que vous avez effectué dans le configurateur."
505
+
506
+ #: includes/forms/settings-errors.php:32
507
+ msgid "Child Theme <strong>%s</strong> has been generated successfully."
508
+ msgstr "Le thème enfant <strong>%s</strong> a été généré avec succès."
509
+
510
+ #: includes/forms/settings-errors.php:20
511
+ msgid "Child Theme <strong>%s</strong> has been reset. Please configure it using the settings below."
512
+ msgstr "Le thème enfant <strong>%s</strong> a été réinitialisé. Veuillez le configurer en utilisant les réglages ci-dessous."
513
+
514
+ #: includes/classes/UI.php:36
515
+ msgid "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
516
+ msgstr "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
517
+
518
+ #: includes/classes/Admin.php:651
519
+ msgid "Could not upgrade child theme"
520
+ msgstr "Impossible de mette à niveau le thème enfant"
521
+
522
+ #: includes/classes/Admin.php:542
523
+ msgid "Please select a valid Child Theme."
524
+ msgstr "Sélectionnez un thème enfant valide."
525
+
526
+ #. Author URI of the plugin/theme
527
+ msgid "http://www.lilaeamedia.com"
528
+ msgstr "http://www.lilaeamedia.com"
529
+
530
+ #. Author of the plugin/theme
531
+ msgid "Lilaea Media"
532
+ msgstr "Lilaea Media"
533
+
534
+ #. Plugin URI of the plugin/theme
535
+ msgid "http://www.childthemeconfigurator.com"
536
+ msgstr "http://www.childthemeconfigurator.com"
537
+
538
+ #: includes/forms/webfonts.php:20
539
+ msgid "Use <code>@import url( [path] );</code> to link additional stylesheets. Child Theme Configurator uses the <code>@import</code> keyword to identify them and convert them to <code>&lt;link&gt;</code> tags. <strong>Example:</strong>"
540
+ msgstr "Utilisez <code>@import url ([chemin d'accès]);</code> pour lier des feuilles de style supplémentaires. Child Theme Configurator utilise le mot-clé <code>@import</code> pour les identifier et les convertir en <code>&lt;lien&gt;</code> étiquettes. <strong>Exemple :</strong>"
541
+
542
+ #: includes/forms/webfonts.php:18
543
+ msgid "Linked Stylesheets"
544
+ msgstr "Feuilles de styles liés"
545
+
546
+ #: includes/forms/themepreview.php:21
547
+ msgid "Not Network Enabled"
548
+ msgstr "Non activé en réseau"
549
+
550
+ #: includes/forms/themepreview.php:17
551
+ msgid " in default Site"
552
+ msgstr " dans site par défaut"
553
+
554
+ #: includes/forms/themepreview.php:16
555
+ msgid "Preview"
556
+ msgstr "Aperçu"
557
+
558
+ #: includes/forms/themepreview.php:14
559
+ msgid "By: "
560
+ msgstr "Par : "
561
+
562
+ #: includes/forms/themepreview.php:12
563
+ msgid "Version: "
564
+ msgstr "Version : "
565
+
566
+ #: includes/forms/tabs.php:33
567
+ msgid "Files"
568
+ msgstr "Fichiers"
569
+
570
+ #: includes/forms/tabs.php:22
571
+ msgid "Web Fonts"
572
+ msgstr "Polices web"
573
+
574
+ #: includes/forms/tabs.php:17
575
+ msgid "Property/ Value"
576
+ msgstr "Propriété / Valeur"
577
+
578
+ #: includes/forms/tabs.php:14
579
+ msgid "Query/ Selector"
580
+ msgstr "Requête / Sélecteur"
581
+
582
+ #: includes/forms/tabs.php:11
583
+ msgid "Parent/ Child"
584
+ msgstr "Parent / Enfant"
585
+
586
+ #: includes/forms/rule-value.php:27
587
+ msgid "Value"
588
+ msgstr "Valeur"
589
+
590
+ #: includes/forms/related.php:1
591
+ msgid "Lilaea Media - Responsive Tools for a Mobile World"
592
+ msgstr "Lilaea Media - Outils responsive pour un monde mobile"
593
+
594
+ #: includes/forms/related.php:1
595
+ msgid "Get CTC Pro and other tools"
596
+ msgstr "Obtenez CTC Pro et d’autres outils"
597
+
598
+ #: includes/forms/related.php:1
599
+ msgid "Click help"
600
+ msgstr "Cliquez sur l’aide"
601
+
602
+ #: includes/forms/related.php:1
603
+ msgid "New user?"
604
+ msgstr "Nouvel utilisateur ?"
605
+
606
+ #: includes/forms/query-selector.php:92
607
+ msgid "Values entered here are merged into existing child styles or added to the child stylesheet if they do not exist in the parent."
608
+ msgstr "Les valeurs entrées ici sont fusionnées dans des styles enfants existants ou ajoutées à la feuille de style enfant si elles n’existent pas dans le parent."
609
+
610
+ #: includes/forms/query-selector.php:92
611
+ msgid "Use to enter shorthand CSS or new @media queries and selectors."
612
+ msgstr "Utilisé pour saisir les propriétés raccourcies CSS ou nouveaux @media queries et sélecteurs."
613
+
614
+ #: includes/forms/query-selector.php:90
615
+ msgid "Raw CSS"
616
+ msgstr "Raw CSS"
617
+
618
+ #: includes/forms/query-selector.php:87 includes/forms/webfonts.php:15
619
+ msgid "Save"
620
+ msgstr "Enregistrer"
621
+
622
+ #: includes/forms/query-selector.php:85
623
+ msgid "Copy Selector"
624
+ msgstr "Copier le sélecteur"
625
+
626
+ #: includes/forms/query-selector.php:76
627
+ msgid "Order"
628
+ msgstr "Trier"
629
+
630
+ #: includes/forms/query-selector.php:66
631
+ msgid "New Property"
632
+ msgstr "Nouvelle propriété"
633
+
634
+ #: includes/forms/query-selector.php:60
635
+ msgid "Child Value"
636
+ msgstr "Valeur de l’enfant"
637
+
638
+ #: includes/forms/query-selector.php:54 includes/forms/rule-value.php:14
639
+ msgid "Property"
640
+ msgstr "Propriétés"
641
+
642
+ #: includes/forms/query-selector.php:47
643
+ msgid "Delete Child Values"
644
+ msgstr "Supprimer les valeurs de l’enfant"
645
+
646
+ #: includes/forms/query-selector.php:46
647
+ msgid "Save Child Values"
648
+ msgstr "Sauvegarder les valeurs de l’enfant"
649
+
650
+ #: includes/forms/query-selector.php:38 includes/forms/rule-value.php:30
651
+ msgid "Sample"
652
+ msgstr "Échantillon"
653
+
654
+ #: includes/forms/query-selector.php:25
655
+ msgid "Selector"
656
+ msgstr "Sélecteur"
657
+
658
+ #: includes/forms/debug-toggle.php:8
659
+ msgid "Debug"
660
+ msgstr "Debug"
661
+
662
+ #: includes/forms/parent-child.php:150 includes/forms/parent-child.php:399
663
+ msgid "NOTE:"
664
+ msgstr "NOTE :"
665
+
666
+ #: includes/forms/parent-child.php:378 includes/forms/parent-child.php:382
667
+ msgid "Version"
668
+ msgstr "Version"
669
+
670
+ #: includes/forms/parent-child.php:372
671
+ msgid "Tags"
672
+ msgstr "Étiquettes"
673
+
674
+ #: includes/forms/parent-child.php:368
675
+ msgid "Theme Tags"
676
+ msgstr "Étiquettes du thème"
677
+
678
+ #: includes/forms/parent-child.php:362
679
+ msgid "Description"
680
+ msgstr "Description"
681
+
682
+ #: includes/forms/parent-child.php:358
683
+ msgid "Theme Description"
684
+ msgstr "Description du thème"
685
+
686
+ #: includes/forms/parent-child.php:348 includes/forms/parent-child.php:352
687
+ msgid "Author Website"
688
+ msgstr "Site web de l’auteur"
689
+
690
+ #: includes/forms/parent-child.php:338 includes/forms/parent-child.php:342
691
+ msgid "Author"
692
+ msgstr "Auteur"
693
+
694
+ #: includes/forms/parent-child.php:328 includes/forms/parent-child.php:332
695
+ msgid "Theme Website"
696
+ msgstr "Site web du thème"
697
+
698
+ #: includes/forms/parent-child.php:322
699
+ msgid "Theme Name"
700
+ msgstr "Nom du thème"
701
+
702
+ #: includes/forms/parent-child.php:318
703
+ msgid "Child Theme Name"
704
+ msgstr "Nom du thème enfant"
705
+
706
+ #: includes/forms/main.php:35
707
+ msgid "version"
708
+ msgstr "version"
709
+
710
+ #: includes/forms/images.php:13
711
+ msgid "Delete child theme images by selecting them here."
712
+ msgstr "Supprimez les images du thème enfant en les sélectionnant ici."
713
+
714
+ #: includes/forms/images.php:10
715
+ msgid "Child Theme Images"
716
+ msgstr "Images du thèmes enfant"
717
+
718
+ #: includes/forms/files.php:77
719
+ msgid "Make read-only"
720
+ msgstr "Mettre en lecture seule"
721
+
722
+ #: includes/forms/files.php:71
723
+ msgid "Attempt to reset child theme permissions to user ownership and read-only access."
724
+ msgstr "Essayez de réinitialiser les autorisations du thème enfant à propriété utilisateur et à lecture seule."
725
+
726
+ #: includes/forms/files.php:68
727
+ msgid "Secure Child Theme"
728
+ msgstr "Thème enfant sécurisé"
729
+
730
+ #: includes/forms/files.php:57
731
+ msgid "Export Child Theme as Zip Archive"
732
+ msgstr "Exporter un thème enfant comme archive Zip"
733
+
734
+ #: includes/forms/files.php:44
735
+ msgid "The theme screenshot should be a 4:3 ratio (e.g., 880px x 660px) JPG, PNG or GIF. It will be renamed <code>screenshot</code>."
736
+ msgstr "La capture d’écran du thème devrait avoir un rapport 4:3 (par exemple, 880x660 px) JPG, PNG ou GIF. Elle sera renommé <code>screenshot</code>."
737
+
738
+ #: includes/forms/files.php:41
739
+ msgid "Upload New Screenshot"
740
+ msgstr "Téléverser une nouvelle capture d’écran"
741
+
742
+ #: includes/forms/files.php:32
743
+ msgid "Child Theme Screenshot"
744
+ msgstr "Capture d’écran du thème enfant"
745
+
746
+ #: includes/forms/files.php:25 includes/forms/files.php:51
747
+ msgid "Upload"
748
+ msgstr "Envoi"
749
+
750
+ #: includes/forms/files.php:18
751
+ msgid "Theme images reside under the <code>images</code> directory in your child theme and are meant for stylesheet use only. Use the Media Library for content images."
752
+ msgstr "Les images du thème résident dans le répertoire <code>images</code> dans votre thème enfant et ne sont utilisées que pour l’utilisation de la feuille de style. Utilisez la bibliothèque multimédia pour les images de contenu."
753
+
754
+ #: includes/forms/files.php:15
755
+ msgid "Upload New Child Theme Image"
756
+ msgstr "Télécharger une nouvelle image pour le thème enfant"
757
+
758
+ #: includes/forms/file-form-buttons.php:13 includes/forms/images.php:21
759
+ msgid "Delete Selected"
760
+ msgstr "Supprimer sélection"
761
+
762
+ #: includes/forms/file-form-buttons.php:13
763
+ msgid "Copy Selected to Child Theme"
764
+ msgstr "Copier la sélection dans le thème enfant"
765
+
766
+ #: includes/forms/file-form-buttons.php:9
767
+ msgid "Make Selected Writable"
768
+ msgstr "Rendre la sélection modifiable"
769
+
770
+ #: includes/forms/fileform.php:30
771
+ msgid "Delete child theme templates or make them writable by selecting them here. Writable files are displayed in <span style=\"color:red\">red</span>."
772
+ msgstr "Supprimez les modèles du thème enfant ou rendez-les modifiables en les sélectionnant ici. Les fichiers modifiables sont affichés en <span style=\"color:red\">rouge</span>."
773
+
774
+ #: includes/forms/fileform.php:29
775
+ msgid "Delete child theme templates by selecting them here."
776
+ msgstr "Supprimez les modèles du thème enfant en les sélectionnant ici."
777
+
778
+ #: includes/forms/fileform.php:19
779
+ msgid "The %s file is generated separately and cannot be copied here."
780
+ msgstr "Le fichier %s est généré séparément et ne peut pas être copié ici."
781
+
782
+ #: includes/forms/fileform.php:17
783
+ msgid "CAUTION: If your child theme is active, the child theme version of the file will be used instead of the parent immediately after it is copied."
784
+ msgstr "ATTENTION : si votre thème enfant est actif, la version du fichier du thème enfant sera utilisée à la place de celle du parent qui vient d’être copiée."
785
+
786
+ #: includes/forms/fileform.php:9
787
+ msgid "Child Theme Files"
788
+ msgstr "Fichiers thème enfant"
789
+
790
+ #: includes/forms/fileform.php:9
791
+ msgid "Parent Templates"
792
+ msgstr "Modèles parents"
793
+
794
+ #: includes/classes/UI.php:119
795
+ msgid "Click here to edit template files using the Theme Editor"
796
+ msgstr "Cliquez ici pour éditer les fichiers modèles à l'aide de l’éditeur de thème"
797
+
798
+ #: includes/classes/UI.php:115
799
+ msgid "The Theme editor has been disabled. Template files must be edited offline."
800
+ msgstr "L'éditeur de thème a été désactivé. Les fichiers du modèle doivent être édités en mode hors connexion."
801
+
802
+ #: includes/forms/backups.php:10
803
+ msgid "Restore backup from"
804
+ msgstr "Restaurer la sauvegarde à partir de"
805
+
806
+ #: includes/forms/backup.php:8
807
+ msgid "Backup"
808
+ msgstr "Sauvegarde"
809
+
810
+ #: includes/forms/addl_tabs.php:7
811
+ msgid "Upgrade"
812
+ msgstr "Mettre à jour"
813
+
814
+ #: includes/forms/addl_panels.php:36
815
+ msgid "Tutorial Videos"
816
+ msgstr "Vidéos didactiques"
817
+
818
+ #: includes/forms/addl_panels.php:35
819
+ msgid "Online Documentation"
820
+ msgstr "Documentation en ligne"
821
+
822
+ #: includes/forms/addl_panels.php:34
823
+ msgid "Top-rated Online Support"
824
+ msgstr "Support en ligne le mieux noté"
825
+
826
+ #: includes/forms/addl_panels.php:31
827
+ msgid "Return to recently edited selectors from a toggleable sidebar."
828
+ msgstr "Revenez aux sélecteurs récemment modifié à partir d'une barre latérale occultable."
829
+
830
+ #: includes/forms/addl_panels.php:31
831
+ msgid "Most recent edits"
832
+ msgstr "Modifications les plus récentes"
833
+
834
+ #: includes/forms/addl_panels.php:30
835
+ msgid "Tweak menus quickly and easily."
836
+ msgstr "Améliorer les menus rapidement et facilement."
837
+
838
+ #: includes/forms/addl_panels.php:30
839
+ msgid "Find styles by Nav Menu"
840
+ msgstr "Trouver des styles par menu Nav"
841
+
842
+ #: includes/forms/addl_panels.php:29
843
+ msgid "Use the \"All Styles\" panel to edit groups of selectors from a single combined list."
844
+ msgstr "Utilisez le panneau « Tous les styles » pour éditer des groupes de sélecteurs à partir d'une seule liste combinée."
845
+
846
+ #: includes/forms/addl_panels.php:29
847
+ msgid "Find related styles"
848
+ msgstr "Trouver des styles connexes"
849
+
850
+ #: includes/forms/addl_panels.php:28
851
+ msgid "Keep the colors you select just a click away. No more searching for hex codes and RGB values."
852
+ msgstr "Gardez les couleurs que vous sélectionnez à portée de clic. Fini les recherches de codes hexadécimaux et de valeurs RVB."
853
+
854
+ #: includes/forms/addl_panels.php:28
855
+ msgid "Color Palettes"
856
+ msgstr "Palettes de couleurs"
857
+
858
+ #: includes/forms/addl_panels.php:27
859
+ msgid "Preview your child theme with a single click."
860
+ msgstr "Prévisualisez votre thème enfant en un seul clic."
861
+
862
+ #: includes/forms/addl_panels.php:27
863
+ msgid "Quick Preview"
864
+ msgstr "Aperçu rapide"
865
+
866
+ #: includes/forms/addl_panels.php:26
867
+ msgid "Apply the power of CTC's top-rated interface to your site's plugin styles. All new design makes it much easier to get the results you want."
868
+ msgstr "Appliquez la puissance de l’interface de qualité de CTC aux styles de l’extension de votre site. La nouvelle conception rend beaucoup plus facile l’obtention des résultats souhaités."
869
+
870
+ #: includes/forms/addl_panels.php:25
871
+ msgid "Customize Plugin Stylesheets"
872
+ msgstr "Personnaliser les feuilles de styles d’extensions"
873
+
874
+ #: includes/forms/addl_panels.php:23
875
+ msgid "We've packed in more features to make design work quicker and easier with <strong>Child Theme Configurator Pro.</strong>"
876
+ msgstr "Nous avons ajouté plus de fonctionnalités pour rendre le travail de conception plus rapide et plus facile avec <strong>Child Theme Configurator Pro.</strong>"
877
+
878
+ #: includes/forms/addl_panels.php:22
879
+ msgid "Designed by Developers Who Use It Every Day."
880
+ msgstr "Conçu par des développeurs qui l’utilisent tous les jours."
881
+
882
+ #: includes/forms/addl_panels.php:21
883
+ msgid "Thousands of users have already seen the benefits of using Child Theme Configurator. If you spend any amount of time customizing WordPress, CTC Pro will help maximize your productivity."
884
+ msgstr "Des milliers d’utilisateurs ont déjà vu les avantages de l’utilisation de Child Theme Configurator. Si vous passez du temps à personnaliser WordPress, CTC Pro vous aidera à maximiser votre productivité."
885
+
886
+ #: includes/forms/addl_panels.php:20
887
+ msgid "Customizing WordPress just got even easier."
888
+ msgstr "Personnaliser WordPress est devenu encore plus facile."
889
+
890
+ #: includes/forms/addl_panels.php:19
891
+ msgid "Learn more about CTC Pro"
892
+ msgstr "En savoir plus sur CTC Pro"
893
+
894
+ #: includes/forms/addl_panels.php:15
895
+ msgid "IntelliWidget Responsive Menu lets you break free from your theme’s built-in responsive menu options and gives you complete control over the user experience."
896
+ msgstr "Le menu IntelliWidget responsive vous permet de vous libérer des options de menu responsive intégrées de votre thème et vous donne un contrôle total sur l’expérience utilisateur."
897
+
898
+ #: includes/forms/addl_panels.php:14 includes/forms/addl_panels.php:15
899
+ msgid "Learn more about IW Responsive Menu"
900
+ msgstr "En savoir plus sur IW Responsive Menu"
901
+
902
+ #: includes/forms/addl_panels.php:13 includes/forms/addl_panels.php:16
903
+ msgid "Learn more"
904
+ msgstr "En savoir plus"
905
+
906
+ #: includes/forms/addl_panels.php:12
907
+ msgid "IntelliWidget is a versatile widget manager that does the work of multiple plugins by combining custom page menus, featured posts, sliders and other dynamic content features into a single plugin that can display on a per-page or site-wide basis."
908
+ msgstr "IntelliWidget est un gestionnaire de widgets polyvalent qui effectue le travail de plusieurs extensions en combinant des menus de pages personnalisées, des articles mis en avant, des diaporamas et d'autres fonctionnalités de contenu dynamique en un seul plugin pouvant être affiché par page ou sur l’ensemble du site."
909
+
910
+ #: includes/forms/addl_panels.php:11 includes/forms/addl_panels.php:12
911
+ msgid "Learn more about IntelliWidget"
912
+ msgstr "En savoir plus sur IntelliWidget"
913
+
914
+ #: includes/forms/addl_panels.php:10 includes/forms/addl_panels.php:40
915
+ msgid "*Prices and offers subject to change."
916
+ msgstr "* Prix et offres susceptibles d'être modifiés."
917
+
918
+ #: includes/forms/addl_panels.php:10 includes/forms/addl_panels.php:40
919
+ msgid "Order Now"
920
+ msgstr "Commandez maintenant"
921
+
922
+ #: includes/forms/addl_panels.php:9 includes/forms/addl_panels.php:39
923
+ msgid "and get <strong>20% off entire order</strong>."
924
+ msgstr "et obtenez <strong>20% de réduction sur le total de votre commande</strong>."
925
+
926
+ #: includes/forms/addl_panels.php:9 includes/forms/addl_panels.php:39
927
+ msgid "wordpress-org"
928
+ msgstr "wordpress-org"
929
+
930
+ #: includes/forms/addl_panels.php:9 includes/forms/addl_panels.php:39
931
+ msgid "Use coupon code"
932
+ msgstr "Utiliser le code promo"
933
+
934
+ #: includes/forms/addl_css.php:11
935
+ msgid "Stylesheets that are currently being loaded by the parent theme are automatically selected below (except for Bootstrap stylesheets which add a large amount data to the configuration). To further reduce overhead, select only the additional stylesheets you wish to customize."
936
+ msgstr "Les feuilles de styles actuellement chargées par le thème principal sont automatiquement sélectionnées ci-dessous (à l’exception des feuilles de style Bootstrap qui ajoutent une grande quantité de données à la configuration). Pour réduire davantage la charge, sélectionnez uniquement les feuilles de style supplémentaires que vous souhaitez personnaliser."
937
+
938
+ #: includes/forms/addl_css.php:7
939
+ msgid "Parse additional stylesheets:"
940
+ msgstr "Analyser des feuilles de style supplémentaires :"
941
+
942
+ #: includes/forms/notices.php:68
943
+ msgid "<strong>However, some styles could not be parsed due to memory limits.</strong> Try deselecting \"Additional Stylesheets\" below and click \"Generate/Rebuild Child Theme Files\". %sWhy am I seeing this?%s"
944
+ msgstr "<strong>Cependant, certains styles n’ont pu être analysés en raison des limites de la mémoire.</strong> Essayez de désélectionner « Feuilles de styles supplémentaires » ci-dessous et cliquez sur « Générer / Reconstruire les fichiers du thème enfants ». %sPourquoi est-ce que je vois ça ?%s"
945
+
946
+ #: includes/forms/notices.php:60
947
+ msgid "Child Theme Configurator needs to update its internal data. Please set your preferences below and click \"Generate Child Theme Files\" to update your configuration."
948
+ msgstr "Child Theme Configurator doit mettre à jour ses données internes. Configurez vos préférences ci-dessous et cliquez sur « Générer des fichiers de thème pour enfants » pour mettre à jour votre configuration."
949
+
950
+ #: includes/forms/notices.php:51
951
+ msgid "Correct Child Theme Permissions"
952
+ msgstr "Corriger les droits du thème enfants"
953
+
954
+ #: includes/forms/notices.php:32
955
+ msgid "<li>Run PHP under Apache with suEXEC (contact your web host).</li>"
956
+ msgstr "<li>Exécutez PHP sous Apache avec suEXEC (contactez votre hébergeur).</li>"
957
+
958
+ #: includes/forms/notices.php:30
959
+ msgid "<li><a target=\"_blank\" href=\"http://codex.wordpress.org/Changing_File_Permissions\" title=\"Changing File Permissions\">Set write permissions on the server manually</a> (not recommended).</li>"
960
+ msgstr "<li><a target=\"_blank\" href=\"http://codex.wordpress.org/Changing_File_Permissions\" title=\"Modification des autorisations de fichier\">Définir les autorisations d’écriture manuellement sur le serveur</a> (déconseillé).</li>"
961
+
962
+ #: includes/forms/notices.php:29
963
+ msgid "<li><a target=\"_blank\" href=\"http://technet.microsoft.com/en-us/library/cc771170\" title=\"Setting Application Pool Identity\">Assign WordPress to an application pool that has write permissions</a> (Windows IIS systems).</li>"
964
+ msgstr "<li><a target=\"_blank\" href=\"http://technet.microsoft.com/en-us/library/cc771170\" title=\"Définir l’identité du pool d’applications\">Affectez WordPress à un pool d’applications ayant des autorisations d’écriture</a> (Systèmes Windows IIS).</li>"
965
+
966
+ #: includes/forms/notices.php:27
967
+ msgid "<li><a target=\"_blank\" href=\"http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants\" title=\"Editin wp-config.php\">Add your FTP/SSH credentials to the WordPress config file</a>.</li>"
968
+ msgstr "<li><a target=\"_blank\" href=\"http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants\" title=\"Édition de wp-config.php\">Ajoutez vos identifiants FTP / SSH au fichier de configuration WordPress</a>.</li>"
969
+
970
+ #: includes/forms/notices.php:24
971
+ msgid "Make files writable"
972
+ msgstr "Créer des fichiers pouvant être écrits"
973
+
974
+ #: includes/forms/notices.php:20
975
+ msgid "<li>Temporarily set write permissions by clicking the button below. When you are finished editing, revert to read-only by clicking \"Make read-only\" under the \"Files\" tab.</li>"
976
+ msgstr "<li>Définissez temporairement les autorisations d’écriture en cliquant sur le bouton ci-dessous. Lorsque vous avez fini d’éditer, revenez en lecture seule en cliquant sur « Créer en lecture seule » sous l'onglet « Fichiers ».</li>"
977
+
978
+ #: includes/forms/notices.php:12
979
+ msgid "The child theme is in read-only mode and Child Theme Configurator cannot apply changes. Click to see options"
980
+ msgstr "Le thème enfant est en mode lecture seule et Child Theme Configurator ne peut pas appliquer les modifications. Cliquez pour voir les options"
981
+
982
+ #: includes/classes/Admin.php:1492
983
+ msgid "Could not upload file."
984
+ msgstr "Impossible de télécharger le fichier."
985
+
986
+ #: includes/classes/Admin.php:1418
987
+ msgid "There were errors while resetting permissions."
988
+ msgstr "Il y a eu des erreurs lors de la réinitialisation des autorisations."
989
+
990
+ #: includes/classes/Admin.php:1317
991
+ msgid "Could not set write permissions."
992
+ msgstr "Impossible de définir les autorisations d’écriture."
993
+
994
+ #: includes/classes/Admin.php:733
995
+ msgid "Your stylesheet is not writable."
996
+ msgstr "Votre feuille de style n’est pas accessible en écriture."
997
+
998
+ #: includes/classes/Admin.php:570
999
+ msgid "Your theme directories are not writable."
1000
+ msgstr "Vos répertoires de thème ne sont pas accessibles en écriture."
1001
+
1002
+ #: includes/classes/Admin.php:551
1003
+ msgid "<strong>%s</strong> exists. Please enter a different Child Theme template name."
1004
+ msgstr "<strong>%s</strong> Existe. Entrez un autre nom de modèle du thème enfant."
1005
+
1006
+ #: includes/classes/Admin.php:546
1007
+ msgid "Please enter a valid Child Theme directory name."
1008
+ msgstr "Entrez un nom de répertoire du thème enfant valide."
1009
+
1010
+ #: includes/classes/Admin.php:537
1011
+ msgid "Please select a valid Parent Theme."
1012
+ msgstr "Sélectionnez un thème parent valide."
1013
+
1014
+ #: includes/classes/Admin.php:534
1015
+ msgid "%s does not exist. Please select a valid Parent Theme."
1016
+ msgstr "%s n’existe pas. Sélectionnez un thème parent valide."
1017
+
1018
+ #: includes/classes/Admin.php:501
1019
+ msgid "You do not have permission to configure child themes."
1020
+ msgstr "Vous n’avez pas la permission de configurer des thèmes enfants."
1021
+
1022
+ #: includes/classes/Admin.php:421
1023
+ msgid "The Functions file is required and cannot be deleted."
1024
+ msgstr "Le fichier fonctions est requis et ne peut être supprimé."
1025
+
1026
+ #: includes/classes/Admin.php:395
1027
+ msgid "Zip file creation failed."
1028
+ msgstr "La création du fichier zip a échoué."
1029
+
1030
+ #: includes/classes/UI.php:309
1031
+ msgid "%sWhy am I seeing this?%s"
1032
+ msgstr "%sPourquoi est-ce que je vois ceci ?%s"
1033
+
1034
+ #: includes/classes/UI.php:308
1035
+ msgid "Deactivating or replacing plugins may resolve this issue."
1036
+ msgstr "La désactivation ou le remplacement des extensions peut résoudre ce problème."
1037
+
1038
+ #: includes/classes/UI.php:307
1039
+ msgid "Conflicting or out-of-date jQuery libraries were loaded by another plugin:"
1040
+ msgstr "Les bibliothèques jQuery conflictuelles ou périmées ont été chargées par une autre extension :"
1041
+
1042
+ #: includes/classes/UI.php:306
1043
+ msgid "The page could not be loaded correctly."
1044
+ msgstr "La page n’a pas pu être chargée correctement."
1045
+
1046
+ #: includes/classes/UI.php:305
1047
+ msgid "<strong>%s</strong> exists. Please enter a different Child Theme"
1048
+ msgstr "<strong>%s</strong> existe. Entrez un autre thème enfant"
1049
+
1050
+ #: includes/classes/UI.php:304
1051
+ msgid "Please enter a valid Child Theme name."
1052
+ msgstr "Veuillez entrer un nom valide pour le thème enfant."
1053
+
1054
+ #: includes/classes/UI.php:303
1055
+ msgid "Please enter a valid Child Theme."
1056
+ msgstr "Veuillez entrer un thème enfant valide."
1057
+
1058
+ #: includes/classes/UI.php:302
1059
+ msgid "(Child Only)"
1060
+ msgstr "(Enfant seulement)"
1061
+
1062
+ #: includes/classes/UI.php:301
1063
+ msgid "The stylesheet cannot be displayed."
1064
+ msgstr "La feuille de style ne peut pas être affichée."
1065
+
1066
+ #: includes/classes/UI.php:300
1067
+ msgid "Rename"
1068
+ msgstr "Renommer"
1069
+
1070
+ #: includes/classes/UI.php:299
1071
+ msgid "Cancel"
1072
+ msgstr "Annuler"
1073
+
1074
+ #: includes/classes/UI.php:298
1075
+ msgid "Edit Selector"
1076
+ msgstr "Modifier le sélecteur"
1077
+
1078
+ #: includes/classes/UI.php:297
1079
+ msgid "Close"
1080
+ msgstr "Fermer"
1081
+
1082
+ #: includes/classes/UI.php:296 includes/forms/rule-value.php:33
1083
+ msgid "Selectors"
1084
+ msgstr "Sélecteurs"
1085
+
1086
+ #: includes/classes/UI.php:295
1087
+ msgid "<span style=\"font-size:10px\">!</span>"
1088
+ msgstr "<span style=\"font-size:10px\">!</span>"
1089
+
1090
+ #: includes/classes/UI.php:292
1091
+ msgid "Color"
1092
+ msgstr "Couleur"
1093
+
1094
+ #: includes/classes/UI.php:291
1095
+ msgid "Style"
1096
+ msgstr "Style"
1097
+
1098
+ #: includes/classes/UI.php:290
1099
+ msgid "Width/None"
1100
+ msgstr "Largeur / Aucun"
1101
+
1102
+ #: includes/classes/UI.php:289
1103
+ msgid "Color 2"
1104
+ msgstr "Couleur 2"
1105
+
1106
+ #: includes/classes/UI.php:288
1107
+ msgid "Color 1"
1108
+ msgstr "Couleur 1"
1109
+
1110
+ #: includes/classes/UI.php:287
1111
+ msgid "Origin"
1112
+ msgstr "Origine"
1113
+
1114
+ #: includes/classes/UI.php:286
1115
+ msgid "URL/None"
1116
+ msgstr "URL / Aucun"
1117
+
1118
+ #: includes/forms/settings-errors.php:49 includes/forms/themepreview.php:18
1119
+ msgid "Live Preview"
1120
+ msgstr "Aperçu en direct"
1121
+
1122
+ #: includes/forms/settings-errors.php:42 includes/forms/themepreview.php:20
1123
+ msgid "Go to Themes"
1124
+ msgstr "Aller aux thèmes"
1125
+
1126
+ #: includes/forms/settings-errors.php:36
1127
+ msgid "IMPORTANT:"
1128
+ msgstr "IMPORTANT :"
1129
+
1130
+ #: includes/forms/settings-errors.php:29
1131
+ msgid "Child Theme files modified successfully."
1132
+ msgstr "Les fichiers enfants ont été modifiés avec succès."
1133
+
1134
+ #: includes/classes/Core.php:138
1135
+ msgid "Child Theme Configurator requires WordPress version %s or later."
1136
+ msgstr "Child Theme Configurator nécessite la version %s ou ultérieure de WordPress."
1137
+
1138
+ #: includes/classes/Core.php:98 includes/classes/Core.php:109
1139
+ #: includes/classes/Core.php:120
1140
+ msgid "Child Themes"
1141
+ msgstr "Thèmes enfants"
1142
+
1143
+ #. #-#-#-#-# tmp-child-theme-configurator.pot (Child Theme Configurator
1144
+ #. 2.2.4.1) #-#-#-#-#
1145
+ #. Plugin Name of the plugin/theme
1146
+ #: includes/classes/Core.php:97 includes/classes/Core.php:108
1147
+ #: includes/forms/main.php:35
1148
+ msgid "Child Theme Configurator"
1149
+ msgstr "Child Theme Configurator"
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: lilaeamedia
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8QE5YJ8WE96AJ
4
  Tags: child, theme, child theme, child themes, custom styles, customize styles, customize theme, css, responsive, css editor, child theme editor, child theme generator, child theme creator, style, stylesheet, customizer, childtheme, childthemes
5
  Requires at least: 4.0
6
- Tested up to: 4.7.2
7
- Stable tag: 2.2.4.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -287,6 +287,11 @@ https://www.youtube.com/watch?v=iBiiAgsK4G4
287
  7. Files tab
288
 
289
  == Changelog ==
 
 
 
 
 
290
  = 2.2.4.1 =
291
  * Fix bug in parent dependencies
292
 
@@ -642,7 +647,7 @@ https://www.youtube.com/watch?v=iBiiAgsK4G4
642
  * Initial release.
643
 
644
  == Upgrade Notice ==
645
- 2.2.4.1 IMPORTANT UPDATE - Fixes bug with parent theme stylesheet dependencies.
646
 
647
  == Query/Selector Tab ==
648
 
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8QE5YJ8WE96AJ
4
  Tags: child, theme, child theme, child themes, custom styles, customize styles, customize theme, css, responsive, css editor, child theme editor, child theme generator, child theme creator, style, stylesheet, customizer, childtheme, childthemes
5
  Requires at least: 4.0
6
+ Tested up to: 4.8
7
+ Stable tag: 2.2.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
287
  7. Files tab
288
 
289
  == Changelog ==
290
+ = 2.2.5 =
291
+ * Fixed Preview and Analyzer for some child theme configurations by removing nonce requirement
292
+ * Fixed header not being repaired on first pass with "Repair Header" selected
293
+ * Fixed styles being pruned before new "Raw CSS" styles are added
294
+
295
  = 2.2.4.1 =
296
  * Fix bug in parent dependencies
297
 
647
  * Initial release.
648
 
649
  == Upgrade Notice ==
650
+ 2.2.5 Fixes issues with preview and analyzer.
651
 
652
  == Query/Selector Tab ==
653