Black Studio TinyMCE Widget - Version 2.2.1

Version Description

(2014-11-18) = * Fixed paragraph formatting bug on saving * Fixed real-time update bug in Theme Customizer * Enhanced editor initialization * Simplified internal integration with Page Builder * Simplified internal initialization for accessibility mode * Minor changes for coding standard compliance

Download this release

Release Info

Developer marcochiesi
Plugin Icon 128x128 Black Studio TinyMCE Widget
Version 2.2.1
Comparing to
See all releases

Code changes from version 2.2.0 to 2.2.1

black-studio-tinymce-widget.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Black Studio TinyMCE Widget
4
  Plugin URI: https://wordpress.org/plugins/black-studio-tinymce-widget/
5
  Description: Adds a new "Visual Editor" widget type based on the native WordPress TinyMCE editor.
6
- Version: 2.2.0
7
  Author: Black Studio
8
  Author URI: http://www.blackstudio.it
9
  Requires at least: 3.1
@@ -35,7 +35,7 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Plugin' ) ) {
35
  * @var string
36
  * @since 2.0.0
37
  */
38
- public static $version = '2.2.0';
39
 
40
  /**
41
  * The single instance of the plugin class
@@ -265,7 +265,7 @@ else {
265
 
266
  /* Check for multiple plugin instances */
