WordPress.org

Make WordPress Core

Opened 2 years ago

Closed 2 years ago

#20030 closed defect (bug) (duplicate)

WP_Editor outputs external plugins multiple times

Reported by: cmsmaster Owned by:
Milestone: Priority: normal
Severity: normal Version: 3.3
Component: TinyMCE Keywords: has-patch
Focuses: Cc:

Description (last modified by ocean90)

Hello!

We are WP themes developers.

It appears that recent versions of WordPress, starting from 3.3 have a bug!

When there is a restriction on the server, the WP visual editor doesn't work.

It happens when a few shortcodes are launching, and we have more than 10 shortcodes in all our themes. When a new shortcode launches, previous one stays launched and finally there are two of them at once, and so on. Once launched shortcodes never turn off (the array never cleans up), but it keeps launching more and more.

on WordPress 3.2 - 3.2.1

tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table",
"en");
tinymce.PluginManager.load("table",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video",
"en");
tinymce.PluginManager.load("video",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio",
"en");
tinymce.PluginManager.load("audio",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post",
"en");
tinymce.PluginManager.load("post",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/email",
"en");
tinymce.PluginManager.load("email",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/email/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/map",
"en");
tinymce.PluginManager.load("map",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/map/editor_plugin.js.php");

from WordPress 3.3 - 3.3.1

tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table",
"en");
tinymce.PluginManager.load("table",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table",
"en");
tinymce.PluginManager.load("table",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video",
"en");
tinymce.PluginManager.load("video",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table",
"en");
tinymce.PluginManager.load("table",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video",
"en");
tinymce.PluginManager.load("video",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio",
"en");
tinymce.PluginManager.load("audio",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table",
"en");
tinymce.PluginManager.load("table",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video",
"en");
tinymce.PluginManager.load("video",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio",
"en");
tinymce.PluginManager.load("audio",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post",
"en");
tinymce.PluginManager.load("post",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table",
"en");
tinymce.PluginManager.load("table",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video",
"en");
tinymce.PluginManager.load("video",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio",
"en");
tinymce.PluginManager.load("audio",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post",
"en");
tinymce.PluginManager.load("post",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/email",
"en");
tinymce.PluginManager.load("email",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/email/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap",
"en");
tinymce.PluginManager.load("dropcap",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/dropcap/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button",
"en");
tinymce.PluginManager.load("button",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/button/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box",
"en");
tinymce.PluginManager.load("box",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/box/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab",
"en");
tinymce.PluginManager.load("tab",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/tab/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column",
"en");
tinymce.PluginManager.load("column",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/column/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider",
"en");
tinymce.PluginManager.load("divider",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/divider/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table",
"en");
tinymce.PluginManager.load("table",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/table/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video",
"en");
tinymce.PluginManager.load("video",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/video/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio",
"en");
tinymce.PluginManager.load("audio",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/audio/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post",
"en");
tinymce.PluginManager.load("post",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/post/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/email",
"en");
tinymce.PluginManager.load("email",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/email/editor_plugin.js.php");
tinyMCEPreInit.load_ext("http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/map",
"en");
tinymce.PluginManager.load("map",
"http://pacifico.cmsmasters.net/wp-content/themes/pacifico/theme/administrator/tinymce/map/editor_plugin.js.php");

file of init one of the shortcodes

<?php
/**
* @package WordPress
* @subpackage Pacifico
* @since Pacifico 1.0
*
* Audio Shortcodes & Quick Tags Register
* Created by CMSMasters
*
*/

if (!class_exists('CMSMastersAudio')) {
class CMSMastersAudio {
var $buttonName;
var $buttonTitle;
var $buttonArray;

function __construct() {
$this->buttonName = 'audio';
$this->buttonTitle = __('Audio', 'cmsmasters');
$this->buttonArray = array(
0 => array(__('HTML5 Audio', 'cmsmasters'), 'html5audio'),
1 => array(__('Single Audio Player', 'cmsmasters'),
'single_audio_player'),
2 => array(__('Multiple Audio Player', 'cmsmasters'),
'multiple_audio_player')
);
}

function addDropdown() {
if (!current_user_can('edit_posts') && !current_user_can('edit_pages')) {
return;
}

if (get_user_option('rich_editing') == 'true') {
add_filter('mce_external_plugins', array($this, 'registerTmcePlugin'));
add_filter('mce_buttons_4', array($this, 'registerButton'));
add_filter('wp_fullscreen_buttons', array($this, 'registerFscreenButton'));
}
}

function registerButton($buttons) {
array_push($buttons, $this->buttonName);

return $buttons;
}

function registerTmcePlugin($buttons) {
$buttons[$this->buttonName] = CMSMASTERS_ADMIN_TINYMCE . '/' .
$this->buttonName . '/editor_plugin.js.php';

return $buttons;
}

function registerFscreenButton($buttons) {
$buttons[] = 'separator';

foreach ($this->buttonArray as $val) {
$buttons[$val[1]] = array(
'title' => $val[0],
'onclick' => "tinyMCE.execCommand('" . $val[1] .
"_command');",
'both' => true
);
}

return $buttons;
}

function registerQtagPluginButton() {
wp_enqueue_script('cmsms_' . $this->buttonName .'_quicktag',
CMSMASTERS_ADMIN_TINYMCE . '/' . $this->buttonName .
'/quicktag_plugin.js.php', array('quicktags'));
}
}
}

if (!isset($cmsmasters_shortcode_audio)) {
$cmsmasters_shortcode_audio = new CMSMastersAudio();

add_action('admin_head', array($cmsmasters_shortcode_audio, 'addDropdown'));
add_action('admin_print_scripts',
array($cmsmasters_shortcode_audio, 'registerQtagPluginButton'));
}

?>

add_filter('mce_external_plugins', array($this,
'registerTmcePlugin')); <- this function (filter) are works wrong

We spent weeks on struggling to this WP bug, but we found that it's impossible to add "quicktags" and "tinyMCE" buttons to WP editor in other way, as WordPress allows only one way to implement that. We were hoping you will fix this bug, but it seems to be unnoticed.

Thanks

Attachments (1)

20030.diff (1.6 KB) - added by duck_ 2 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 ocean902 years ago

  • Description modified (diff)

comment:2 duck_2 years ago

  • Keywords has-patch added
  • Summary changed from Shortcodes 3.3 to WP_Editor outputs external plugins multiple times
  • Version changed from 3.3.1 to 3.3

This occurs because WP_Editor::editor_settings() appends $ext_plugins to self::$ext_plugins without clearing the variable. So by the end of the loop $ext_plugins contains the full output we desire (one entry per plugin), but self::$ext_plugins has the first external plugin include count( $ext_plugins ) times. See http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/class-wp-editor.php#L248.

The patch attached moves the assignment to self::$ext_plugins out of the loop.

A smaller test case:

function trac20030_mce_external_plugins( $plugins ) {
   $plugins['myplugin1'] = WP_PLUGIN_URL . '/myplugin1.js';
   $plugins['myplugin2'] = WP_PLUGIN_URL . '/myplugin2.js';
   return $plugins;
}
add_filter( 'mce_external_plugins', 'trac20030_mce_external_plugins' );

Outputs this in current trunk:

tinyMCEPreInit.load_ext("http://wp.dev/wp-content/plugins", "en");
tinymce.PluginManager.load("myplugin1", "http://wp.dev/wp-content/plugins/myplugin1.js");
tinyMCEPreInit.load_ext("http://wp.dev/wp-content/plugins", "en");
tinymce.PluginManager.load("myplugin1", "http://wp.dev/wp-content/plugins/myplugin1.js");
tinyMCEPreInit.load_ext("http://wp.dev/wp-content/plugins", "en");
tinymce.PluginManager.load("myplugin2", "http://wp.dev/wp-content/plugins/myplugin2.js");

Notice the extra entry for "myplugin1".

duck_2 years ago

comment:3 duck_2 years ago

  • Milestone changed from Awaiting Review to 3.4

comment:4 follow-up: SergeyBiryukov2 years ago

Duplicate of #19648.

comment:5 in reply to: ↑ 4 duck_2 years ago

  • Milestone 3.4 deleted
  • Resolution set to duplicate
  • Status changed from new to closed

Replying to SergeyBiryukov:

Duplicate of #19648.

Thanks.

Note: See TracTickets for help on using tickets.