2.6.6
- Fixed bug in DE translation module
2.6.5
- Fixed deprecation notice for utf8_encode
2.6.4
- Fixed deprecation notices in Packer.php and CSS.php
2.6.2/2.6.3
- Version updates only.
2.6.1
- Fixed ui-active-state selector where select menu was not being highlighted
2.5.8
- Fixed some stylesheet issues
2.5.7
- Updated for WP 5.6
2.5.6
- WP 5.5 update removed commonL10n – causing scripts to break – replaced with CTC getxt value.
2.5.5
- Removed curly brace syntax from substring argument in Packer class.
2.5.4
- Fixed case where registered styles not showing in queue during analysis.
2.5.3
- Fixes to stylesheet. Updates to help tabs.
2.5.2
- Logic to prevent malformed style properties
- Minor cosmetic changes
2.5.0
- Preview class now evaluates stylesheet hooks as they fire instead of calling them again to prevent function exists errors.
- Tested for PHP version 7.1
- Modified input parser to allow multi-stop background gradients.
2.4.x
- Analyzer now saves all signals on successful child theme regardless of analysis results.
- This fixes a bug in some themes where the enqueue hooks were being rewitten incorrectly after adding web fonts.
- Fixed a serious regression bug created by version 2.4.2.
- Added call to customizer.php to initialize theme mods prior to analyzing child theme
- Deferred copy_theme_mods until after child theme analysis. This allows hooks in Preview to initialize custom theme mods
- Added mpriority (max priority) to CSS object to accommodate multiple irregular stylesheet hooks
- Restored original (pre 2.4.1) version filter hook style_loader_src to child theme stylesheets to prevent caching
- Strip closing php tag from functions.php to prevent premature response header
- Fixed localization issues (thanks @alexclassroom for identifying these)
- Modified style_loader_src hook to only add timestamp under certain conditions to prevent loading delay for most requests. (thanks @anthony750)
- Automatically add action parent RTL stylesheet when child theme does not have one.
- Handle case where parent theme changes queue action incorrectly points to non-existent child theme stylesheet.
- Correctly copies customizer css to child theme.
- Fixed PHP 7.3 compatability issue (thanks @forest-skills for identifying this)
2.3.x
- strip scripts during template scan to prevent false positives
- check file size during template scan to prevent timeout
- changed syntax of statement that was being flagged by WP Defender
- Fixed bug in screenshot copy.
- Fixed incorrect reference to errors array in UI.
- Added ability to rename @media query
- Added height/Width for theme images on Files Tab
- Added test for RTL in Analyzer
- Added test cases for WP Rocket and AutOptimize plugins in Analyzer
- Added redirect for error condition after configurator POST
- Clarified descriptions for certain Analyzer signal conditions
- Set priority of child theme css hook to force load after parent
- Remove pruned selectors from menu
2.2.x
- Modified preview to include all registered stylesheets in queue
- Disable Autoptimize in preview
- Added support for General Sibling Selector (~)
- Fixed CSS class loading FALSE for dictionaries on fresh install
- Fixed using wrong nonce for plugin mode preview (Pro)
- Fixed error thrown when packing negative integers (Pro)
- Disable Pagespeed in preview
- 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
- Fix bug in parent dependencies
- Fix bug where stylesheet dependency arrays are not being initialized
- Add action hook to extend copy theme settings feature
- Display non active tabs, enable upgrade/register before config data is created
- Show raw results after Analysis to help debugging
- Fix javascript not escaping quotes in input fields
- Restored original ajax preview and added fallback method for cross-domain preview
- Fix in javascript affecting Pro users
- Cross domain Parse error
- Showing “reconfigure” message on new install
- Manual upgrade Pro from plugin
- Add pre_option stylesheet and template filters to Preview class
- Use child theme name on duplicate
- Ability to force/unforce dependency
- Identify and handle imported stylesheets, convert to links
- Fixes related to testing if CTC Pro is installed
2.1.x
- change packer class to use standard < 5.4 array syntax
- Loading dictionaries on demand
- Reversed key/value dictionary structure for huge memory improvement
- Added packer class to flatten multidim arrays for huge memory improvement
- Reduced key name lengths throughout
- Improved data validation on inputs
- Require minimum Pro version ( Pro users only )
- Move html output to separate view includes
- Move theme mod routines to own functions
2.0.x
- Fix: preview not parsing parent styles correctly when minimized.
- Fix: cast argument to array in sort functions.
- Updated Child Theme Configurator language template.
- Updated child theme preview class to use is_theme_active and other methods to eliminate conflicts with Jetpack and any other plugin that references the customize manager.
- Updated child theme preview class to send origin headers and run customize_preview_init action along with some other actions.
- Added logic conditions in preview class to help prevent Analyzer from failing in some cases
- Enabled theme zip file export for any selected theme independent of theme currently loaded in Configurator
- Fixed bugs present with servers not running Apache with SuExec
- Fixed issue with Windows servers that do not return C: with filesystem paths
- Automatically set priority of enqueue hook based on value from parent theme
- Made file scan routine more efficient
- Support for background-image as base64 data
- Tweaked analyzer signals
- Updated language template and de_DE files
- Fix: case where child stylesheet link was not being added resulting in “This child theme does not load a Configurator stylesheet” notice
- Fix: fatal error in debug mode
- Minor bug fixes
- New Theme Analyzer automatically checks for issues and determines correct settings
- Step by step setup of Parent/Child settings
- Simplified parent stylesheet handling options
- Option to write new child theme styles to a separate stylesheet
- Uses WordPress style dependencies to ensure correct child theme stylesheet load order
- Automatically repairs themes that use outdated stylesheet handling methods
- Parses parent theme files and only displays templates that can be be overridden by child themes
- Numerous minor bug fixes
1.7.x
- Fix: regression bug in 1.7.9 causing new property menu to fail
- Fix: use nonce when retrieving front-end html to parse default additional stylesheets
- Refactored classes to make Child Theme Configurator more lightweight on front end
- Fix: disable autoload on configuration data options
- Fix: normalize media query and add to menu when added via raw css
- Fix: Margin and Padding shorthand generated incorrectly.
- Addressed case where parent or child theme is in subdirectory.
- Minimized admin CSS.
- Sanitize child theme slug
- Remove cascade load order comments from generated CSS
- Set admin background to prevent theme override
- Refactored background normalization function to better follow CSS specification.
- Check child theme exists function case-insensitive.
- Changed chldthmcfg.init() call to fire on load instead of .ready() to prevent JS conflicts
- Uses spectrum color picker to support transparency and named colors.
- Refactored entire system to support fallback values for any property.
- Fix path when duplicating child theme on first run
- New Feature: “delete child values” button – easily revert custom styles in child theme stylesheet
- Will not write child theme stylesheet if error detected in functions.php
- Fixed minified JS
- Restored multisite admin menu link under Tools by popular demand
- Automatically Network enables new child theme on creation
- Fix for FTP notice – now uses PHP_OS constant to detect win vs nix
- Added duplicate child theme feature
- added dismiss option to warnings by popular demand.
- Changed @import tab to “Web Fonts.” @import statements are automatically converted to enqueued external links.
- Added “Enqueue both parent and child stylesheets” option to enable child theme overrides without using @import.
- Added checks for hard-coded link tags in header template to help resolve incorrect stylesheet load order.
- Fix: “Enqueue child stylesheet” now passes correct value.
- Fix: hide called before iris init
- Fix: @import not being written on rebuild/configure
- Fix: min height on property/value panel
- Only prune child theme selectors on rename
- Removed conflicting wistia javascript link
- New Feature: Enqueue child theme stylesheet option for themes that do not load it.
- New Feature: Child Theme and Author website, description and tag fields.
- Fix: Redesigned UI Javascript using jQuery objects for better browser memory management.
- Fix: Child Theme Stylesheet version is timestamped to force browser reload after changes.
1.6.x
- Fix: Empty functions file created causing inserted markers to be output to browser.
- Fix: check for closed PHP tag in functions file prior to inserting markers
- Fix: undefined constant LILAEAMEDIA_URL
- Fix: logic to determine whether to display config notice
- Fix: incorrect path generation and validation on Windows servers
- Added error handling and notification to prevent jQuery conflicts and out of memory conditions
- Fix: removed max-height on property/value overlay
- Added debug option
- New Feature: Copy selector button for Raw CSS textarea on Query/Selector tab.
- Fix: Menus rendering incorrectly for RTL locales
- Fix: Border-top etc. not being written correctly to stylesheet
- Fix: Refactored ajax semaphore logic and flow
- New Feature: Better child theme handling for multisite. Moved interface to Themes menu and check for network enabled.
- Fix: Restrict child theme configurator access to install_themes capability
- Fix: Preview links to Themes admin if not network enabled to prevent ‘Cheatin, uh?’ error.
- Fix: only users with “install_themes” capability have access to Child Theme Configurator. This resolves permission issues with both multisite and single site installs. MULTISITE USERS: The Admin HAS MOVED to Network Admin > Themes > Child Themes for better handling for multisite (network) installs.
- Fix: Regular expression introduced in version 1.6.2 parses selectors incorrectly.
- Fix: replaced wp_normalize_path with class method to support legacy WP versions
- Fix: support for multiple layered background images
- Fix: background:none being parsed into gradient origin parameter
- Fix: support for data URIs
- Fix: support for *= and ^= notation in selectors
- Fix: add check if theme uses hard-wired stylesheet link and alert to use @import instead of link option
- Fix: conflicts with using jQuery UI from CDN – using local version of 1.11.2 Widget/Menu/Selectmenu instead
- Fix: using wp-color-picker handle instead of iris as dependency to make sure wpColorPicker() methods are loaded
- Fix: copy parent theme widgets logic is different when child theme is active
- New Feature: option to load parent stylesheet using wp_enqueue_style (link), @import or none.
- Thanks to cmwwebfx and Shapeshifter3 for pushing me on this
- New Feature: automatically-generated slug and name
- New Feature: restore from backup and reset options
- New Feature: backup files to “Child Theme Files” on Files Tab so they can be deleted
- New Feature: Added new theme chooser select menu with screenshot, theme info and link to live preview.
- Fix: Admin scripts now only load when CTC page is being viewed.
- Fix: parent CSS preview to correctly display all parsed parent stylesheets in sequence
- Fix: Refactored throughout for maintainability
1.5.x
- New Feature: Load imported stylesheets into the CTC admin so web fonts can be previewed.
- Set preview swatch to z-index -1 to prevent it from covering up the controls
- Spread config data across multiple option records to prevent out of memory errors with large stylesheets.
- Do not automatically select Bootstrap CSS files as additional stylesheets to (greatly) reduce overhead.
- Add jQuery UI styles that are no longer being loaded by default in the WP admin (autoselect menus).
- Fixed a bug in the way zero values are handled that was breaking css output in certain situations
- Added regex filter for non-printable (e.g., null) characters in input strings
- Fixed a bug introduced in v1.5.2(.1) that copied all of the parent styles to the child theme stylesheet. This should only be an issue for ‘background-image’ styles that reference images in the parent theme and do not have child theme overrides.
- Rolled back changes to the javascript controller that introduced a number of type errors.
- Tweaked preview ajax call to handle ssl.
- Automatically set additional stylesheets to parse based on parent theme links in head.
- Render parent CSS including additional stylesheets
- Added copy option to Parent/Child tab to assign menu locations, sidebars/widgets, custom header, background, and other options to new Child Themes.
- Refactored CTC to use the WP_Filesystem API.
- Non suExec configurations will now require user credentials to add, remove or update Child Theme files.
- Added the ability for you to make the files writable while editing and then make them read-only when you are done.
- You can also set your credentials in wp-config.php: https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
1.4.x
- Removed backreference in main CSS parser regex due to high memory usage.
- Fixed uninitialized variable in files UI.
- Feature: export child themes as zip archive
- Added transform to list of vendor properties
- Bug fixed: parser not loading multiple instances of same @media rulesets
- Refactored uploader to use wp core functions for compatibility and security
- Increased CHLD_THM_CFG_MAX_RECURSE_LOOPS to 1000 to accommodate complex parent frameworks
- Fix: javascript bug
- Fix: regression bug – sanitizing broke raw input selectors
- Fix: escape quotes in text inputs. This has bugged me for a while now.
- Fix: Escape backslash for octal content values. Thanks Laurent for reporting this.
- Fix: Normalize colors to lowercase and short form when possible to prevent duplicate entries in the data
- Refactored the way CTC caches updates and returns them to the UI controller to reduce memory consumption.
- Prevent out of memory fatals when generating new child themes.
- Changed “Scan Parent for Additional Stylesheets” to individual checkbox options for each file with a toggle to show/hide in the Parent/Child tab.
- Added automatic update of form when Parent Theme is changed.
- Pre-populate Parent/Child form when parent slug is passed to CTC options.
- updated parser to match selectors containing parentheses and empty media rulesets
- Tweaked the Files tab options and added check for DISALLOW_FILE_EDIT
- Removed automatic @import rules for additional stylesheets that are loaded.
- Fixed bug caused by new jQuery .css function handling of empty css values (preview swatch).
- New Feature: Theme Files tab:
- Copy parent templates to child themes to be edited using the Theme Editor.
- Remove child theme templates.
- Upload child theme images.
- Remove child theme images.
- Upload child theme screenshot.
1.3.x
- Fixes a bug with the way the @import data is stored that threw errors on php 5.3 and corrupted v1.3.2 @import data.
- New Feature: option to scan parent theme for additional stylesheets. This allows CTC to be used with themes such as “Responsive” by CyberChimps.
- New Feature: automatically copies parent theme screenshot to child.
- Fixed unquoted regex pattern in file path security check function. Thanks to buzcuz for reporting this.
- Updated help tab content. Added additional sanitization of source and target file paths.
- Changed CSS preview to retrieve directly from WordPress Admin instead of remote http GET to prevent caching issues.
- Added loading icon for CSS preview.
- Fixed JS type error on backup toggle.
- Improved extensibility throughout.
1.2.x
- Replace PHP short tags with standard codes.
- New Features: You can now rename selectors in place from the Query/Selector panel. Made stylesheet backup optional. Bugs fixed: Incorrect parsing of background position when ‘0’, fixed type error when background image url value is removed.
- Bugs fixed: “star hack” properties no longer throwing js error. Important flag now works on borders and gradients.
- New features: Link to Query/Selector tab from specific Property/Value selector, new property focus on adding new property. Bugs fixed: clear Query/Selector inputs when loaded selector is empty, use latest min.js script.
1.1.x
- Added check for writability before attempting to create child theme files to avoid fatal error on servers not running suEXEC. Fixed a bug in the ctc_update_cache function that was throwing a fatal JS error when new media queries were saved via the Raw CSS input. Configurator now adds functions.php file to child theme when it does not exist.
- Added reorder sequence and important flag functionality. Fixed bug where multiple inputs with same selector/property combo were assigned the same id. Fixed bug in the shorthand encoding routine.
- Added tutorial video to help tabs.
- Added call to reset_updates() before update_option() to prevent serialization errors.
- Query/Selector panel now defaults to ‘base’
- Fixed bug causing background-image with full urls (http://) to be parsed as gradients
- Fixed bug causing property menu to throw error when selector has no properties
- Fixed sort bug in shorthand parser that was returning properties in wrong order
- Fixed bug that assumed lowercase only for theme slugs. (Thanks to timk)
- Fixed update redirect to execute on first run
- Small bug fix to javascript (casting number to string)
- Fixed major bug where inputs containing ‘0’ were being ignored
- Removed “no leading digits” requirement for theme slug
- Change query sort function to keep parent order of queries without device width rules
- Fixed gettext calls to use static namespace parameter
- Auto populate child theme inputs when existing theme is selected
- Correctly remove border when values are blanked
- Fixed duplicate “new property” bug on Query/Selector panel
- added timestamp to backup file
- Added encode_shorthand function to recombine margin/padding values when all 4 sides are present
- Corrected parsing for certain backgrounds and gradients (e.g., supports hsla color syntax)
- Handle empty selectors
- Ajax load for menus and updates
- Clean up Parent/Child form UI and validation
- Streamlined UI overall
1.0.0
- Initial release.