267
  if ( ! function_exists( 'bstw_multiple_notice' ) ) {
268
-
269
  /**
270
  * Show admin notice when multiple instances of the plugin are detected
271
  *
@@ -282,7 +282,7 @@ else {
282
  }
283
  }
284
  add_action( 'admin_notices', 'bstw_multiple_notice' );
285
-
286
  } // END function_exists bstw_multiple_notice check
287
 
288
  } // END else function_exists bstw check
3
  Plugin Name: Black Studio TinyMCE Widget
4
  Plugin URI: https://wordpress.org/plugins/black-studio-tinymce-widget/
5
  Description: Adds a new "Visual Editor" widget type based on the native WordPress TinyMCE editor.
6
+ Version: 2.2.1
7
  Author: Black Studio
8
  Author URI: http://www.blackstudio.it
9
  Requires at least: 3.1
35
  * @var string
36
  * @since 2.0.0
37
  */
38
+ public static $version = '2.2.1';
39
 
40
  /**
41
  * The single instance of the plugin class
265
 
266
  /* Check for multiple plugin instances */
267
  if ( ! function_exists( 'bstw_multiple_notice' ) ) {
268
+
269
  /**
270
  * Show admin notice when multiple instances of the plugin are detected
271
  *
282
  }
283
  }
284
  add_action( 'admin_notices', 'bstw_multiple_notice' );
285
+
286
  } // END function_exists bstw_multiple_notice check
287
 
288
  } // END else function_exists bstw check
css/black-studio-tinymce-widget-pre33.min.css CHANGED
@@ -1,2 +1,2 @@
1
- /* Black Studio TinyMCE Widget - v2.2.0 */
2
  .bstw-links{font-size:11px;margin-top:-3px;text-align:right;position:absolute;right:18px}.bstw-links .icon-plugins{float:right;padding:3px 6px;margin:-8px -8px 0 -2px;background:url(../../../../wp-admin/images/menu.png) -180px -33px no-repeat;width:16px;height:16px}.bstw-links .bstw-links-list{display:none}.bstw-links a{text-decoration:none}#mce_fullscreen_container{background-color:#fff}#wp-black-studio-tinymce-widget-wrap{display:none}#TB_overlay,#TB_window{z-index:999999}.wp-editor-container{border-style:solid;border-width:1px;border-collapse:separate;-moz-border-radius:3px 3px 0 0;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-right-radius:3px;-khtml-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;border-color:#ccc #ccc #dfdfdf;clear:both}.wp-switch-editor{height:18px;margin:5px 5px 0 0;padding:4px 5px 2px;float:right;cursor:pointer;border-width:1px;border-style:solid;-moz-border-radius:3px 3px 0 0;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-right-radius:3px;-khtml-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;background-color:#f1f1f1;border-color:#dfdfdf #dfdfdf #ccc;color:#999;position:relative;top:1px}.html-active .switch-html,.tmce-active .switch-tmce{border-color:#ccc #ccc #e9e9e9;background-color:#e9e9e9;color:#333}.wp-media-buttons{cursor:default;padding:8px 8px 0}.wp-media-buttons a{cursor:pointer;padding:0 0 5px 10px}.wp-media-buttons img{vertical-align:middle}.wp_themeSkin .mceStatusbar{border-color:#dfdfdf}
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
  .bstw-links{font-size:11px;margin-top:-3px;text-align:right;position:absolute;right:18px}.bstw-links .icon-plugins{float:right;padding:3px 6px;margin:-8px -8px 0 -2px;background:url(../../../../wp-admin/images/menu.png) -180px -33px no-repeat;width:16px;height:16px}.bstw-links .bstw-links-list{display:none}.bstw-links a{text-decoration:none}#mce_fullscreen_container{background-color:#fff}#wp-black-studio-tinymce-widget-wrap{display:none}#TB_overlay,#TB_window{z-index:999999}.wp-editor-container{border-style:solid;border-width:1px;border-collapse:separate;-moz-border-radius:3px 3px 0 0;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-right-radius:3px;-khtml-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;border-color:#ccc #ccc #dfdfdf;clear:both}.wp-switch-editor{height:18px;margin:5px 5px 0 0;padding:4px 5px 2px;float:right;cursor:pointer;border-width:1px;border-style:solid;-moz-border-radius:3px 3px 0 0;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;-khtml-border-top-right-radius:3px;-khtml-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;background-color:#f1f1f1;border-color:#dfdfdf #dfdfdf #ccc;color:#999;position:relative;top:1px}.html-active .switch-html,.tmce-active .switch-tmce{border-color:#ccc #ccc #e9e9e9;background-color:#e9e9e9;color:#333}.wp-media-buttons{cursor:default;padding:8px 8px 0}.wp-media-buttons a{cursor:pointer;padding:0 0 5px 10px}.wp-media-buttons img{vertical-align:middle}.wp_themeSkin .mceStatusbar{border-color:#dfdfdf}
css/black-studio-tinymce-widget.min.css CHANGED
@@ -1,2 +1,2 @@
1
- /* Black Studio TinyMCE Widget - v2.2.0 */
2
  .bstw-links{font-size:11px;margin-top:-3px;text-align:right;position:absolute;right:18px}.rtl .bstw-links{text-align:left;right:auto;left:18px}.bstw-links .icon16:before{padding:0}.bstw-links .icon16{float:right;padding:3px 6px;margin:-6px -8px 0 -2px}.rtl .bstw-links .icon16{float:left;margin:-6px -2px 0 -8px}.bstw-links .bstw-links-list{display:none}.bstw-links a{text-decoration:none}.bstw-loading{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#fff;background-image:url(../../../../wp-admin/images/loading.gif);background-position:center center;background-repeat:no-repeat;z-index:100000;display:none;opacity:.5}#wp-black-studio-tinymce-widget-wrap{display:none}div[id*=black-studio-tinymce] .wp-editor-wrap{margin-bottom:1em}#available-widgets [class*=black-studio-tinymce] .widget-title:before{content:"\f116"}.wp-customizer .mce-floatpanel.mce-popover{z-index:500000!important}div[id*=black-studio-tinymce] .mce-wp-fullscreen{display:none}.ui-dialog.panels-admin-dialog{z-index:100002!important}#TB_overlay,#TB_window{z-index:999999!important}.media-modal{z-index:1000100!important}body.wait,body.wait *{cursor:wait!important}#zedity_content_overlay{z-index:100000!important}.mce-rtl .mce-colorbutton button{padding-right:3px!important;padding-left:3px!important}.mce-rtl .mce-colorbutton .mce-preview{margin:0!important;padding:0!important}
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
  .bstw-links{font-size:11px;margin-top:-3px;text-align:right;position:absolute;right:18px}.rtl .bstw-links{text-align:left;right:auto;left:18px}.bstw-links .icon16:before{padding:0}.bstw-links .icon16{float:right;padding:3px 6px;margin:-6px -8px 0 -2px}.rtl .bstw-links .icon16{float:left;margin:-6px -2px 0 -8px}.bstw-links .bstw-links-list{display:none}.bstw-links a{text-decoration:none}.bstw-loading{position:absolute;left:0;right:0;top:0;bottom:0;background-color:#fff;background-image:url(../../../../wp-admin/images/loading.gif);background-position:center center;background-repeat:no-repeat;z-index:100000;display:none;opacity:.5}#wp-black-studio-tinymce-widget-wrap{display:none}div[id*=black-studio-tinymce] .wp-editor-wrap{margin-bottom:1em}#available-widgets [class*=black-studio-tinymce] .widget-title:before{content:"\f116"}.wp-customizer .mce-floatpanel.mce-popover{z-index:500000!important}div[id*=black-studio-tinymce] .mce-wp-fullscreen{display:none}.ui-dialog.panels-admin-dialog{z-index:100002!important}#TB_overlay,#TB_window{z-index:999999!important}.media-modal{z-index:1000100!important}body.wait,body.wait *{cursor:wait!important}#zedity_content_overlay{z-index:100000!important}.mce-rtl .mce-colorbutton button{padding-right:3px!important;padding-left:3px!important}.mce-rtl .mce-colorbutton .mce-preview{margin:0!important;padding:0!important}
includes/class-admin.php CHANGED
@@ -61,7 +61,6 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Admin' ) ) {
61
  // Register action and filter hooks
62
  add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
63
  add_action( 'admin_init', array( $this, 'admin_init' ), 20 );
64
- add_filter( 'wp_default_editor', array( $this, 'editor_accessibility_mode' ) );
65
  }
66
 
67
  /**
@@ -122,6 +121,7 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Admin' ) ) {
122
  add_action( 'black_studio_tinymce_before_editor', array( $this, 'display_links' ) ); // consider donating if you remove links
123
  add_action( 'black_studio_tinymce_editor', array( $this, 'editor' ), 10, 4 );
124
  add_action( 'black_studio_tinymce_after_editor', array( $this, 'fix_the_editor_content_filter' ) );
 
125
  add_filter( 'wp_editor_settings', array( $this, 'editor_settings' ), 5, 2 );
126
  add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_fix_rtl' ), 10 );
127
  add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_fullscreen' ), 10, 2 );
@@ -289,6 +289,18 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Admin' ) ) {
289
  remove_filter( 'the_editor_content', 'wp_richedit_pre' );
290
  }
291
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  /**
293
  * Set editor settings
294
  *
@@ -311,22 +323,6 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Admin' ) ) {
311
  return $settings;
312
  }
313
 
314
- /**
315
- * Edit widgets in accessibility mode
316
- *
317
- * @global string $pagenow
318
- * @param string $editor
319
- * @return string
320
- * @since 2.0.0
321
- */
322
- public function editor_accessibility_mode( $editor ) {
323
- global $pagenow;
324
- if ( $pagenow == 'widgets.php' && isset( $_GET['editwidget'] ) && strpos( $_GET['editwidget'], 'black-studio-tinymce' ) === 0 ) {
325
- $editor = 'html';
326
- }
327
- return $editor;
328
- }
329
-
330
  /**
331
  * Initialize plugin links
332
  *
61
  // Register action and filter hooks
62
  add_action( 'plugins_loaded', array( $this, 'load_textdomain' ) );
63
  add_action( 'admin_init', array( $this, 'admin_init' ), 20 );
 
64
  }
65
 
66
  /**
121
  add_action( 'black_studio_tinymce_before_editor', array( $this, 'display_links' ) ); // consider donating if you remove links
122
  add_action( 'black_studio_tinymce_editor', array( $this, 'editor' ), 10, 4 );
123
  add_action( 'black_studio_tinymce_after_editor', array( $this, 'fix_the_editor_content_filter' ) );
124
+ add_action( 'wp_tiny_mce_init', array( $this, 'wp_tiny_mce_init' ) );
125
  add_filter( 'wp_editor_settings', array( $this, 'editor_settings' ), 5, 2 );
126
  add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_fix_rtl' ), 10 );
127
  add_filter( 'tiny_mce_before_init', array( $this, 'tinymce_fullscreen' ), 10, 2 );
289
  remove_filter( 'the_editor_content', 'wp_richedit_pre' );
290
  }
291
 
292
+ /**
293
+ * Setup editor instance for event handling
294
+ *
295
+ * @return void
296
+ * @since 2.2.1
297
+ */
298
+ function wp_tiny_mce_init() {
299
+ $script = 'black-studio-tinymce-widget-setup';
300
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
301
+ echo "\t\t" . '<script type="text/javascript" src="' . plugins_url( 'js/' . $script . $suffix . '.js', dirname( __FILE__ ) ) . '"></script>' . "\n"; // xss ok
302
+ }
303
+
304
  /**
305
  * Set editor settings
306
  *
323
  return $settings;
324
  }
325
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  /**
327
  * Initialize plugin links
328
  *
includes/class-compatibility-plugins.php CHANGED
@@ -218,7 +218,6 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Compatibility_Plugins' ) ) {
218
  add_filter( 'black_studio_tinymce_activate_events', array( $this, 'siteorigin_panels_activate_events' ) );
219
  add_filter( 'black_studio_tinymce_deactivate_events', array( $this, 'siteorigin_panels_deactivate_events' ) );
220
  add_filter( 'black_studio_tinymce_enable_pages', array( $this, 'siteorigin_panels_enable_pages' ) );
221
- add_filter( 'wp_editor_settings', array( $this, 'siteorigin_panels_editor_settings' ), 20, 2 );
222
  remove_filter( 'widget_text', array( bstw()->text_filters(), 'wpautop' ), 8 );
223
  }
224
  }
@@ -288,29 +287,6 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Compatibility_Plugins' ) ) {
288
  }
289
  return $pages;
290
  }
291
-
292
- /**
293
- * Editor settings for use within Page Builder (SiteOrigin Panels)
294
- *
295
- * @return void
296
- * @since 2.0.0
297
- */
298
- public function siteorigin_panels_editor_settings( $settings, $editor_id ) {
299
- // Allow initialization of main page/post editor instances
300
- if ( strstr( $editor_id, 'black-studio-tinymce' ) === false ) {
301
- if ( ! empty( $settings['tinymce'] ) ) {
302
- if ( ! is_array( $settings['tinymce'] ) ) {
303
- $settings['tinymce'] = array();
304
- }
305
- $settings['tinymce']['wp_skip_init'] = false ;
306
- }
307
- }
308
- // Prevent wpautop on editor instances inside Page Builder
309
- if ( $editor_id == 'widget-black-studio-tinymce-{$id}-text' ) {
310
- $settings['default_editor'] = 'html';
311
- }
312
- return $settings;
313
- }
314
 
315
  /**
316
  * Disable old compatibility code provided by Page Builder (SiteOrigin Panels)
218
  add_filter( 'black_studio_tinymce_activate_events', array( $this, 'siteorigin_panels_activate_events' ) );
219
  add_filter( 'black_studio_tinymce_deactivate_events', array( $this, 'siteorigin_panels_deactivate_events' ) );
220
  add_filter( 'black_studio_tinymce_enable_pages', array( $this, 'siteorigin_panels_enable_pages' ) );
 
221
  remove_filter( 'widget_text', array( bstw()->text_filters(), 'wpautop' ), 8 );
222
  }
223
  }
287
  }
288
  return $pages;
289
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
 
291
  /**
292
  * Disable old compatibility code provided by Page Builder (SiteOrigin Panels)
includes/class-text-filters.php CHANGED
@@ -76,7 +76,7 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Text_Filters' ) ) {
76
  * Apply wp_kses to widget text
77
  *
78
  * @uses wp_kses_post()
79
- *
80
  * @param string $text
81
  * @return string
82
  * @since 2.0.0
@@ -126,7 +126,7 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Text_Filters' ) ) {
126
  * Check if automatic addition of paragraphs in widget text is needed
127
  *
128
  * @uses apply_filters()
129
- *
130
  * @param mixed[] $instance
131
  * @return boolean
132
  * @since 2.1.0
@@ -140,12 +140,12 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Text_Filters' ) ) {
140
  $need_wpautop = apply_filters( 'black_studio_tinymce_need_wpautop', $need_wpautop, $instance );
141
  return $need_wpautop;
142
  }
143
-
144
  /**
145
  * Apply automatic paragraphs in widget text
146
  *
147
  * @uses wpautop()
148
- *
149
  * @param string $text
150
  * @param mixed[]|null $instance
151
  * @param object|null $widget
@@ -165,7 +165,7 @@ if ( ! class_exists( 'Black_Studio_TinyMCE_Text_Filters' ) ) {
165
  * Process shortcodes in widget text
166
  *
167
  * @uses do_shortcode()
168
- *
169
  * @param string $text
170
  * @return string
171
  * @since 2.0.0
76
  * Apply wp_kses to widget text
77
  *
78
  * @uses wp_kses_post()
79
+ *
80
  * @param string $text
81
  * @return string
82
  * @since 2.0.0
126
  * Check if automatic addition of paragraphs in widget text is needed
127
  *
128
  * @uses apply_filters()
129
+ *
130
  * @param mixed[] $instance
131
  * @return boolean
132
  * @since 2.1.0
140
  $need_wpautop = apply_filters( 'black_studio_tinymce_need_wpautop', $need_wpautop, $instance );
141
  return $need_wpautop;
142
  }
143
+
144
  /**
145
  * Apply automatic paragraphs in widget text
146
  *
147
  * @uses wpautop()
148
+ *
149
  * @param string $text
150
  * @param mixed[]|null $instance
151
  * @param object|null $widget
165
  * Process shortcodes in widget text
166
  *
167
  * @uses do_shortcode()
168
+ *
169
  * @param string $text
170
  * @return string
171
  * @since 2.0.0
js/black-studio-tinymce-widget-pointer.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /* Black Studio TinyMCE Widget - v2.2.0 */
2
  jQuery(document).ready(function(a){function b(b){var c=bstw_pointers.pointers[b],d=a.extend(c.options,{close:function(){a.post(ajaxurl,{pointer:c.pointer_id,action:"dismiss-wp-pointer"})}});a(c.target).pointer(d).pointer("open")}b(0)});
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
  jQuery(document).ready(function(a){function b(b){var c=bstw_pointers.pointers[b],d=a.extend(c.options,{close:function(){a.post(ajaxurl,{pointer:c.pointer_id,action:"dismiss-wp-pointer"})}});a(c.target).pointer(d).pointer("open")}b(0)});
js/black-studio-tinymce-widget-pre33.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /* Black Studio TinyMCE Widget - v2.2.0 */
2
  !function(a){function b(c){var d=null;return"string"==typeof c?d=c:"object"==typeof c&&c instanceof jQuery&&(d=a("textarea[id^=widget-black-studio-tinymce]",c.closest(bstw_data.container_selectors)).attr("id")),{activate:function(){if(a("#"+d).addClass("mceEditor"),"object"==typeof tinymce&&"function"==typeof tinymce.execCommand){this.deactivate();try{tinymce.execCommand("mceAddControl",!1,d)}catch(b){window.alert(b)}}return this},deactivate:function(){if("object"==typeof tinymce&&"function"==typeof tinymce.execCommand&&this.is_tinymce_active()){var b=tinymce.get(d).getContent();tinymce.get(d).remove(),a("#"+d).val(b)}return this},activate_after_open:function(){return"visual"===this.get_mode()&&(0===a("div.widget:has(#"+d+") :animated").size()&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_tinymce_active()?this.set_mode("visual"):setTimeout(function(){b(d).activate_after_open()},100)),this},activate_after_ajax:function(){return"visual"===this.get_mode()&&(0===a.active&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_widget_inside_visible()&&!this.is_tinymce_active()&&setTimeout(function(){b(d).activate_after_ajax()},100)),this},get_widget:function(){return a("#"+d).closest("div.widget")},get_widget_inside:function(){return a("#"+d).closest("div.widget-inside")},get_editor_wrap:function(){return a("#"+d).closest("div.wp-editor-wrap")},get_textarea:function(){return a("#"+d)},get_id:function(){return d},get_tinymce:function(){return tinymce.get(d)},get_mode:function(){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val()},set_mode:function(b){return"visual"===b&&(this.get_editor_wrap().removeClass("html-active").addClass("tmce-active"),this.activate()),"html"===b&&(this.get_editor_wrap().removeClass("tmce-active").addClass("html-active"),this.deactivate()),a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val(b),this},is_tinymce_active:function(){return"object"==typeof tinymce&&"object"==typeof tinymce.get(d)&&null!==tinymce.get(d)},is_textearea_visible:function(){return a("#"+d).is(":visible")},is_widget_inside_visible:function(){return a(" div.widget-inside:has(#"+d+")").is(":visible")},check_duplicates:function(){return a('[name="'+this.get_textarea().attr("name")+'"]').size()>1&&0===a("div.error",this.get_widget_inside()).length&&this.get_widget_inside().prepend('<div class="error"><strong>'+bstw_data.error_duplicate_id+"</strong></div>"),this},fix_css:function(){return this.get_widget().css("position","relative").css("z-index","100000"),a("#wpbody-content").css("overflow","visible"),this},set_media_target:function(){return a(".insert-media",this.get_widget()).data("editor",d),this}}}a(document).ready(function(){a("div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] a.widget-action").live("click",function(){b(a(this)).check_duplicates().fix_css().set_media_target().activate_after_open(),a("input[name=savewidget]",b(a(this)).get_widget()).click(function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})})}),a("div.widget[id*=black-studio-tinymce] input[name=savewidget]").live("click",function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})}),a("a[id^=widget-black-studio-tinymce][id$=tmce]").live("click",function(){b(a(this)).set_mode("visual")}),a("a[id^=widget-black-studio-tinymce][id$=html]").live("click",function(){b(a(this)).set_mode("html")}),a(".wp-media-buttons a").live("click",function(){edCanvas=b(a(this)).get_textarea().get(),wpActiveEditor=b(a(this)).get_id()}),a("body.widgets_access").size()>0&&b(a("textarea[id^=widget-black-studio-tinymce]").attr("id")).activate_after_open(),a(".bstw-links-icon").live("click",function(b){b.preventDefault(),a(this).closest(".bstw-links").children(".bstw-links-list").toggle()})})}(jQuery);
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
  !function(a){function b(c){var d=null;return"string"==typeof c?d=c:"object"==typeof c&&c instanceof jQuery&&(d=a("textarea[id^=widget-black-studio-tinymce]",c.closest(bstw_data.container_selectors)).attr("id")),{activate:function(){if(a("#"+d).addClass("mceEditor"),"object"==typeof tinymce&&"function"==typeof tinymce.execCommand){this.deactivate();try{tinymce.execCommand("mceAddControl",!1,d)}catch(b){window.alert(b)}}return this},deactivate:function(){if("object"==typeof tinymce&&"function"==typeof tinymce.execCommand&&this.is_tinymce_active()){var b=tinymce.get(d).getContent();tinymce.get(d).remove(),a("#"+d).val(b)}return this},activate_after_open:function(){return"visual"===this.get_mode()&&(0===a("div.widget:has(#"+d+") :animated").size()&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_tinymce_active()?this.set_mode("visual"):setTimeout(function(){b(d).activate_after_open()},100)),this},activate_after_ajax:function(){return"visual"===this.get_mode()&&(0===a.active&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_widget_inside_visible()&&!this.is_tinymce_active()&&setTimeout(function(){b(d).activate_after_ajax()},100)),this},get_widget:function(){return a("#"+d).closest("div.widget")},get_widget_inside:function(){return a("#"+d).closest("div.widget-inside")},get_editor_wrap:function(){return a("#"+d).closest("div.wp-editor-wrap")},get_textarea:function(){return a("#"+d)},get_id:function(){return d},get_tinymce:function(){return tinymce.get(d)},get_mode:function(){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val()},set_mode:function(b){return"visual"===b&&(this.get_editor_wrap().removeClass("html-active").addClass("tmce-active"),this.activate()),"html"===b&&(this.get_editor_wrap().removeClass("tmce-active").addClass("html-active"),this.deactivate()),a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val(b),this},is_tinymce_active:function(){return"object"==typeof tinymce&&"object"==typeof tinymce.get(d)&&null!==tinymce.get(d)},is_textearea_visible:function(){return a("#"+d).is(":visible")},is_widget_inside_visible:function(){return a(" div.widget-inside:has(#"+d+")").is(":visible")},check_duplicates:function(){return a('[name="'+this.get_textarea().attr("name")+'"]').size()>1&&0===a("div.error",this.get_widget_inside()).length&&this.get_widget_inside().prepend('<div class="error"><strong>'+bstw_data.error_duplicate_id+"</strong></div>"),this},fix_css:function(){return this.get_widget().css("position","relative").css("z-index","100000"),a("#wpbody-content").css("overflow","visible"),this},set_media_target:function(){return a(".insert-media",this.get_widget()).data("editor",d),this}}}a(document).ready(function(){a("div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] a.widget-action").live("click",function(){b(a(this)).check_duplicates().fix_css().set_media_target().activate_after_open(),a("input[name=savewidget]",b(a(this)).get_widget()).click(function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})})}),a("div.widget[id*=black-studio-tinymce] input[name=savewidget]").live("click",function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})}),a("a[id^=widget-black-studio-tinymce][id$=tmce]").live("click",function(){b(a(this)).set_mode("visual")}),a("a[id^=widget-black-studio-tinymce][id$=html]").live("click",function(){b(a(this)).set_mode("html")}),a(".wp-media-buttons a").live("click",function(){edCanvas=b(a(this)).get_textarea().get(),wpActiveEditor=b(a(this)).get_id()}),a("body.widgets_access").size()>0&&b(a("textarea[id^=widget-black-studio-tinymce]").attr("id")).activate_after_open(),a(".bstw-links-icon").live("click",function(b){b.preventDefault(),a(this).closest(".bstw-links").children(".bstw-links-list").toggle()})})}(jQuery);
