PluginProbe
Customify / 2.1.1
Customify v2.1.1
2.10.9 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.7.1 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.6.0 1.6.0.1 1.6.5 1.7.0 1.7.1 All 77 releases
← All changes | features/class-CSS_Editor.php +106 -19 1.2.42.1.1 View file →
@@ -10,14 +10,22 @@
10 10 protected static $instance = null;
11 11
12 12 protected function __construct() {
13 13
14 - add_action( 'customify_create_custom_control', array( $this,'cle_create_custom_control'), 10, 1 );
14 + add_action( 'customify_create_custom_control', array( $this, 'cle_create_custom_control' ), 10, 1 );
15 + add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_admin_customizer_styles' ), 10 );
16 + $load_location = PixCustomifyPlugin()->get_plugin_setting( 'style_resources_location', 'wp_head' );
15 17
16 - add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_admin_customizer_styles' ), 10);
18 + if ( function_exists( 'wp_custom_css_cb' ) ) {
19 +// remove_action( 'wp_head', 'wp_custom_css_cb', 101 );
20 +// add_action( $load_location, 'wp_custom_css_cb', 999999999 );
21 + } else {
22 + // keep this for wordpress versions lower than 4.7
23 + add_action( $load_location, array( $this, 'output_dynamic_style' ), 99 );
24 + }
17 25
18 - $load_location = PixCustomifyPlugin::get_plugin_option( 'style_resources_location', 'wp_head' );
19 - add_action( $load_location, array( $this, 'output_dynamic_style' ), 999999999 );
26 + //Check the WordPress version and if there are known problems disable it
27 + add_filter( 'customify_css_live_editor_enabled', array( $this, 'disable_if_wp_incompatible' ), 10, 1 );
20 28 }
21 29
22 30 /**
23 31 * Return an instance of this class.
@@ -26,9 +34,9 @@
26 34 */
27 35 public static function get_instance() {
28 36
29 37 // If the single instance hasn't been set, set it now.
30 - if ( null == self::$instance ) {
38 + if ( is_null( self::$instance ) ) {
31 39 self::$instance = new self;
32 40 }
33 41
34 42 return self::$instance;
@@ -33,34 +41,94 @@
33 41
34 42 return self::$instance;
35 43 }
36 44
37 - function enqueue_admin_customizer_styles(){
45 + function enqueue_admin_customizer_styles() {
46 +
38 47 $dir = plugin_dir_url( __FILE__ );
48 + $dir = rtrim( $dir, 'features/' );
39 49
40 - $dir = rtrim( $dir, 'features/' );
50 + wp_enqueue_script( 'customify-ace-editor', $dir . '/js/ace/ace.js', array( 'jquery' ), false, true );
41 51
42 - wp_register_script('customify-ace-editor', $dir . '/js/ace/ace.js', array('jquery'), false, true);
43 - wp_enqueue_script('live-css-editor', $dir . '/js/live_css_editor.js', array('customify-ace-editor'), false, true);
52 + if ( ! apply_filters( 'customify_css_live_editor_enabled', true ) ) {
53 + return ;
54 + }
44 55
56 + wp_enqueue_script( 'live-css-editor', $dir . '/js/live_css_editor.js', array( 'customify-ace-editor' ), false, true );
45 57 }
46 58
47 59 function cle_create_custom_control( $wp_customize ) {
60 + // Allow others to short-circuit us
61 + if ( ! apply_filters( 'customify_css_live_editor_enabled', true ) ) {
48 62
63 + // port CSS if
64 + if ( function_exists( 'wp_update_custom_css_post' ) ) {
65 + // Migrate any existing theme CSS to the core option added in WordPress 4.7.
66 + $store_type = PixCustomifyPlugin()->get_plugin_setting( 'values_store_mod', 'option' );
67 +
68 + $default_css = __( "/*
69 + * Welcome to the Custom CSS Editor
70 + *
71 + * CSS (Cascading Style Sheets) is a language that helps
72 + * the browser render your website. You may remove these
73 + * lines and get started with your own customizations.
74 + *
75 + * The generated code will be placed after the theme
76 + * stylesheets, which means that your rules can take
77 + * precedence and override the theme CSS rules. Just
78 + * write here what you want to change, you don't need
79 + * to copy all your theme's stylesheet content.
80 + *
81 + * Getting started with CSS (tutorial):
82 + * http://bit.ly/css-getting-started
83 + */
84 +
85 +/* An example of a Custom CSS Snippet */
86 +selector {
87 + color: green;
88 +}", 'customify' );
89 +
90 + if ( $store_type === 'option' ) {
91 + $CSS = get_option( 'live_css_edit' );
92 + } elseif ( $store_type === 'theme_mod' ) {
93 + $CSS = get_theme_mod( 'live_css_edit' );
94 + }
95 +
96 + if ( ! empty( $CSS ) && $default_css !== $CSS ) {
97 +
98 + $CSS = str_replace( $default_css, '', $CSS );
99 +
100 + $core_css = wp_get_custom_css(); // Preserve any CSS already added to the core option.
101 + $return = wp_update_custom_css_post( $core_css . $CSS );
102 + if ( ! is_wp_error( $return ) ) {
103 + // Remove the old theme_mod, so that the CSS is stored in only one place moving forward.
104 + remove_theme_mod( 'custom_theme_css' );
105 + if ( $store_type === 'option' ) {
106 + $CSS = delete_option( 'live_css_edit' );
107 + } elseif ( $store_type === 'theme_mod' ) {
108 + $CSS = remove_theme_mod( 'live_css_edit' );
109 + }
110 + }
111 + }
112 + }
113 +
114 + return;
115 + }
116 +
49 117 $wp_customize->add_section( 'live_css_edit_section', array(
50 118 'priority' => 11,
51 119 'capability' => 'edit_theme_options',
52 - 'title' => __('CSS Editor', 'customify_txtd'),
120 + 'title' => __( 'CSS Editor', 'customify' ),
53 121 ) );
54 122
55 - $saving_type = PixCustomifyPlugin::get_plugin_option( 'values_store_mod', 'option' );
123 + $saving_type = PixCustomifyPlugin()->get_plugin_setting( 'values_store_mod', 'option' );
56 124
57 125 $wp_customize->add_setting( 'live_css_edit', array(
58 - 'type' => $saving_type,
59 - 'label' => __('CSS Editor', 'customify_txtd'),
126 + 'type' => $saving_type,
127 + 'label' => __( 'CSS Editor', 'customify' ),
60 128 'capability' => 'edit_theme_options',
61 - 'transport' => 'postMessage',
62 - 'default' => __("/*
129 + 'transport' => 'postMessage',
130 + 'default' => __( "/*
63 131 * Welcome to the Custom CSS Editor
64 132 *
65 133 * CSS (Cascading Style Sheets) is a language that helps
66 134 * the browser render your website. You may remove these
@@ -78,9 +146,9 @@
78 146
79 147 /* An example of a Custom CSS Snippet */
80 148 selector {
81 149 color: green;
82 -}", 'customify_txtd')
150 +}", 'customify' )
83 151 ) );
84 152
85 153 $this_control = new Pix_Customize_CSS_Editor_Control(
86 154 $wp_customize,
@@ -85,9 +153,9 @@
85 153 $this_control = new Pix_Customize_CSS_Editor_Control(
86 154 $wp_customize,
87 155 'live_css_edit_control',
88 156 array(
89 - 'label' => __('Edit Live Css', 'customify_txtd'),
157 + 'label' => __( 'Edit Live Css', 'customify' ),
90 158 'section' => 'live_css_edit_section',
91 159 'settings' => 'live_css_edit',
92 160 )
93 161 );
@@ -94,13 +162,18 @@
94 162 $wp_customize->add_control( $this_control );
95 163 }
96 164
97 165 function output_dynamic_style() {
98 - $store_type = PixCustomifyPlugin::get_plugin_option( 'values_store_mod', 'option' );
166 + // Allow others to short-circuit us
167 + if ( ! apply_filters( 'customify_css_live_editor_enabled', true ) ) {
168 + return;
169 + }
170 +
171 + $store_type = PixCustomifyPlugin()->get_plugin_setting( 'values_store_mod', 'option' );
99 172 if ( $store_type === 'option' ) {
100 173 $output = get_option( 'live_css_edit' );
101 174 } elseif ( $store_type === 'theme_mod' ) {
102 - $output = get_theme_mod( 'live_css_edit' );
175 + $output = get_theme_mod( 'live_css_edit' );
103 176 }
104 177
105 178 if ( empty( $output ) ) {
106 179 return;
@@ -108,8 +181,22 @@
108 181 <style id="customify_css_editor_output">
109 182 <?php echo $output; ?>
110 183 </style>
111 184 <?php
185 + }
186 +
187 + function disable_if_wp_incompatible( $enabled ) {
188 + global $wp_version;
189 +
190 + // WordPress 4.7 introduced a Customizer CSS editor that conflicts with our own
191 + // It's best to leave only the one in core
192 + // So only load our CSS editor for WP version smaller than 4.7
193 + // We use 4.6.9 to catch the release candidates also
194 + if ( version_compare( $wp_version, '4.6.9', '>=' ) ) {
195 + return false;
196 + }
197 +
198 + return $enabled;
112 199 }
113 200 }
114 201
115 202 $customify_CSS_Editor = Customify_CSS_Live_Editor::get_instance();