js/black-studio-tinymce-widget-pre39.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /* Black Studio TinyMCE Widget - v2.2.0 */
2
  !function(a){function b(c){var d=null;return"string"==typeof c?d=c:"object"==typeof c&&c instanceof jQuery&&(d=a("textarea[id^=widget-black-studio-tinymce]",c.closest(bstw_data.container_selectors)).attr("id")),{activate:function(){if(a("#"+d).addClass("mceEditor"),"object"==typeof tinymce&&"function"==typeof tinymce.execCommand){this.deactivate(),tinyMCEPreInit.mceInit[d]=tinyMCEPreInit.mceInit["black-studio-tinymce-widget"],tinyMCEPreInit.mceInit[d].selector="#"+d;try{tinymce.init(tinymce.extend({},tinyMCEPreInit.mceInit["black-studio-tinymce-widget"],tinyMCEPreInit.mceInit[d])),tinymce.execCommand("mceAddControl",!1,d)}catch(b){window.alert(b)}this.is_tinymce_active()&&"function"==typeof tinymce.get(d).on&&tinymce.get(d).on("keyup change",function(){var b=tinymce.get(d).getContent();a("#"+d).val(b).change()})}return this},deactivate:function(){if("object"==typeof tinymce&&"function"==typeof tinymce.execCommand&&this.is_tinymce_active()){var b=tinymce.get(d).getContent();tinymce.get(d).remove(),a("#"+d).val(b)}return this},activate_after_open:function(){return"visual"===this.get_mode()&&(0===a("div.widget:has(#"+d+") :animated").size()&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_tinymce_active()?this.set_mode("visual"):setTimeout(function(){b(d).activate_after_open()},100)),this},activate_after_ajax:function(){return"visual"===this.get_mode()&&(0===a.active&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_widget_inside_visible()&&!this.is_tinymce_active()&&setTimeout(function(){b(d).activate_after_ajax()},100)),this},get_widget:function(){return a("#"+d).closest("div.widget")},get_widget_inside:function(){return a("#"+d).closest("div.widget-inside")},get_editor_wrap:function(){return a("#"+d).closest("div.wp-editor-wrap")},get_textarea:function(){return a("#"+d)},get_id:function(){return d},get_tinymce:function(){return tinymce.get(d)},get_mode:function(){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val()},set_mode:function(b){return"visual"===b&&(this.get_editor_wrap().removeClass("html-active").addClass("tmce-active"),this.activate()),"html"===b&&(this.get_editor_wrap().removeClass("tmce-active").addClass("html-active"),this.deactivate()),a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val(b),this},is_tinymce_active:function(){return"object"==typeof tinymce&&"object"==typeof tinymce.get(d)&&null!==tinymce.get(d)},is_textearea_visible:function(){return a("#"+d).is(":visible")},is_widget_inside_visible:function(){return a(" div.widget-inside:has(#"+d+")").is(":visible")},check_duplicates:function(){return a('[name="'+this.get_textarea().attr("name")+'"]').size()>1&&0===a("div.error",this.get_widget_inside()).length&&this.get_widget_inside().prepend('<div class="error"><strong>'+bstw_data.error_duplicate_id+"</strong></div>"),this},fix_css:function(){return this.get_widget().css("position","relative").css("z-index","100000"),a("#wpbody-content").css("overflow","visible"),this},set_media_target:function(){return a(".insert-media",this.get_widget()).data("editor",d),this}}}a(document).ready(function(){a(document).on("click","div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] a.widget-action",function(){if(b(a(this)).check_duplicates().fix_css().set_media_target().activate_after_open(),a("input[name=savewidget]",b(a(this)).get_widget()).on("click",function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})}),!a(this).parents("#available-widgets").length){var c,d=parseInt(a("input[name=widget-width]",b(a(this)).get_widget()).val(),10),e=a(window).width(),f=b(a(this)).get_widget().parent().width(),g=parseInt(a("#wpcontent").css("margin-left"),10),h=!("undefined"==typeof isRtl||!isRtl);d+g+30>e&&(c=b(a(this)).get_widget().closest("div.widget-liquid-right").length?h?"margin-right":"margin-left":h?"margin-left":"margin-right",a(b(a(this)).get_widget()).css(c,f-(e-30-g)+"px"))}}),a("div.widget[id*=black-studio-tinymce] input[name=savewidget]").on("click",function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=tmce]",function(){b(a(this)).set_mode("visual")}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=html]",function(){b(a(this)).set_mode("html")}),a(document).on("widget-added",function(a,c){c.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),b(c).activate_after_open())}),a(document).on("click",".wp-media-buttons a",function(){window.wpActiveEditor=b(a(this)).get_id()}),a("body.widgets_access").size()>0&&b(a("textarea[id^=widget-black-studio-tinymce]").attr("id")).activate_after_open(),a(document).on("click",".bstw-links-icon",function(b){b.preventDefault(),a(this).closest(".bstw-links").children(".bstw-links-list").toggle()})})}(jQuery);
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
  !function(a){function b(c){var d=null;return"string"==typeof c?d=c:"object"==typeof c&&c instanceof jQuery&&(d=a("textarea[id^=widget-black-studio-tinymce]",c.closest(bstw_data.container_selectors)).attr("id")),{activate:function(){if(a("#"+d).addClass("mceEditor"),"object"==typeof tinymce&&"function"==typeof tinymce.execCommand){this.deactivate(),tinyMCEPreInit.mceInit[d]=tinyMCEPreInit.mceInit["black-studio-tinymce-widget"],tinyMCEPreInit.mceInit[d].selector="#"+d;try{tinymce.init(tinymce.extend({},tinyMCEPreInit.mceInit["black-studio-tinymce-widget"],tinyMCEPreInit.mceInit[d])),tinymce.execCommand("mceAddControl",!1,d)}catch(b){window.alert(b)}this.is_tinymce_active()&&"function"==typeof tinymce.get(d).on&&tinymce.get(d).on("keyup change",function(){var b=tinymce.get(d).getContent();a("#"+d).val(b).change()})}return this},deactivate:function(){if("object"==typeof tinymce&&"function"==typeof tinymce.execCommand&&this.is_tinymce_active()){var b=tinymce.get(d).getContent();tinymce.get(d).remove(),a("#"+d).val(b)}return this},activate_after_open:function(){return"visual"===this.get_mode()&&(0===a("div.widget:has(#"+d+") :animated").size()&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_tinymce_active()?this.set_mode("visual"):setTimeout(function(){b(d).activate_after_open()},100)),this},activate_after_ajax:function(){return"visual"===this.get_mode()&&(0===a.active&&!this.is_tinymce_active()&&this.is_textearea_visible()?this.set_mode("visual"):this.is_widget_inside_visible()&&!this.is_tinymce_active()&&setTimeout(function(){b(d).activate_after_ajax()},100)),this},get_widget:function(){return a("#"+d).closest("div.widget")},get_widget_inside:function(){return a("#"+d).closest("div.widget-inside")},get_editor_wrap:function(){return a("#"+d).closest("div.wp-editor-wrap")},get_textarea:function(){return a("#"+d)},get_id:function(){return d},get_tinymce:function(){return tinymce.get(d)},get_mode:function(){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val()},set_mode:function(b){return"visual"===b&&(this.get_editor_wrap().removeClass("html-active").addClass("tmce-active"),this.activate()),"html"===b&&(this.get_editor_wrap().removeClass("tmce-active").addClass("html-active"),this.deactivate()),a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_widget_inside()).val(b),this},is_tinymce_active:function(){return"object"==typeof tinymce&&"object"==typeof tinymce.get(d)&&null!==tinymce.get(d)},is_textearea_visible:function(){return a("#"+d).is(":visible")},is_widget_inside_visible:function(){return a(" div.widget-inside:has(#"+d+")").is(":visible")},check_duplicates:function(){return a('[name="'+this.get_textarea().attr("name")+'"]').size()>1&&0===a("div.error",this.get_widget_inside()).length&&this.get_widget_inside().prepend('<div class="error"><strong>'+bstw_data.error_duplicate_id+"</strong></div>"),this},fix_css:function(){return this.get_widget().css("position","relative").css("z-index","100000"),a("#wpbody-content").css("overflow","visible"),this},set_media_target:function(){return a(".insert-media",this.get_widget()).data("editor",d),this}}}a(document).ready(function(){a(document).on("click","div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] a.widget-action",function(){if(b(a(this)).check_duplicates().fix_css().set_media_target().activate_after_open(),a("input[name=savewidget]",b(a(this)).get_widget()).on("click",function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})}),!a(this).parents("#available-widgets").length){var c,d=parseInt(a("input[name=widget-width]",b(a(this)).get_widget()).val(),10),e=a(window).width(),f=b(a(this)).get_widget().parent().width(),g=parseInt(a("#wpcontent").css("margin-left"),10),h=!("undefined"==typeof isRtl||!isRtl);d+g+30>e&&(c=b(a(this)).get_widget().closest("div.widget-liquid-right").length?h?"margin-right":"margin-left":h?"margin-left":"margin-right",a(b(a(this)).get_widget()).css(c,f-(e-30-g)+"px"))}}),a("div.widget[id*=black-studio-tinymce] input[name=savewidget]").on("click",function(){b(a(this)).is_tinymce_active()&&b(a(this)).deactivate(),a(this).unbind("ajaxSuccess").ajaxSuccess(function(){b(a(this)).activate_after_ajax()})}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=tmce]",function(){b(a(this)).set_mode("visual")}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=html]",function(){b(a(this)).set_mode("html")}),a(document).on("widget-added",function(a,c){c.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),b(c).activate_after_open())}),a(document).on("click",".wp-media-buttons a",function(){window.wpActiveEditor=b(a(this)).get_id()}),a("body.widgets_access").size()>0&&b(a("textarea[id^=widget-black-studio-tinymce]").attr("id")).activate_after_open(),a(document).on("click",".bstw-links-icon",function(b){b.preventDefault(),a(this).closest(".bstw-links").children(".bstw-links-list").toggle()})})}(jQuery);
js/black-studio-tinymce-widget-setup.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Black Studio TinyMCE Widget - JS - Editor setup */
2
+
3
+ /* global bstw, tinyMCEPreInit */
4
+
5
+ ( function( $ ) {
6
+
7
+ function bstw_editor_setup( ed ) {
8
+ ed.on( 'keyup change', function() {
9
+ if ( bstw( ed.id ).get_mode() === 'visual' ) {
10
+ bstw( ed.id ).update_content();
11
+ }
12
+ $( '#' + ed.id ).change();
13
+ });
14
+ $( '#' + ed.id ).addClass( 'active' ).removeClass( 'activating' );
15
+ }
16
+
17
+ var id;
18
+ for ( id in tinyMCEPreInit.mceInit ) {
19
+ if ( id.search( 'black-studio-tinymce' ) >= 0 ) {
20
+ tinyMCEPreInit.mceInit[ id ].setup = bstw_editor_setup;
21
+ }
22
+ }
23
+
24
+ }( jQuery ));
js/black-studio-tinymce-widget-setup.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
+ !function(a){function b(b){b.on("keyup change",function(){"visual"===bstw(b.id).get_mode()&&bstw(b.id).update_content(),a("#"+b.id).change()}),a("#"+b.id).addClass("active").removeClass("activating")}var c;for(c in tinyMCEPreInit.mceInit)c.search("black-studio-tinymce")>=0&&(tinyMCEPreInit.mceInit[c].setup=b)}(jQuery);
js/black-studio-tinymce-widget.js CHANGED
@@ -24,29 +24,30 @@ var bstw;
24
  return {
25
 
26
  // Activate editor
27
- activate: function () {
 
28
  if ( ! $( '#' + id ).hasClass( 'active' ) && ! $( '#' + id ).hasClass( 'activating' )) {
29
  $( '#' + id ).addClass( 'activating' );
30
  if ( ! this.is_quicktags_configured() ) {
31
- tinyMCEPreInit.qtInit[id] = tinyMCEPreInit.qtInit['black-studio-tinymce-widget'];
32
- tinyMCEPreInit.qtInit[id].id = id;
33
  }
34
  if ( ! this.is_quicktags_active() ) {
35
  var prevInstances, newInstance;
36
  prevInstances = QTags.instances;
37
  QTags.instances = [];
38
- quicktags( tinyMCEPreInit.qtInit[id] );
39
  QTags._buttonsInit();
40
- newInstance = QTags.instances[id];
41
  QTags.instances = prevInstances;
42
- QTags.instances[id] = newInstance;
43
  }
44
  if ( ! this.is_tinymce_configured() ) {
45
- tinyMCEPreInit.mceInit[id] = tinyMCEPreInit.mceInit['black-studio-tinymce-widget'];
46
- tinyMCEPreInit.mceInit[id].selector = '#' + id;
47
  }
48
  if ( ! this.is_tinymce_active() && this.get_mode() === 'visual' ) {
49
- tinyMCEPreInit.mceInit[id].setup = function( ed ) {
50
  // Real time preview (Theme customizer)
51
  ed.on( 'keyup change', function() {
52
  if ( bstw( id ).get_mode() === 'visual' ) {
@@ -56,8 +57,12 @@ var bstw;
56
  });
57
  $( '#' + id ).addClass( 'active' ).removeClass( 'activating' );
58
  };
59
- this.go();
60
- //tinymce.init( tinyMCEPreInit.mceInit[id] );
 
 
 
 
61
  } else {
62
  $( '#' + id ).addClass( 'active' ).removeClass( 'activating' );
63
  }
@@ -72,14 +77,14 @@ var bstw;
72
  tinymce.get( id ).remove();
73
  }
74
  if ( this.is_tinymce_configured() ) {
75
- delete tinyMCEPreInit.mceInit[id];
76
  }
77
  if ( this.is_quicktags_active() ) {
78
  $( '.quicktags-toolbar', this.get_widget_inside() ).remove();
79
- delete QTags.instances[id];
80
  }
81
  if ( this.is_quicktags_configured() ) {
82
- delete tinyMCEPreInit.qtInit[id];
83
  }
84
  $( '#' + id ).removeClass( 'active' );
85
  }
@@ -91,13 +96,13 @@ var bstw;
91
  var content;
92
  if ( this.get_mode() === 'visual' ) {
93
  content = tinymce.get( id ).save();
94
- if ( tinyMCEPreInit.mceInit[id].wpautop ) {
95
  content = window.switchEditors.pre_wpautop( content );
96
  }
97
  this.get_textarea().val( content);
98
  } else if ( this.is_tinymce_active() ) {
99
  content = this.get_textarea().val();
100
- if ( tinyMCEPreInit.mceInit[id].wpautop ) {
101
  content = window.switchEditors.wpautop( content );
102
  }
103
  tinymce.get( id ).setContent( content );
@@ -152,25 +157,25 @@ var bstw;
152
 
153
  // Check if the tinymce instance is configured
154
  is_tinymce_configured: function() {
155
- return 'undefined' !== typeof tinyMCEPreInit.mceInit[id];
156
  },
157
 
158
  // Check if the quicktags instance is active
159
  is_quicktags_active: function() {
160
- return 'object' === typeof QTags.instances[id];
161
  },
162
 
163
  // Check if the quicktags instance is configured
164
  is_quicktags_configured: function() {
165
- return 'object' === typeof tinyMCEPreInit.qtInit[id];
166
  },
167
 
168
  // Checks and settings to run before opening the widget
169
  prepare: function() {
170
  // Check for widgets with duplicate ids
171
- if ( $( '[name="' + this.get_textarea().attr('name') + '"]' ).size() > 1) {
172
  if ( $( 'div.error', this.get_widget_inside() ).length === 0 ) {
173
- this.get_widget_inside().prepend('<div class="error"><strong>' + bstw_data.error_duplicate_id + '</strong></div>');
174
  }
175
  }
176
  // Fix CSS
@@ -209,7 +214,7 @@ var bstw;
209
  // Event handler for widget open button
210
  $( document ).on( 'click', 'div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] .widget-action', function() {
211
  if ( ! $( this ).parents( '#available-widgets' ).length ) {
212
- bstw( $( this ) ).prepare().responsive().activate();
213
  // Note: the save event handler is intentionally attached to the save button instead of document
214
  // to let the the textarea content be updated before the ajax request starts
215
  $( 'input[name=savewidget]', bstw( $( this ) ).get_widget() ).on( 'click', function() {
@@ -270,17 +275,17 @@ var bstw;
270
  'body.wp-customizer .expanded > div[id*=black-studio-tinymce].widget', // Theme Customizer
271
  '.widget-liquid-right div[id*=black-studio-tinymce].widget.open' // Widgets page
272
  ];
273
- $( open_widgets_selectors.join( ', ') ).filter( ':has(.widget-inside:visible)' ).each(function() {
274
  $( '.widget-title', this ).trigger( 'click' );
275
  bstw( $( this ) ).deactivate();
276
  });
277
  if ( ui.item.is( '[id*=black-studio-tinymce]' ) ){
278
- bstw( ui.item.find('textarea[id^=widget-black-studio-tinymce]' ) ).deactivate();
279
  }
280
  });
281
  $( document ).on( 'sortstop', function( event, ui ) {
282
  if ( ui.item.is( '[id*=black-studio-tinymce]' ) ){
283
- bstw( ui.item.find('textarea[id^=widget-black-studio-tinymce]' ) ).activate();
284
  }
285
  });
286
  $( document ).on( 'sortupdate', function( event, ui ) {
@@ -315,11 +320,6 @@ var bstw;
315
  });
316
  });
317
 
318
- // Activate editor when in accessibility mode
319
- if ( $( 'body.widgets_access' ).size() > 0 ) {
320
- bstw( $( 'textarea[id^=widget-black-studio-tinymce]' ).attr( 'id' ) ).activate();
321
- }
322
-
323
  // Deactivate quicktags toolbar on hidden base instance
324
  $( '#qt_widget-black-studio-tinymce-__i__-text_toolbar' ).remove();
325
 
24
  return {
25
 
26
  // Activate editor
27
+ activate: function ( force_init ) {
28
+ force_init = typeof force_init !== 'undefined' ? force_init : true;
29
  if ( ! $( '#' + id ).hasClass( 'active' ) && ! $( '#' + id ).hasClass( 'activating' )) {
30
  $( '#' + id ).addClass( 'activating' );
31
  if ( ! this.is_quicktags_configured() ) {
32
+ tinyMCEPreInit.qtInit[ id ] = tinyMCEPreInit.qtInit['black-studio-tinymce-widget'];
33
+ tinyMCEPreInit.qtInit[ id ].id = id;
34
  }
35
  if ( ! this.is_quicktags_active() ) {
36
  var prevInstances, newInstance;
37
  prevInstances = QTags.instances;
38
  QTags.instances = [];
39
+ quicktags( tinyMCEPreInit.qtInit[ id ] );
40
  QTags._buttonsInit();
41
+ newInstance = QTags.instances[ id ];
42
  QTags.instances = prevInstances;
43
+ QTags.instances[ id ] = newInstance;
44
  }
45
  if ( ! this.is_tinymce_configured() ) {
46
+ tinyMCEPreInit.mceInit[ id ] = tinyMCEPreInit.mceInit['black-studio-tinymce-widget'];
47
+ tinyMCEPreInit.mceInit[ id ].selector = '#' + id;
48
  }
49
  if ( ! this.is_tinymce_active() && this.get_mode() === 'visual' ) {
50
+ tinyMCEPreInit.mceInit[ id ].setup = function( ed ) {
51
  // Real time preview (Theme customizer)
52
  ed.on( 'keyup change', function() {
53
  if ( bstw( id ).get_mode() === 'visual' ) {
57
  });
58
  $( '#' + id ).addClass( 'active' ).removeClass( 'activating' );
59
  };
60
+ if ( ! force_init ) {
61
+ this.go();
62
+ }
63
+ else {
64
+ tinymce.init( tinyMCEPreInit.mceInit[ id ] );
65
+ }
66
  } else {
67
  $( '#' + id ).addClass( 'active' ).removeClass( 'activating' );
68
  }
77
  tinymce.get( id ).remove();
78
  }
79
  if ( this.is_tinymce_configured() ) {
80
+ delete tinyMCEPreInit.mceInit[ id ];
81
  }
82
  if ( this.is_quicktags_active() ) {
83
  $( '.quicktags-toolbar', this.get_widget_inside() ).remove();
84
+ delete QTags.instances[ id ];
85
  }
86
  if ( this.is_quicktags_configured() ) {
87
+ delete tinyMCEPreInit.qtInit[ id ];
88
  }
89
  $( '#' + id ).removeClass( 'active' );
90
  }
96
  var content;
97
  if ( this.get_mode() === 'visual' ) {
98
  content = tinymce.get( id ).save();
99
+ if ( tinyMCEPreInit.mceInit[ id ].wpautop ) {
100
  content = window.switchEditors.pre_wpautop( content );
101
  }
102
  this.get_textarea().val( content);
103
  } else if ( this.is_tinymce_active() ) {
104
  content = this.get_textarea().val();
105
+ if ( tinyMCEPreInit.mceInit[ id ].wpautop ) {
106
  content = window.switchEditors.wpautop( content );
107
  }
108
  tinymce.get( id ).setContent( content );
157
 
158
  // Check if the tinymce instance is configured
159
  is_tinymce_configured: function() {
160
+ return 'undefined' !== typeof tinyMCEPreInit.mceInit[ id ];
161
  },
162
 
163
  // Check if the quicktags instance is active
164
  is_quicktags_active: function() {
165
+ return 'object' === typeof QTags.instances[ id ];
166
  },
167
 
168
  // Check if the quicktags instance is configured
169
  is_quicktags_configured: function() {
170
+ return 'object' === typeof tinyMCEPreInit.qtInit[ id ];
171
  },
172
 
173
  // Checks and settings to run before opening the widget
174
  prepare: function() {
175
  // Check for widgets with duplicate ids
176
+ if ( $( '[name="' + this.get_textarea().attr( 'name' ) + '"]' ).size() > 1) {
177
  if ( $( 'div.error', this.get_widget_inside() ).length === 0 ) {
178
+ this.get_widget_inside().prepend( '<div class="error"><strong>' + bstw_data.error_duplicate_id + '</strong></div>' );
179
  }
180
  }
181
  // Fix CSS
214
  // Event handler for widget open button
215
  $( document ).on( 'click', 'div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] .widget-action', function() {
216
  if ( ! $( this ).parents( '#available-widgets' ).length ) {
217
+ bstw( $( this ) ).prepare().responsive().activate( false );
218
  // Note: the save event handler is intentionally attached to the save button instead of document
219
  // to let the the textarea content be updated before the ajax request starts
220
  $( 'input[name=savewidget]', bstw( $( this ) ).get_widget() ).on( 'click', function() {
275
  'body.wp-customizer .expanded > div[id*=black-studio-tinymce].widget', // Theme Customizer
276
  '.widget-liquid-right div[id*=black-studio-tinymce].widget.open' // Widgets page
277
  ];
278
+ $( open_widgets_selectors.join( ', ' ) ).filter( ':has(.widget-inside:visible)' ).each(function() {
279
  $( '.widget-title', this ).trigger( 'click' );
280
  bstw( $( this ) ).deactivate();
281
  });
282
  if ( ui.item.is( '[id*=black-studio-tinymce]' ) ){
283
+ bstw( ui.item.find( 'textarea[id^=widget-black-studio-tinymce]' ) ).deactivate();
284
  }
285
  });
286
  $( document ).on( 'sortstop', function( event, ui ) {
287
  if ( ui.item.is( '[id*=black-studio-tinymce]' ) ){
288
+ bstw( ui.item.find( 'textarea[id^=widget-black-studio-tinymce]' ) ).activate( false );
289
  }
290
  });
291
  $( document ).on( 'sortupdate', function( event, ui ) {
320
  });
321
  });
322
 
 
 
 
 
 
323
  // Deactivate quicktags toolbar on hidden base instance
324
  $( '#qt_widget-black-studio-tinymce-__i__-text_toolbar' ).remove();
325
 
js/black-studio-tinymce-widget.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /* Black Studio TinyMCE Widget - v2.2.0 */
2
- var bstw;!function(a){bstw=function(b){var c=null;return"string"==typeof b?c=b:"object"==typeof b&&b instanceof jQuery&&(c=a("textarea[id^=widget-black-studio-tinymce][id$=text]",b.closest(bstw_data.container_selectors)).attr("id")),{activate:function(){if(!a("#"+c).hasClass("active")&&!a("#"+c).hasClass("activating")){if(a("#"+c).addClass("activating"),this.is_quicktags_configured()||(tinyMCEPreInit.qtInit[c]=tinyMCEPreInit.qtInit["black-studio-tinymce-widget"],tinyMCEPreInit.qtInit[c].id=c),!this.is_quicktags_active()){var b,d;b=QTags.instances,QTags.instances=[],quicktags(tinyMCEPreInit.qtInit[c]),QTags._buttonsInit(),d=QTags.instances[c],QTags.instances=b,QTags.instances[c]=d}this.is_tinymce_configured()||(tinyMCEPreInit.mceInit[c]=tinyMCEPreInit.mceInit["black-studio-tinymce-widget"],tinyMCEPreInit.mceInit[c].selector="#"+c),this.is_tinymce_active()||"visual"!==this.get_mode()?a("#"+c).addClass("active").removeClass("activating"):(tinyMCEPreInit.mceInit[c].setup=function(b){b.on("keyup change",function(){"visual"===bstw(c).get_mode()&&bstw(c).update_content(),a("#"+c).change()}),a("#"+c).addClass("active").removeClass("activating")},this.go())}return this},deactivate:function(){return a("#"+c).hasClass("activating")||(this.is_tinymce_active()&&tinymce.get(c).remove(),this.is_tinymce_configured()&&delete tinyMCEPreInit.mceInit[c],this.is_quicktags_active()&&(a(".quicktags-toolbar",this.get_widget_inside()).remove(),delete QTags.instances[c]),this.is_quicktags_configured()&&delete tinyMCEPreInit.qtInit[c],a("#"+c).removeClass("active")),this},update_content:function(){var a;return"visual"===this.get_mode()?(a=tinymce.get(c).save(),tinyMCEPreInit.mceInit[c].wpautop&&(a=window.switchEditors.pre_wpautop(a)),this.get_textarea().val(a)):this.is_tinymce_active()&&(a=this.get_textarea().val(),tinyMCEPreInit.mceInit[c].wpautop&&(a=window.switchEditors.wpautop(a)),tinymce.get(c).setContent(a)),this},go:function(a){return"undefined"==typeof a&&(a=this.get_mode()),window.switchEditors.go(c,"visual"===a?"tmce":"html"),this},get_mode:function(){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_container()).val()},set_mode:function(b){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_container()).val(b),this},get_container:function(){return a("#"+c).closest(bstw_data.container_selectors)},get_widget:function(){return a("#"+c).closest("div.widget")},get_widget_inside:function(){return a("#"+c).closest("div.widget-inside")},get_textarea:function(){return a("#"+c)},is_tinymce_active:function(){return"object"==typeof tinymce&&"object"==typeof tinymce.get(c)&&null!==tinymce.get(c)},is_tinymce_configured:function(){return"undefined"!=typeof tinyMCEPreInit.mceInit[c]},is_quicktags_active:function(){return"object"==typeof QTags.instances[c]},is_quicktags_configured:function(){return"object"==typeof tinyMCEPreInit.qtInit[c]},prepare:function(){return a('[name="'+this.get_textarea().attr("name")+'"]').size()>1&&0===a("div.error",this.get_widget_inside()).length&&this.get_widget_inside().prepend('<div class="error"><strong>'+bstw_data.error_duplicate_id+"</strong></div>"),this.get_widget().css("position","relative").css("z-index","100000"),a("#wpbody-content").css("overflow","visible"),this},responsive:function(){if(this.get_widget_inside().is(":visible")){var b,c=parseInt(a("input[name=widget-width]",this.get_widget()).val(),10),d=a(window).width(),e=this.get_widget().parent().width(),f=parseInt(a("#wpcontent").css("margin-left"),10),g=!("undefined"==typeof isRtl||!isRtl);c+f+30>d&&(b=this.get_widget().closest("div.widget-liquid-right").length?g?"margin-right":"margin-left":g?"margin-left":"margin-right",this.get_widget().css(b,e-(d-30-f)+"px"))}return this}}},a(document).ready(function(){a(document).on("click","div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] .widget-action",function(){a(this).parents("#available-widgets").length||(bstw(a(this)).prepare().responsive().activate(),a("input[name=savewidget]",bstw(a(this)).get_widget()).on("click",function(){var b=a(this).closest(".widget").find(".wp-editor-wrap").height();a(this).closest(".widget").find(".wp-editor-wrap").height(b).append('<div class="bstw-loading"></div>'),a(this).closest(".widget").find(".bstw-loading").height(b).show(),bstw(a(this)).update_content()}))}),a(document).on("widget-added",function(a,b){b.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),bstw(b).activate())}),a(document).on("widget-updated",function(a,b){b.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),bstw(b).deactivate().activate())}),a(document).on("widget-synced",function(a,b){b.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),"visual"===bstw(b).get_mode()&&bstw(b).update_content())}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=tmce]",function(){bstw(a(this)).set_mode("visual")}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=html]",function(){bstw(a(this)).set_mode("html")}),a(document).on("click.wp-editor",".wp-editor-wrap",function(){this.id&&(window.wpActiveEditor=this.id.slice(3,-5))}),a(document).on("sortstart",function(b,c){var d=["body.wp-customizer .expanded > div[id*=black-studio-tinymce].widget",".widget-liquid-right div[id*=black-studio-tinymce].widget.open"];a(d.join(", ")).filter(":has(.widget-inside:visible)").each(function(){a(".widget-title",this).trigger("click"),bstw(a(this)).deactivate()}),c.item.is("[id*=black-studio-tinymce]")&&bstw(c.item.find("textarea[id^=widget-black-studio-tinymce]")).deactivate()}),a(document).on("sortstop",function(a,b){b.item.is("[id*=black-studio-tinymce]")&&bstw(b.item.find("textarea[id^=widget-black-studio-tinymce]")).activate()}),a(document).on("sortupdate",function(b,c){null!==b&&a(c.item).is(".ui-draggable")||(a("body").addClass("wait"),setTimeout(function(){a("textarea[id^=widget-black-studio-tinymce].active").each(function(){bstw(a(this)).deactivate()}),a("body").removeClass("wait")},1e3))}),"object"==typeof bstw_data.activate_events&&bstw_data.activate_events.length>0&&a(document).on(bstw_data.activate_events.join(" "),function(b){bstw(a(b.target)).activate()}),"object"==typeof bstw_data.deactivate_events&&bstw_data.deactivate_events.length>0&&a(document).on(bstw_data.deactivate_events.join(" "),function(b){bstw(a(b.target)).deactivate()}),a(window).resize(function(){a("textarea[id^=widget-black-studio-tinymce]").each(function(){bstw(a(this)).responsive()})}),a("body.widgets_access").size()>0&&bstw(a("textarea[id^=widget-black-studio-tinymce]").attr("id")).activate(),a("#qt_widget-black-studio-tinymce-__i__-text_toolbar").remove(),a(document).on("click",".bstw-links-icon",function(b){b.preventDefault(),a(this).closest(".bstw-links").children(".bstw-links-list").toggle()})})}(jQuery);
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
+ var bstw;!function(a){bstw=function(b){var c=null;return"string"==typeof b?c=b:"object"==typeof b&&b instanceof jQuery&&(c=a("textarea[id^=widget-black-studio-tinymce][id$=text]",b.closest(bstw_data.container_selectors)).attr("id")),{activate:function(b){if(b="undefined"!=typeof b?b:!0,!a("#"+c).hasClass("active")&&!a("#"+c).hasClass("activating")){if(a("#"+c).addClass("activating"),this.is_quicktags_configured()||(tinyMCEPreInit.qtInit[c]=tinyMCEPreInit.qtInit["black-studio-tinymce-widget"],tinyMCEPreInit.qtInit[c].id=c),!this.is_quicktags_active()){var d,e;d=QTags.instances,QTags.instances=[],quicktags(tinyMCEPreInit.qtInit[c]),QTags._buttonsInit(),e=QTags.instances[c],QTags.instances=d,QTags.instances[c]=e}this.is_tinymce_configured()||(tinyMCEPreInit.mceInit[c]=tinyMCEPreInit.mceInit["black-studio-tinymce-widget"],tinyMCEPreInit.mceInit[c].selector="#"+c),this.is_tinymce_active()||"visual"!==this.get_mode()?a("#"+c).addClass("active").removeClass("activating"):(tinyMCEPreInit.mceInit[c].setup=function(b){b.on("keyup change",function(){"visual"===bstw(c).get_mode()&&bstw(c).update_content(),a("#"+c).change()}),a("#"+c).addClass("active").removeClass("activating")},b?tinymce.init(tinyMCEPreInit.mceInit[c]):this.go())}return this},deactivate:function(){return a("#"+c).hasClass("activating")||(this.is_tinymce_active()&&tinymce.get(c).remove(),this.is_tinymce_configured()&&delete tinyMCEPreInit.mceInit[c],this.is_quicktags_active()&&(a(".quicktags-toolbar",this.get_widget_inside()).remove(),delete QTags.instances[c]),this.is_quicktags_configured()&&delete tinyMCEPreInit.qtInit[c],a("#"+c).removeClass("active")),this},update_content:function(){var a;return"visual"===this.get_mode()?(a=tinymce.get(c).save(),tinyMCEPreInit.mceInit[c].wpautop&&(a=window.switchEditors.pre_wpautop(a)),this.get_textarea().val(a)):this.is_tinymce_active()&&(a=this.get_textarea().val(),tinyMCEPreInit.mceInit[c].wpautop&&(a=window.switchEditors.wpautop(a)),tinymce.get(c).setContent(a)),this},go:function(a){return"undefined"==typeof a&&(a=this.get_mode()),window.switchEditors.go(c,"visual"===a?"tmce":"html"),this},get_mode:function(){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_container()).val()},set_mode:function(b){return a("input[id^=widget-black-studio-tinymce][id$=type]",this.get_container()).val(b),this},get_container:function(){return a("#"+c).closest(bstw_data.container_selectors)},get_widget:function(){return a("#"+c).closest("div.widget")},get_widget_inside:function(){return a("#"+c).closest("div.widget-inside")},get_textarea:function(){return a("#"+c)},is_tinymce_active:function(){return"object"==typeof tinymce&&"object"==typeof tinymce.get(c)&&null!==tinymce.get(c)},is_tinymce_configured:function(){return"undefined"!=typeof tinyMCEPreInit.mceInit[c]},is_quicktags_active:function(){return"object"==typeof QTags.instances[c]},is_quicktags_configured:function(){return"object"==typeof tinyMCEPreInit.qtInit[c]},prepare:function(){return a('[name="'+this.get_textarea().attr("name")+'"]').size()>1&&0===a("div.error",this.get_widget_inside()).length&&this.get_widget_inside().prepend('<div class="error"><strong>'+bstw_data.error_duplicate_id+"</strong></div>"),this.get_widget().css("position","relative").css("z-index","100000"),a("#wpbody-content").css("overflow","visible"),this},responsive:function(){if(this.get_widget_inside().is(":visible")){var b,c=parseInt(a("input[name=widget-width]",this.get_widget()).val(),10),d=a(window).width(),e=this.get_widget().parent().width(),f=parseInt(a("#wpcontent").css("margin-left"),10),g=!("undefined"==typeof isRtl||!isRtl);c+f+30>d&&(b=this.get_widget().closest("div.widget-liquid-right").length?g?"margin-right":"margin-left":g?"margin-left":"margin-right",this.get_widget().css(b,e-(d-30-f)+"px"))}return this}}},a(document).ready(function(){a(document).on("click","div.widget[id*=black-studio-tinymce] .widget-title, div.widget[id*=black-studio-tinymce] .widget-action",function(){a(this).parents("#available-widgets").length||(bstw(a(this)).prepare().responsive().activate(!1),a("input[name=savewidget]",bstw(a(this)).get_widget()).on("click",function(){var b=a(this).closest(".widget").find(".wp-editor-wrap").height();a(this).closest(".widget").find(".wp-editor-wrap").height(b).append('<div class="bstw-loading"></div>'),a(this).closest(".widget").find(".bstw-loading").height(b).show(),bstw(a(this)).update_content()}))}),a(document).on("widget-added",function(a,b){b.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),bstw(b).activate())}),a(document).on("widget-updated",function(a,b){b.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),bstw(b).deactivate().activate())}),a(document).on("widget-synced",function(a,b){b.is("[id*=black-studio-tinymce]")&&(a.preventDefault(),"visual"===bstw(b).get_mode()&&bstw(b).update_content())}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=tmce]",function(){bstw(a(this)).set_mode("visual")}),a(document).on("click","a[id^=widget-black-studio-tinymce][id$=html]",function(){bstw(a(this)).set_mode("html")}),a(document).on("click.wp-editor",".wp-editor-wrap",function(){this.id&&(window.wpActiveEditor=this.id.slice(3,-5))}),a(document).on("sortstart",function(b,c){var d=["body.wp-customizer .expanded > div[id*=black-studio-tinymce].widget",".widget-liquid-right div[id*=black-studio-tinymce].widget.open"];a(d.join(", ")).filter(":has(.widget-inside:visible)").each(function(){a(".widget-title",this).trigger("click"),bstw(a(this)).deactivate()}),c.item.is("[id*=black-studio-tinymce]")&&bstw(c.item.find("textarea[id^=widget-black-studio-tinymce]")).deactivate()}),a(document).on("sortstop",function(a,b){b.item.is("[id*=black-studio-tinymce]")&&bstw(b.item.find("textarea[id^=widget-black-studio-tinymce]")).activate(!1)}),a(document).on("sortupdate",function(b,c){null!==b&&a(c.item).is(".ui-draggable")||(a("body").addClass("wait"),setTimeout(function(){a("textarea[id^=widget-black-studio-tinymce].active").each(function(){bstw(a(this)).deactivate()}),a("body").removeClass("wait")},1e3))}),"object"==typeof bstw_data.activate_events&&bstw_data.activate_events.length>0&&a(document).on(bstw_data.activate_events.join(" "),function(b){bstw(a(b.target)).activate()}),"object"==typeof bstw_data.deactivate_events&&bstw_data.deactivate_events.length>0&&a(document).on(bstw_data.deactivate_events.join(" "),function(b){bstw(a(b.target)).deactivate()}),a(window).resize(function(){a("textarea[id^=widget-black-studio-tinymce]").each(function(){bstw(a(this)).responsive()})}),a("#qt_widget-black-studio-tinymce-__i__-text_toolbar").remove(),a(document).on("click",".bstw-links-icon",function(b){b.preventDefault(),a(this).closest(".bstw-links").children(".bstw-links-list").toggle()})})}(jQuery);
js/wp-page-widget.min.js CHANGED
@@ -1,2 +1,2 @@
1
- /* Black Studio TinyMCE Widget - v2.2.0 */
2
  !function(a){a(document).ready(function(){a(document).on("click","#pw-sidebars-customize div[id*=black-studio-tinymce].widget input.widget-control-save",function(){a(this).unbind("ajaxSuccess").ajaxSuccess(function(){a(this).trigger("widget-updated",[bstw(a(this)).get_widget()]).unbind("ajaxSuccess")})}),a(document).on("click","#pw-sidebars-customize div[id*=black-studio-tinymce].widget .widget-title",function(){var b=bstw(a(this)).get_textarea();b.hasClass("active")&&(bstw(a(this)).deactivate(),a(this).trigger("widget-added",[bstw(a(this)).get_widget()]))})})}(jQuery);
1
+ /* Black Studio TinyMCE Widget - v2.2.1 */
2
  !function(a){a(document).ready(function(){a(document).on("click","#pw-sidebars-customize div[id*=black-studio-tinymce].widget input.widget-control-save",function(){a(this).unbind("ajaxSuccess").ajaxSuccess(function(){a(this).trigger("widget-updated",[bstw(a(this)).get_widget()]).unbind("ajaxSuccess")})}),a(document).on("click","#pw-sidebars-customize div[id*=black-studio-tinymce].widget .widget-title",function(){var b=bstw(a(this)).get_textarea();b.hasClass("active")&&(bstw(a(this)).deactivate(),a(this).trigger("widget-added",[bstw(a(this)).get_widget()]))})})}(jQuery);
languages/black-studio-tinymce-widget.pot CHANGED
@@ -1,99 +1,99 @@
1
- # Copyright (C) 2014 Black Studio
2
- # This file is distributed under the GPLv3.
3
- msgid ""
4
- msgstr ""
5
- "Project-Id-Version: Black Studio TinyMCE Widget 2.2.0\n"
6
- "Report-Msgid-Bugs-To: "
7
- "https://github.com/black-studio/black-studio-tinymce-widget/issues\n"
8
- "POT-Creation-Date: 2014-11-18 09:48:00+00:00\n"
9
- "MIME-Version: 1.0\n"
10
- "Content-Type: text/plain; charset=utf-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: Black Studio <info@blackstudio.it>\n"
14
- "Language-Team: Black Studio <info@blackstudio.it>\n"
15
- "X-Generator: grunt-wp-i18n 0.4.8\n"
16
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
- "X-Poedit-Basepath: .\n"
18
- "X-Poedit-Language: English\n"
19
- "X-Poedit-Country: United States\n"
20
- "X-Poedit-SourceCharset: utf-8\n"
21
- "X-Poedit-KeywordsList: "
22
- "__;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_"
23
- "x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
24
- "X-Poedit-Bookmarks: \n"
25
- "X-Poedit-SearchPath-0: .\n"
26
- "X-Textdomain-Support: yes\n"
27
-
28
- #: black-studio-tinymce-widget.php:280
29
- #. translators: error message shown when multiple instance of the plugin are
30
- #. detected
31
- msgid ""
32
- "ERROR: Multiple instances of the Black Studio TinyMCE Widget plugin were "
33
- "detected. Please activate only one instance at a time."
34
- msgstr ""
35
-
36
- #: includes/class-admin-pointer.php:168
37
- #. translators: text for the dismissable admin pointer tooltip
38
- msgid ""
39
- "The Visual Editor widget allows you to insert rich text and media objects "
40
- "in your sidebars"
41
- msgstr ""
42
-
43
- #: includes/class-admin.php:247
44
- #. translators: error message shown when a duplicated widget ID is detected
45
- msgid ""
46
- "ERROR: Duplicate widget ID detected. To avoid content loss, please create a "
47
- "new widget with the same content and then delete this one."
48
- msgstr ""
49
-
50
- #: includes/class-admin.php:339
51
- #. translators: text used for plugin home link
52
- msgid "Home"
53
- msgstr ""
54
-
55
- #: includes/class-admin.php:341
56
- #. translators: text used for support faq link
57
- msgid "FAQ"
58
- msgstr ""
59
-
60
- #: includes/class-admin.php:343
61
- #. translators: text used for support forum link
62
- msgid "Support"
63
- msgstr ""
64
-
65
- #: includes/class-admin.php:345
66
- #. translators: text used for reviews link
67
- msgid "Rate"
68
- msgstr ""
69
-
70
- #: includes/class-admin.php:347
71
- #. translators: text used for follow on twitter link
72
- msgid "Follow"
73
- msgstr ""
74
-
75
- #: includes/class-admin.php:349
76
- #. translators: text used for donation link
77
- msgid "Donate"
78
- msgstr ""
79
-
80
- #: includes/class-admin.php:369
81
- #. translators: text used for the icon that shows the plugin links
82
- msgid "About Black Studio TinyMCE Widget plugin"
83
- msgstr ""
84
-
85
- #: includes/class-widget.php:28
86
- #. translators: title of the widget
87
- msgid "Visual Editor"
88
- msgstr ""
89
-
90
- #: includes/class-widget.php:30
91
- #. translators: description of the widget, shown in available widgets
92
- msgid "Arbitrary text or HTML with visual editor"
93
- msgstr ""
94
-
95
- #. Description of the plugin/theme
96
- msgid ""
97
- "Adds a new \"Visual Editor\" widget type based on the native WordPress "
98
- "TinyMCE editor."
99
  msgstr ""
1
+ # Copyright (C) 2014 Black Studio
2
+ # This file is distributed under the GPLv3.
3
+ msgid ""
4
+ msgstr ""
5
+ "Project-Id-Version: Black Studio TinyMCE Widget 2.2.0\n"
6
+ "Report-Msgid-Bugs-To: "
7
+ "https://github.com/black-studio/black-studio-tinymce-widget/issues\n"
8
+ "POT-Creation-Date: 2014-11-18 09:48:00+00:00\n"
9
+ "MIME-Version: 1.0\n"
10
+ "Content-Type: text/plain; charset=utf-8\n"
11
+ "Content-Transfer-Encoding: 8bit\n"
12
+ "PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
13
+ "Last-Translator: Black Studio <info@blackstudio.it>\n"
14
+ "Language-Team: Black Studio <info@blackstudio.it>\n"
15
+ "X-Generator: grunt-wp-i18n 0.4.8\n"
16
+ "Plural-Forms: nplurals=2; plural=n != 1;\n"
17
+ "X-Poedit-Basepath: .\n"
18
+ "X-Poedit-Language: English\n"
19
+ "X-Poedit-Country: United States\n"
20
+ "X-Poedit-SourceCharset: utf-8\n"
21
+ "X-Poedit-KeywordsList: "
22
+ "__;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_"
23
+ "x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
24
+ "X-Poedit-Bookmarks: \n"
25
+ "X-Poedit-SearchPath-0: .\n"
26
+ "X-Textdomain-Support: yes\n"
27
+
28
+ #: black-studio-tinymce-widget.php:280
29
+ #. translators: error message shown when multiple instance of the plugin are
30
+ #. detected
31
+ msgid ""
32
+ "ERROR: Multiple instances of the Black Studio TinyMCE Widget plugin were "
33
+ "detected. Please activate only one instance at a time."
34
+ msgstr ""
35
+
36
+ #: includes/class-admin-pointer.php:168
37
+ #. translators: text for the dismissable admin pointer tooltip
38
+ msgid ""
39
+ "The Visual Editor widget allows you to insert rich text and media objects "
40
+ "in your sidebars"
41
+ msgstr ""
42
+
43
+ #: includes/class-admin.php:247
44
+ #. translators: error message shown when a duplicated widget ID is detected
45
+ msgid ""
46
+ "ERROR: Duplicate widget ID detected. To avoid content loss, please create a "
47
+ "new widget with the same content and then delete this one."
48
+ msgstr ""
49
+
50
+ #: includes/class-admin.php:339
51
+ #. translators: text used for plugin home link
52
+ msgid "Home"
53
+ msgstr ""
54
+
55
+ #: includes/class-admin.php:341
56
+ #. translators: text used for support faq link
57
+ msgid "FAQ"
58
+ msgstr ""
59
+
60
+ #: includes/class-admin.php:343
61
+ #. translators: text used for support forum link
62
+ msgid "Support"
63
+ msgstr ""
64
+
65
+ #: includes/class-admin.php:345
66
+ #. translators: text used for reviews link
67
+ msgid "Rate"
68
+ msgstr ""
69
+
70
+ #: includes/class-admin.php:347
71
+ #. translators: text used for follow on twitter link
72
+ msgid "Follow"
73
+ msgstr ""
74
+
75
+ #: includes/class-admin.php:349
76
+ #. translators: text used for donation link
77
+ msgid "Donate"
78
+ msgstr ""
79
+
80
+ #: includes/class-admin.php:369
81
+ #. translators: text used for the icon that shows the plugin links
82
+ msgid "About Black Studio TinyMCE Widget plugin"
83
+ msgstr ""
84
+
85
+ #: includes/class-widget.php:28
86
+ #. translators: title of the widget
87
+ msgid "Visual Editor"
88
+ msgstr ""
89
+
90
+ #: includes/class-widget.php:30
91
+ #. translators: description of the widget, shown in available widgets
92
+ msgid "Arbitrary text or HTML with visual editor"
93
+ msgstr ""
94
+
95
+ #. Description of the plugin/theme
96
+ msgid ""
97
+ "Adds a new \"Visual Editor\" widget type based on the native WordPress "
98
+ "TinyMCE editor."
99
  msgstr ""
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.blackstudio.it/en/wordpress-plugins/black-studio-tinymce
4
  Tags: wysiwyg, widget, tinymce, editor, image, media, rich text, rich text editor, visual editor, wysiwyg editor, tinymce editor, widget editor, html editor, wysiwyg widget, html widget, editor widget, text widget, rich text widget, enhanced text widget, tinymce widget, visual widget, image widget, media widget
5
  Requires at least: 3.1
6
  Tested up to: 4.1
7
- Stable tag: 2.2.0
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl.html
10
 
@@ -178,6 +178,14 @@ Plugin's data is stored in serialized format inside a record in the `wp_options`
178
 
179
  == Changelog ==
180
 
 
 
 
 
 
 
 
 
181
  = 2.2.0 (2014-11-18) =
182
  * Added filter to hide empty widgets
183
  * Added workaround for WordPress Core bug #28403
@@ -396,5 +404,5 @@ Plugin's data is stored in serialized format inside a record in the `wp_options`
396
 
397
  == Upgrade Notice ==
398
 
399
- = 2.2.0 =
400
  Version 2.x is a major update. If you are upgrading from version 1.x please ensure to backup your database before upgrading.
4
  Tags: wysiwyg, widget, tinymce, editor, image, media, rich text, rich text editor, visual editor, wysiwyg editor, tinymce editor, widget editor, html editor, wysiwyg widget, html widget, editor widget, text widget, rich text widget, enhanced text widget, tinymce widget, visual widget, image widget, media widget
5
  Requires at least: 3.1
6
  Tested up to: 4.1
7
+ Stable tag: 2.2.1
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl.html
10
 
178
 
179
  == Changelog ==
180
 
181
+ = 2.2.1 (2014-11-18) =
182
+ * Fixed paragraph formatting bug on saving
183
+ * Fixed real-time update bug in Theme Customizer
184
+ * Enhanced editor initialization
185
+ * Simplified internal integration with Page Builder
186
+ * Simplified internal initialization for accessibility mode
187
+ * Minor changes for coding standard compliance
188
+
189
  = 2.2.0 (2014-11-18) =
190
  * Added filter to hide empty widgets
191
  * Added workaround for WordPress Core bug #28403
404
 
405
  == Upgrade Notice ==
406
 
407
+ = 2.2.1 =
408
  Version 2.x is a major update. If you are upgrading from version 1.x please ensure to backup your database before upgrading.