diff options
| author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2007-01-26 12:57:25 +0000 |
|---|---|---|
| committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2007-01-26 12:57:25 +0000 |
| commit | 8a8560c1b75ce5cb9f3b86bf3cba19c6df5000ff (patch) | |
| tree | 9a697c0c3029c2b7a5223d818398c562346921e3 /wp-includes/js/tinymce | |
| parent | c794c54fc14d1a4af6101ace58f8e60da2dc7d98 (diff) | |
| download | wordpress-mu-8a8560c1b75ce5cb9f3b86bf3cba19c6df5000ff.tar.gz wordpress-mu-8a8560c1b75ce5cb9f3b86bf3cba19c6df5000ff.tar.xz wordpress-mu-8a8560c1b75ce5cb9f3b86bf3cba19c6df5000ff.zip | |
WP Merge to rev 4813
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@868 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-includes/js/tinymce')
| -rw-r--r-- | wp-includes/js/tinymce/plugins/autosave/editor_plugin.js | 4 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/plugins/directionality/editor_plugin.js | 4 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js | 46 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/plugins/paste/editor_plugin.js | 4 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/themes/advanced/about.htm | 2 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/themes/advanced/css/editor_ui.css | 108 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/themes/advanced/editor_template.js | 47 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/themes/advanced/jscripts/source_editor.js | 9 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/tiny_mce.js | 308 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/tiny_mce_config.php | 2 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/utils/editable_selects.js | 61 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/utils/form_utils.js | 4 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/utils/mclayer.js | 4 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/utils/mctabs.js | 4 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/utils/validate.js | 4 | ||||
| -rw-r--r-- | wp-includes/js/tinymce/wp-mce-help.php | 2 |
16 files changed, 409 insertions, 204 deletions
diff --git a/wp-includes/js/tinymce/plugins/autosave/editor_plugin.js b/wp-includes/js/tinymce/plugins/autosave/editor_plugin.js index 68563f9..1ab5d1e 100644 --- a/wp-includes/js/tinymce/plugins/autosave/editor_plugin.js +++ b/wp-includes/js/tinymce/plugins/autosave/editor_plugin.js @@ -1,8 +1,8 @@ /**
- * $Id: editor_plugin_src.js 126 2006-10-22 16:19:55Z spocke $
+ * $Id: editor_plugin_src.js 162 2007-01-03 16:16:52Z spocke $
*
* @author Moxiecode
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/
/* Import plugin specific language pack */
diff --git a/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js b/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js index c8a6295..eb758f5 100644 --- a/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js +++ b/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js @@ -1,8 +1,8 @@ /**
- * $Id: editor_plugin_src.js 126 2006-10-22 16:19:55Z spocke $
+ * $Id: editor_plugin_src.js 162 2007-01-03 16:16:52Z spocke $
*
* @author Moxiecode
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/
/* Import plugin specific language pack */
diff --git a/wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js b/wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js index 304e478..9f75e29 100644 --- a/wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js +++ b/wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js @@ -1,10 +1,10 @@ /**
- * $Id: editor_plugin_src.js 126 2006-10-22 16:19:55Z spocke $
+ * $Id: editor_plugin_src.js 172 2007-01-09 11:37:11Z spocke $
*
* Moxiecode DHTML Windows script.
*
* @author Moxiecode
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/
// Patch openWindow, closeWindow TinyMCE functions
@@ -66,13 +66,17 @@ TinyMCE_Engine.prototype.openWindow = function(template, args) { }
var elm = document.getElementById(this.selectedInstance.editorId + '_parent');
- var pos = tinyMCE.getAbsPosition(elm);
+
+ if (tinyMCE.hasPlugin('fullscreen') && this.selectedInstance.getData('fullscreen').enabled)
+ pos = { absLeft: 0, absTop: 0 };
+ else
+ pos = tinyMCE.getAbsPosition(elm);
// Center div in editor area
pos.absLeft += Math.round((elm.firstChild.clientWidth / 2) - (width / 2));
pos.absTop += Math.round((elm.firstChild.clientHeight / 2) - (height / 2));
- url += tinyMCE.settings['imp_version'] ? (url.indexOf('?')==-1?'?':'&') + 'ver=' + tinyMCE.settings['imp_version'] : '';
+ url += tinyMCE.settings['imp_version'] ? (url.indexOf('?')==-1?'?':'&') + 'ver=' + tinyMCE.settings['imp_version'] : ''; // WordPress cache buster
mcWindows.open(url, mcWindows.idCounter++, "modal=yes,width=" + width+ ",height=" + height + ",resizable=" + resizable + ",scrollbars=" + scrollbars + ",statusbar=" + resizable + ",left=" + pos.absLeft + ",top=" + pos.absTop);
};
@@ -111,7 +115,7 @@ function TinyMCE_Windows() { this.action = "none";
this.selectedWindow = null;
this.lastSelectedWindow = null;
- this.zindex = 100;
+ this.zindex = 1001;
this.mouseDownScreenX = 0;
this.mouseDownScreenY = 0;
this.mouseDownLayerX = 0;
@@ -323,8 +327,9 @@ TinyMCE_Windows.prototype.open = function(url, name, features) { // Blocks the document events by placing a image over the whole document
TinyMCE_Windows.prototype.setDocumentLock = function(state) {
+ var elm = document.getElementById('mcWindowEventBlocker');
+
if (state) {
- var elm = document.getElementById('mcWindowEventBlocker');
if (elm == null) {
elm = document.createElement("div");
@@ -348,9 +353,7 @@ TinyMCE_Windows.prototype.setDocumentLock = function(state) { elm.style.zIndex = mcWindows.zindex-1;
elm.style.display = "block";
- } else {
- var elm = document.getElementById('mcWindowEventBlocker');
-
+ } else if (elm != null) {
if (mcWindows.windows.length == 0)
elm.parentNode.removeChild(elm);
else
@@ -559,7 +562,7 @@ TinyMCE_Window.prototype.close = function() { mcWindows.setDocumentLock(false);
- tinyMCE.selectedInstance.getWin().focus();
+ tinyMCE.selectedInstance.getWin().focus(); // WordPress: focus on the editor after closing a popup
};
TinyMCE_Window.prototype.onMouseMove = function(e) {
@@ -578,23 +581,22 @@ TinyMCE_Window.prototype.onMouseMove = function(e) { width = width < 100 ? 100 : width;
height = height < 100 ? 100 : height;
- this.wrapperIFrameElement.style.width = width+2;
- this.wrapperIFrameElement.style.height = height+2;
+ this.wrapperIFrameElement.style.width = (width+2) + 'px';
+ this.wrapperIFrameElement.style.height = (height+2) + 'px';
this.wrapperIFrameElement.width = width+2;
this.wrapperIFrameElement.height = height+2;
- this.winElement.style.width = width;
- this.winElement.style.height = height;
+ this.winElement.style.width = width + 'px';
+ this.winElement.style.height = height + 'px';
height = height - this.deltaHeight;
- this.containerElement.style.width = width;
-
- this.iframeElement.style.width = width;
- this.iframeElement.style.height = height;
- this.bodyElement.style.width = width;
- this.bodyElement.style.height = height;
- this.headElement.style.width = width;
- //this.statusElement.style.width = width;
+ this.containerElement.style.width = width + 'px';
+ this.iframeElement.style.width = width + 'px';
+ this.iframeElement.style.height = height + 'px';
+ this.bodyElement.style.width = width + 'px';
+ this.bodyElement.style.height = height + 'px';
+ this.headElement.style.width = width + 'px';
+ //this.statusElement.style.width = width + 'px';
mcWindows.cancelEvent(e);
break;
diff --git a/wp-includes/js/tinymce/plugins/paste/editor_plugin.js b/wp-includes/js/tinymce/plugins/paste/editor_plugin.js index 1306c0b..3ef1d7a 100644 --- a/wp-includes/js/tinymce/plugins/paste/editor_plugin.js +++ b/wp-includes/js/tinymce/plugins/paste/editor_plugin.js @@ -1,8 +1,8 @@ /** - * $Id: editor_plugin_src.js 126 2006-10-22 16:19:55Z spocke $ + * $Id: editor_plugin_src.js 162 2007-01-03 16:16:52Z spocke $ * * @author Moxiecode - * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved. + * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ /* Import plugin specific language pack */ diff --git a/wp-includes/js/tinymce/themes/advanced/about.htm b/wp-includes/js/tinymce/themes/advanced/about.htm index 2a86227..bb275f0 100644 --- a/wp-includes/js/tinymce/themes/advanced/about.htm +++ b/wp-includes/js/tinymce/themes/advanced/about.htm @@ -21,7 +21,7 @@ <p>Version: {$tinymce_version} ({$tinymce_releasedate})</p> <p>TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under <a href="../../license.txt" target="_blank">LGPL</a> by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.</p> - <p>Copyright © 2003-2006, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p> + <p>Copyright © 2003-2007, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p> <p>For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.</p> <div id="buttoncontainer"></div> diff --git a/wp-includes/js/tinymce/themes/advanced/css/editor_ui.css b/wp-includes/js/tinymce/themes/advanced/css/editor_ui.css index e70405d..58e6b8e 100644 --- a/wp-includes/js/tinymce/themes/advanced/css/editor_ui.css +++ b/wp-includes/js/tinymce/themes/advanced/css/editor_ui.css @@ -1,97 +1,97 @@ /* This file contains the CSS data for the editor UI of TinyMCE instances */
-.mceToolbarTop a, .mceToolbarTop a:visited, .mceToolbarTop a:hover, .mceToolbarBottom a, .mceToolbarBottom a:visited, .mceToolbarBottom a:hover {border: 0; margin: 0; padding: 0; background: transparent;}
+.mceToolbarTop a, .mceToolbarTop a:visited, .mceToolbarTop a:hover, .mceToolbarBottom a, .mceToolbarBottom a:visited, .mceToolbarBottom a:hover {border: 0; margin: 0; padding: 0; background: transparent;}
.mceSeparatorLine {border: 0; padding: 0; margin-left: 4px; margin-right: 2px;}
.mceSelectList {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 7pt !important; font-weight: normal; margin-top: 3px; padding: 0; display: inline; vertical-align: top; background-color: #F0F0EE;}
.mceLabel, .mceLabelDisabled {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt;}
.mceLabel {color: #000000;}
-.mceLabelDisabled {cursor: text; color: #999999;}
-.mceEditor {background: #F0F0EE; border: 1px solid #cccccc; padding: 0; margin: 0;}
-.mceEditorArea { font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; background: #FFFFFF; padding: 0; margin: 0; }
-.mceToolbarTop, .mceToolbarBottom {background: #F0F0EE; line-height: 1px; font-size: 1px;}
+.mceLabelDisabled {cursor: text; color: #999999;}
+.mceEditor {background: #F0F0EE; border: 1px solid #cccccc; padding: 0; margin: 0;}
+.mceEditorArea { font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; background: #FFFFFF; padding: 0; margin: 0; }
+.mceToolbarTop, .mceToolbarBottom {background: #F0F0EE; line-height: 1px; font-size: 1px;}
.mceToolbarTop {border-bottom: 1px solid #cccccc; padding-bottom: 1px;}
.mceToolbarBottom {border-top: 1px solid #cccccc;}
-.mceToolbarContainer {position: relative; left: 0; top: 0; display: block;}
+.mceToolbarContainer {position: relative; left: 0; top: 0; display: block;}
.mceStatusbarTop, .mceStatusbarBottom, .mceStatusbar {height: 20px;}
-.mceStatusbarTop .mceStatusbarPathText, .mceStatusbarBottom .mceStatusbarPathText, .mceStatusbar .mceStatusbarPathText {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; padding: 2px; line-height: 16px; overflow: visible;}
+.mceStatusbarTop .mceStatusbarPathText, .mceStatusbarBottom .mceStatusbarPathText, .mceStatusbar .mceStatusbarPathText {font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; padding: 2px; line-height: 16px; overflow: visible;}
.mceStatusbarTop {border-bottom: 1px solid #cccccc;}
.mceStatusbarBottom {border-top: 1px solid #cccccc;}
.mceStatusbar {border-bottom: 1px solid #cccccc;}
-.mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover {text-decoration: none; font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; color: #000000;}
+.mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover {text-decoration: none; font-family: 'MS Sans Serif', sans-serif, Verdana, Arial; font-size: 9pt; color: #000000;}
.mcePathItem:hover {text-decoration: underline;}
.mceStatusbarPathText {float: left;}
-.mceStatusbarResize {float: right; background-image: url('../images/statusbar_resize.gif'); background-repeat: no-repeat; width: 11px; height: 20px; cursor: se-resize;}
-.mceResizeBox {width: 10px; height: 10px; display: none; border: 1px dotted gray; margin: 0; padding: 0;}
+.mceStatusbarResize {float: right; background-image: url('../images/statusbar_resize.gif'); background-repeat: no-repeat; width: 11px; height: 20px; cursor: se-resize;}
+.mceResizeBox {width: 10px; height: 10px; display: none; border: 1px dotted gray; margin: 0; padding: 0;}
.mceEditorIframe {border: 0;}
/* Button CSS rules */
-a.mceButtonDisabled img, a.mceButtonNormal img, a.mceButtonSelected img {width: 20px; height: 20px; cursor: default; margin-top: 1px; margin-left: 1px;}
+a.mceButtonDisabled img, a.mceButtonNormal img, a.mceButtonSelected img {width: 20px; height: 20px; cursor: default; margin-top: 1px; margin-left: 1px;}
a.mceButtonDisabled img {border: 0 !important;}
a.mceButtonNormal img, a.mceButtonSelected img {border: 1px solid #F0F0EE !important;}
-a.mceButtonSelected img {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
-a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {border: 1px solid #0A246A !important; cursor: default; background-color: #B6BDD2;}
-a.mceButtonDisabled img {-moz-opacity:0.3; opacity: 0.3; border: 1px solid #F0F0EE !important; cursor: default;}
-a.mceTiledButton img {background-image: url('../images/buttons.gif'); background-repeat: no-repeat;}
+a.mceButtonSelected img {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
+a.mceButtonNormal img:hover, a.mceButtonSelected img:hover {border: 1px solid #0A246A !important; cursor: default; background-color: #B6BDD2;}
+a.mceButtonDisabled img {-moz-opacity:0.3; opacity: 0.3; border: 1px solid #F0F0EE !important; cursor: default;}
+a.mceTiledButton img {background-image: url('../images/buttons.gif'); background-repeat: no-repeat;}
/* Menu button CSS rules */
-span.mceMenuButton img, span.mceMenuButtonSelected img {border: 1px solid #F0F0EE; margin-left: 1px;}
-span.mceMenuButtonSelected img {border: 1px solid #6779AA; background-color: #B6BDD2;}
-span.mceMenuButtonSelected img.mceMenuButton {border: 1px solid #F0F0EE; background-color: transparent;}
-span.mceMenuButton img.mceMenuButton, span.mceMenuButtonSelected img.mceMenuButton {border-left: 0; margin-left: 0;}
-span.mceMenuButton:hover img, span.mceMenuButtonSelected:hover img {border: 1px solid #0A246A; background-color: #B6BDD2;}
+span.mceMenuButton img, span.mceMenuButtonSelected img {border: 1px solid #F0F0EE; margin-left: 1px;}
+span.mceMenuButtonSelected img {border: 1px solid #6779AA; background-color: #B6BDD2;}
+span.mceMenuButtonSelected img.mceMenuButton {border: 1px solid #F0F0EE; background-color: transparent;}
+span.mceMenuButton img.mceMenuButton, span.mceMenuButtonSelected img.mceMenuButton {border-left: 0; margin-left: 0;}
+span.mceMenuButton:hover img, span.mceMenuButtonSelected:hover img {border: 1px solid #0A246A; background-color: #B6BDD2;}
span.mceMenuButton:hover img.mceMenuButton, span.mceMenuButtonSelected:hover img.mceMenuButton {border-left: 0;}
-span.mceMenuButtonFocus img {border: 1px solid gray; border-right: 0; margin-left: 1px; background-color: #F5F4F2;}
-span.mceMenuButtonFocus img.mceMenuButton {border: 1px solid gray; border-left: 1px solid #F5F4F2; margin-left: 0;}
-span.mceMenuHover img {border: 1px solid #0A246A; background-color: #B6BDD2;}
-span.mceMenuButtonSelected.mceMenuHover img.mceMenuButton {border: 1px solid #0A246A; background-color: #B6BDD2; border-left: 0;}
+span.mceMenuButtonFocus img {border: 1px solid gray; border-right: 0; margin-left: 1px; background-color: #F5F4F2;}
+span.mceMenuButtonFocus img.mceMenuButton {border: 1px solid gray; border-left: 1px solid #F5F4F2; margin-left: 0;}
+span.mceMenuHover img {border: 1px solid #0A246A; background-color: #B6BDD2;}
+span.mceMenuButtonSelected.mceMenuHover img.mceMenuButton {border: 1px solid #0A246A; background-color: #B6BDD2; border-left: 0;}
/* Menu */
-.mceMenu {position: absolute; left: 0; top: 0; display: none; z-index: 100; background-color: white; border: 1px solid gray; font-weight: normal;}
-.mceMenu a, .mceMenuTitle, .mceMenuDisabled {display: block; width: 100%; text-decoration: none; background-color: white; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; line-height: 20px; color: black;}
-.mceMenu a:hover {background-color: #B6BDD2; color: black; text-decoration: none !important;}
-.mceMenu span {padding-left: 10px; padding-right: 10px; display: block; line-height: 20px;}
-.mceMenuSeparator {border-bottom: 1px solid gray; background-color: gray; height: 1px;}
+.mceMenu {position: absolute; left: 0; top: 0; display: none; z-index: 100; background-color: white; border: 1px solid gray; font-weight: normal;}
+.mceMenu a, .mceMenuTitle, .mceMenuDisabled {display: block; width: 100%; text-decoration: none; background-color: white; font-family: Tahoma, Verdana, Arial, Helvetica; font-size: 11px; line-height: 20px; color: black;}
+.mceMenu a:hover {background-color: #B6BDD2; color: black; text-decoration: none !important;}
+.mceMenu span {padding-left: 10px; padding-right: 10px; display: block; line-height: 20px;}
+.mceMenuSeparator {border-bottom: 1px solid gray; background-color: gray; height: 1px;}
.mceMenuTitle span {padding-left: 5px;}
-.mceMenuTitle {background-color: #DDDDDD; font-weight: bold;}
+.mceMenuTitle {background-color: #DDDDDD; font-weight: bold;}
.mceMenuDisabled {color: gray;}
-span.mceMenuSelectedItem {background-image: url('../images/menu_check.gif'); background-repeat: no-repeat; background-position: 5px 8px; padding-left: 20px;}
+span.mceMenuSelectedItem {background-image: url('../images/menu_check.gif'); background-repeat: no-repeat; background-position: 5px 8px; padding-left: 20px;}
span.mceMenuCheckItem {padding-left: 20px;}
-span.mceMenuLine {display: block; position: absolute; left: 0; top: -1px; background-color: #F5F4F2; width: 30px; height: 1px; overflow: hidden; padding-left: 0; padding-right: 0;}
-.mceColors table, .mceColors td {margin: 0; padding: 2px;}
-a.mceMoreColors {width: 130px; margin: 0; padding: 0; margin-left: 3px; margin-bottom: 3px; text-align: center; border: 1px solid white;}
-.mceColorPreview {position: absolute; left: 0; top: 0; margin-left: 3px; margin-top: 15px; width: 16px; height: 4px; background-color: red;}
+span.mceMenuLine {display: block; position: absolute; left: 0; top: -1px; background-color: #F5F4F2; width: 30px; height: 1px; overflow: hidden; padding-left: 0; padding-right: 0;}
+.mceColors table, .mceColors td {margin: 0; padding: 2px;}
+a.mceMoreColors {width: 130px; margin: 0; padding: 0; margin-left: 3px; margin-bottom: 3px; text-align: center; border: 1px solid white;}
+.mceColorPreview {position: absolute; overflow:hidden; left: 0; top: 0; margin-left: 3px; margin-top: 15px; width: 16px; height: 4px; background-color: red;}
a.mceMoreColors:hover {border: 1px solid #0A246A;}
-.mceColors td a {width: 9px; height: 9px; overflow: hidden; border: 1px solid #808080;}
+.mceColors td a {width: 9px; height: 9px; overflow: hidden; border: 1px solid #808080;}
/* MSIE 6 specific rules */
-* html a.mceButtonNormal img, * html a.mceButtonSelected img, * html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;}
-* html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;}
+* html a.mceButtonNormal img, * html a.mceButtonSelected img, * html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;}
+* html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;}
* html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;}
-* html a.mceButtonNormal, * html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;}
-* html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
-* html a.mceButtonNormal:hover, * html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;}
+* html a.mceButtonNormal, * html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;}
+* html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
+* html a.mceButtonNormal:hover, * html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;}
* html .mceSelectList {margin-top: 2px;}
-* html span.mceMenuButton, * html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;}
-* html span.mceMenuButton img, * html span.mceMenuButtonSelected img, * html span.mceMenuButtonFocus img {position: relative; top: 1px;}
+* html span.mceMenuButton, * html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;}
+* html span.mceMenuButton img, * html span.mceMenuButtonSelected img, * html span.mceMenuButtonFocus img {position: relative; top: 1px;}
* html a.mceMoreColors {width: 132px;}
-* html .mceColors td a {width: 10px; height: 10px;}
-* html .mceColorPreview {margin-left: 2px; margin-top: 14px;}
+* html .mceColors td a {width: 10px; height: 10px;}
+* html .mceColorPreview {margin-left: 2px; margin-top: 14px;}
/* MSIE 7 specific rules */
-*:first-child+html a.mceButtonNormal img, *:first-child+html a.mceButtonSelected img, *:first-child+html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;}
-*:first-child+html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;}
+*:first-child+html a.mceButtonNormal img, *:first-child+html a.mceButtonSelected img, *:first-child+html a.mceButtonDisabled img {border: 0 !important; margin-top: 2px; margin-bottom: 1px;}
+*:first-child+html a.mceButtonDisabled img {filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30); border: 0 !important;}
*:first-child+html a.mceButtonDisabled {border: 1px solid #F0F0EE !important;}
-*:first-child+html a.mceButtonNormal, *:first-child+html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;}
-*:first-child+html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
-*:first-child+html a.mceButtonNormal:hover, *:first-child+html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;}
+*:first-child+html a.mceButtonNormal, *:first-child+html a.mceButtonSelected {border: 1px solid #F0F0EE !important; cursor: default;}
+*:first-child+html a.mceButtonSelected {border: 1px solid #6779AA !important; background-color: #D4D5D8;}
+*:first-child+html a.mceButtonNormal:hover, *:first-child+html a.mceButtonSelected:hover {border: 1px solid #0A246A !important; background-color: #B6BDD2; cursor: default;}
*:first-child+html .mceSelectList {margin-top: 2px;}
-*:first-child+html span.mceMenuButton, *:first-child+html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;}
-*:first-child+html span.mceMenuButton img, *:first-child+html span.mceMenuButtonSelected img, *:first-child+html span.mceMenuButtonFocus img {position: relative; top: 1px;}
+*:first-child+html span.mceMenuButton, *:first-child+html span.mceMenuButtonFocus {position: relative; left: 0; top: 0;}
+*:first-child+html span.mceMenuButton img, *:first-child+html span.mceMenuButtonSelected img, *:first-child+html span.mceMenuButtonFocus img {position: relative; top: 1px;}
*:first-child+html a.mceMoreColors {width: 132px;}
-*:first-child+html .mceColors td a {width: 10px; height: 10px;}
-*:first-child+html .mceColorPreview {margin: 0; padding-left: 4px; margin-top: 14px; width: 14px;}
+*:first-child+html .mceColors td a {width: 10px; height: 10px;}
+*:first-child+html .mceColorPreview {margin: 0; padding-left: 4px; margin-top: 14px; width: 14px;}
diff --git a/wp-includes/js/tinymce/themes/advanced/editor_template.js b/wp-includes/js/tinymce/themes/advanced/editor_template.js index 2285832..3d91891 100644 --- a/wp-includes/js/tinymce/themes/advanced/editor_template.js +++ b/wp-includes/js/tinymce/themes/advanced/editor_template.js @@ -1,8 +1,8 @@ /** - * $Id: editor_template_src.js 129 2006-10-23 09:45:17Z spocke $ + * $Id: editor_template_src.js 166 2007-01-05 10:31:50Z spocke $ * * @author Moxiecode - * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved. + * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. */ /* Import theme specific language pack */ @@ -713,8 +713,13 @@ var TinyMCE_AdvancedTheme = { template['html'] += '<span id="{$editor_id}_resize_box" class="mceResizeBox"></span>'; template['html'] = tinyMCE.replaceVar(template['html'], 'style_select_options', styleSelectHTML); - template['delta_width'] = 0; - template['delta_height'] = deltaHeight; + + // Set to default values + if (!template['delta_width']) + template['delta_width'] = 0; + + if (!template['delta_height']) + template['delta_height'] = deltaHeight; return template; }, @@ -732,6 +737,12 @@ var TinyMCE_AdvancedTheme = { inst.addShortcut('ctrl', 'k', 'lang_link_desc', 'mceLink'); }, + removeInstance : function(inst) { + var fcm = new TinyMCE_Layer(inst.editorId + '_fcMenu'); + + fcm.remove(); + }, + _handleMenuEvent : function(e) { var te = tinyMCE.isMSIE ? window.event.srcElement : e.target; tinyMCE._menuButtonEvent(e.type == "mouseover" ? "over" : "out", document.getElementById(te._switchId)); @@ -782,10 +793,6 @@ var TinyMCE_AdvancedTheme = { return false; }; - function getAttrib(elm, name) { - return elm.getAttribute(name) ? elm.getAttribute(name) : ""; - }; - // No node provided if (node == null) return; @@ -839,7 +846,7 @@ var TinyMCE_AdvancedTheme = { var st = tinyMCE.getAttrib(path[i], "style"); if (st != "") { st = tinyMCE.serializeStyle(tinyMCE.parseStyle(st)); - nodeData += "style: " + st + " "; + nodeData += "style: " + tinyMCE.xmlEncode(st) + " "; } } @@ -849,18 +856,18 @@ var TinyMCE_AdvancedTheme = { var face = tinyMCE.getAttrib(path[i], "face"); if (face != "") - nodeData += "font: " + face + " "; + nodeData += "font: " + tinyMCE.xmlEncode(face) + " "; var size = tinyMCE.getAttrib(path[i], "size"); if (size != "") - nodeData += "size: " + size + " "; + nodeData += "size: " + tinyMCE.xmlEncode(size) + " "; var color = tinyMCE.getAttrib(path[i], "color"); if (color != "") - nodeData += "color: " + color + " "; + nodeData += "color: " + tinyMCE.xmlEncode(color) + " "; } - if (getAttrib(path[i], 'id') != "") { + if (tinyMCE.getAttrib(path[i], 'id') != "") { nodeData += "id: " + path[i].getAttribute('id') + " "; } @@ -868,22 +875,22 @@ var TinyMCE_AdvancedTheme = { if (className != "" && className.indexOf('mceItem') == -1) nodeData += "class: " + className + " "; - if (getAttrib(path[i], 'src') != "") { + if (tinyMCE.getAttrib(path[i], 'src') != "") { var src = tinyMCE.getAttrib(path[i], "mce_src"); if (src == "") src = tinyMCE.getAttrib(path[i], "src"); - nodeData += "src: " + src + " "; + nodeData += "src: " + tinyMCE.xmlEncode(src) + " "; } - if (path[i].nodeName == 'A' && getAttrib(path[i], 'href') != "") { + if (path[i].nodeName == 'A' && tinyMCE.getAttrib(path[i], 'href') != "") { var href = tinyMCE.getAttrib(path[i], "mce_href"); if (href == "") href = tinyMCE.getAttrib(path[i], "href"); - nodeData += "href: " + href + " "; + nodeData += "href: " + tinyMCE.xmlEncode(href) + " "; } className = tinyMCE.getAttrib(path[i], "class"); @@ -894,11 +901,11 @@ var TinyMCE_AdvancedTheme = { if (nodeName == "a" && (anchor = tinyMCE.getAttrib(path[i], "name")) != "") { nodeName = "a"; - nodeName += "#" + anchor; + nodeName += "#" + tinyMCE.xmlEncode(anchor); nodeData = ""; } - if (getAttrib(path[i], 'name').indexOf("mce_") != 0) { + if (tinyMCE.getAttrib(path[i], 'name').indexOf("mce_") != 0) { var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], "class"), false); if (className != "" && className.indexOf('mceItem') == -1) { nodeName += "." + className; @@ -1124,7 +1131,7 @@ var TinyMCE_AdvancedTheme = { break; case "IMG": - if (getAttrib(node, 'name').indexOf('mce_') != 0 && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) { + if (tinyMCE.getAttrib(node, 'name').indexOf('mce_') != 0 && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) { tinyMCE.switchClass(editor_id + '_image', 'mceButtonSelected'); } break; diff --git a/wp-includes/js/tinymce/themes/advanced/jscripts/source_editor.js b/wp-includes/js/tinymce/themes/advanced/jscripts/source_editor.js index 8395340..83648be 100644 --- a/wp-includes/js/tinymce/themes/advanced/jscripts/source_editor.js +++ b/wp-includes/js/tinymce/themes/advanced/jscripts/source_editor.js @@ -25,7 +25,7 @@ function setWrap(val) { s.wrap = val; - if (tinyMCE.isGecko) { + if (tinyMCE.isGecko || tinyMCE.isOpera) { var v = s.value; var n = s.cloneNode(false); n.setAttribute("wrap", val); @@ -47,14 +47,13 @@ function resizeInputs() { var el = document.getElementById('htmlSource'); if (!tinyMCE.isMSIE) { - wHeight = self.innerHeight-80; - wWidth = self.innerWidth-16; + wHeight = self.innerHeight - 60; + wWidth = self.innerWidth - 16; } else { - wHeight = document.body.clientHeight - 80; + wHeight = document.body.clientHeight - 60; wWidth = document.body.clientWidth - 16; } el.style.height = Math.abs(wHeight) + 'px'; el.style.width = Math.abs(wWidth) + 'px'; } - diff --git a/wp-includes/js/tinymce/tiny_mce.js b/wp-includes/js/tinymce/tiny_mce.js index aece8d1..c3f2159 100644 --- a/wp-includes/js/tinymce/tiny_mce.js +++ b/wp-includes/js/tinymce/tiny_mce.js @@ -5,8 +5,8 @@ function TinyMCE_Engine() { var ua; this.majorVersion = "2"; - this.minorVersion = "0.8"; - this.releaseDate = "2006-10-23"; + this.minorVersion = "0.9"; + this.releaseDate = "2007-01-09"; this.instances = new Array(); this.switchClassCache = new Array(); @@ -192,6 +192,7 @@ TinyMCE_Engine.prototype = { this._def("hidden_tab_class", ''); this._def("display_tab_class", ''); this._def("gecko_spellcheck", false); + this._def("hide_selects_on_submit", true); // Force strict loading mode to false on non Gecko browsers if (this.isMSIE && !this.isOpera) @@ -242,7 +243,7 @@ TinyMCE_Engine.prototype = { this.posKeyCodes = new Array(13,45,36,35,33,34,37,38,39,40); this.uniqueURL = 'javascript:TINYMCE_UNIQUEURL();'; // Make unique URL non real URL this.uniqueTag = '<div id="mceTMPElement" style="display: none">TMP</div>'; - this.callbacks = new Array('onInit', 'getInfo', 'getEditorTemplate', 'setupContent', 'onChange', 'onPageLoad', 'handleNodeChange', 'initInstance', 'execCommand', 'getControlHTML', 'handleEvent', 'cleanup'); + this.callbacks = new Array('onInit', 'getInfo', 'getEditorTemplate', 'setupContent', 'onChange', 'onPageLoad', 'handleNodeChange', 'initInstance', 'execCommand', 'getControlHTML', 'handleEvent', 'cleanup', 'removeInstance'); // Theme url this.settings['theme_href'] = tinyMCE.baseURL + "/themes/" + theme; @@ -338,6 +339,11 @@ TinyMCE_Engine.prototype = { } catch (e) { } } + + // Setup XML encoding regexps + this.xmlEncodeAposRe = new RegExp('[<>&"\']', 'g'); + this.xmlEncodeRe = new RegExp('[<>&"]', 'g'); +// this.xmlEncodeEnts = {'&':'&','"':'"',"'":''','<':'<','>':'>'}; }, _addUnloadEvents : function() { @@ -570,6 +576,9 @@ TinyMCE_Engine.prototype = { tinyMCE.undoLevels = n; tinyMCE.undoIndex = n.length; + // Dispatch remove instance call + tinyMCE.dispatchCallback(ti, 'remove_instance_callback', 'removeInstance', ti); + return ti; }, @@ -836,6 +845,7 @@ TinyMCE_Engine.prototype = { content = content.replace(/&/g, '&'); } + tinyMCE.selectedInstance = inst; inst.switchSettings(); // Not loaded correctly hit it again, Mozilla bug #997860 @@ -1015,8 +1025,8 @@ TinyMCE_Engine.prototype = { storeAwayURLs : function(s) { // Remove all mce_src, mce_href and replace them with new ones - // s = s.replace(new RegExp('mce_src\\s*=\\s*\"[^ >\"]*\"', 'gi'), ''); - // s = s.replace(new RegExp('mce_href\\s*=\\s*\"[^ >\"]*\"', 'gi'), ''); + // s = s.replace(new RegExp('mce_src\\s*=\\s*\"[^ >\"]*\"', 'gi'), ''); + // s = s.replace(new RegExp('mce_href\\s*=\\s*\"[^ >\"]*\"', 'gi'), ''); if (!s.match(/(mce_src|mce_href)/gi, s)) { s = s.replace(new RegExp('src\\s*=\\s*\"([^ >\"]*)\"', 'gi'), 'src="$1" mce_src="$1"'); @@ -1038,6 +1048,38 @@ TinyMCE_Engine.prototype = { } }, + removeTinyMCEFormElements : function(form_obj) { + var i, elementId; + + // Skip form element removal + if (!tinyMCE.getParam('hide_selects_on_submit')) + return; + + // Check if form is valid + if (typeof(form_obj) == "undefined" || form_obj == null) + return; + + // If not a form, find the form + if (form_obj.nodeName != "FORM") { + if (form_obj.form) + form_obj = form_obj.form; + else + form_obj = tinyMCE.getParentElement(form_obj, "form"); + } + + // Still nothing + if (form_obj == null) + return; + + // Disable all UI form elements that TinyMCE created + for (i=0; i<form_obj.elements.length; i++) { + elementId = form_obj.elements[i].name ? form_obj.elements[i].name : form_obj.elements[i].id; + + if (elementId.indexOf('mce_editor_') == 0) + form_obj.elements[i].disabled = true; + } + }, + handleEvent : function(e) { var inst = tinyMCE.selectedInstance; @@ -1086,6 +1128,7 @@ TinyMCE_Engine.prototype = { return; case "submit": + tinyMCE.removeTinyMCEFormElements(tinyMCE.isMSIE ? window.event.srcElement : e.target); tinyMCE.triggerSave(); tinyMCE.isNotDirty = true; return; @@ -1433,6 +1476,7 @@ TinyMCE_Engine.prototype = { }, submitPatch : function() { + tinyMCE.removeTinyMCEFormElements(this); tinyMCE.triggerSave(); tinyMCE.isNotDirty = true; this.mceOldSubmit(); @@ -1649,14 +1693,19 @@ TinyMCE_Engine.prototype = { }, triggerNodeChange : function(focus, setup_content) { + var elm, inst, editorId, undoIndex = -1, undoLevels = -1, doc, anySelection = false; + if (tinyMCE.selectedInstance) { - var inst = tinyMCE.selectedInstance; - var editorId = inst.editorId; - var elm = (typeof(setup_content) != "undefined" && setup_content) ? tinyMCE.selectedElement : inst.getFocusElement(); - var undoIndex = -1, doc; - var undoLevels = -1; - var anySelection = false; - var selectedText = inst.selection.getSelectedText(); + inst = tinyMCE.selectedInstance; + elm = (typeof(setup_content) != "undefined" && setup_content) ? tinyMCE.selectedElement : inst.getFocusElement(); + +/* if (elm == inst.lastTriggerEl) + return; + + inst.lastTriggerEl = elm;*/ + + editorId = inst.editorId; + selectedText = inst.selection.getSelectedText(); if (tinyMCE.settings.auto_resize) inst.resizeToContent(); @@ -1754,6 +1803,8 @@ TinyMCE_Engine.prototype = { openWindow : function(template, args) { var html, width, height, x, y, resizable, scrollbars, url; + args = !args ? {} : args; + args['mce_template_file'] = template['file']; args['mce_width'] = template['width']; args['mce_height'] = template['height']; @@ -2256,18 +2307,10 @@ TinyMCE_Engine.prototype = { }, evalFunc : function(f, idx, a, o) { - var s = '(', i; + o = !o ? window : o; + f = typeof(f) == 'function' ? f : o[f]; - for (i=idx; i<a.length; i++) { - s += 'a[' + i + ']'; - - if (i < a.length-1) - s += ','; - } - - s += ');'; - - return o ? eval("o." + f + s) : eval("f" + s); + return f.apply(o, Array.prototype.slice.call(a, idx)); }, dispatchCallback : function(i, p, n) { @@ -2289,7 +2332,7 @@ TinyMCE_Engine.prototype = { l = tinyMCE.getParam(p, ''); - if (l != '' && (v = tinyMCE.evalFunc(typeof(l) == "function" ? l : eval(l), 3, a)) == s && m > 0) + if (l != '' && (v = tinyMCE.evalFunc(l, 3, a)) == s && m > 0) return true; if (ins != null) { @@ -2312,8 +2355,8 @@ TinyMCE_Engine.prototype = { return false; }, - xmlEncode : function(s) { - return s ? ('' + s).replace(new RegExp('[<>&"\']', 'g'), function (c, b) { + xmlEncode : function(s, skip_apos) { + return s ? ('' + s).replace(!skip_apos ? this.xmlEncodeAposRe : this.xmlEncodeRe, function (c, b) { switch (c) { case '&': return '&'; @@ -2398,11 +2441,11 @@ function TinyMCE_Control(settings) { entities : s.entities, entity_encoding : s.entity_encoding, debug : s.cleanup_debug, - url_converter : 'TinyMCE_Cleanup.prototype._urlConverter', indent : s.apply_source_formatting, invalid_elements : s.invalid_elements, verify_html : s.verify_html, - fix_content_duplication : s.fix_content_duplication + fix_content_duplication : s.fix_content_duplication, + convert_fonts_to_spans : s.convert_fonts_to_spans }); // Wrap old theme @@ -2593,7 +2636,13 @@ TinyMCE_Control.prototype = { }, handleShortcut : function(e) { - var i, s = this.shortcuts, o; + var i, s, o; + + // Normal key press, then ignore it + if (!e.altKey && !e.ctrlKey) + return false; + + s = this.shortcuts; for (i=0; i<s.length; i++) { o = s[i]; @@ -2702,8 +2751,11 @@ TinyMCE_Control.prototype = { //debug("command: " + command + ", user_interface: " + user_interface + ", value: " + value); this.contentDocument = doc; // <-- Strange, unless this is applied Mozilla 1.3 breaks - if (tinyMCE.execCommandCallback(this, 'execcommand_callback', 'execCommand', this.editorId, this.getBody(), command, user_interface, value)) - return; + // Don't dispatch key commands + if (!/mceStartTyping|mceEndTyping/.test(command)) { + if (tinyMCE.execCommandCallback(this, 'execcommand_callback', 'execCommand', this.editorId, this.getBody(), command, user_interface, value)) + return; + } // Fix align on images if (focusElm && focusElm.nodeName == "IMG") { @@ -2813,7 +2865,7 @@ TinyMCE_Control.prototype = { if (tinyMCE.isGecko && this.getSel().isCollapsed) { focusElm = tinyMCE.getParentElement(focusElm, 'A'); - if (focusElm && this.getRng(0).endOffset > 0 && this.getRng(0).endOffset != focusElm.innerHTML.length) + if (focusElm && this.getRng(0).endOffset > 0 && this.getRng(0).endOffset != focusElm.innerHTML.length) // WordPress mod to prevent unlinking if caret at start/end of link this.selection.selectNode(focusElm, false); } @@ -2825,14 +2877,6 @@ TinyMCE_Control.prototype = { return true; - case "FormatBlock": - if (!this.cleanup.isValid(value)) - return true; - - this.getDoc().execCommand(command, user_interface, value); - tinyMCE.triggerNodeChange(); - break; - case "InsertUnorderedList": case "InsertOrderedList": this.getDoc().execCommand(command, user_interface, value); @@ -2857,6 +2901,9 @@ TinyMCE_Control.prototype = { if (elm) this.execCommand("mceRemoveNode", false, elm); } else { + if (!this.cleanup.isValid(value)) + return true; + if (tinyMCE.isGecko && new RegExp('<(div|blockquote|code|dt|dd|dl|samp)>', 'gi').test(value)) value = value.replace(/[^a-z]/gi, ''); @@ -2915,6 +2962,7 @@ TinyMCE_Control.prototype = { break; + case "mceSetStyleInfo": case "SetStyleInfo": var rng = this.getRng(); var sel = this.getSel(); @@ -3246,7 +3294,7 @@ TinyMCE_Control.prototype = { break; case "mceSetCSSClass": - this.execCommand("SetStyleInfo", false, {command : "setattrib", name : "class", value : value}); + this.execCommand("mceSetStyleInfo", false, {command : "setattrib", name : "class", value : value}); break; case "mceInsertRawHTML": @@ -3478,6 +3526,7 @@ TinyMCE_Control.prototype = { } break; + case "RemoveFormat": case "removeformat": var text = this.selection.getSelectedText(); @@ -3494,11 +3543,11 @@ TinyMCE_Control.prototype = { // Do nothing } - this.execCommand("SetStyleInfo", false, {command : "removeformat"}); + this.execCommand("mceSetStyleInfo", false, {command : "removeformat"}); } else { this.getDoc().execCommand(command, user_interface, value); - this.execCommand("SetStyleInfo", false, {command : "removeformat"}); + this.execCommand("mceSetStyleInfo", false, {command : "removeformat"}); } // Remove class @@ -3997,6 +4046,8 @@ TinyMCE_Engine.prototype.serializeStyle = function(ar) { if (tinyMCE.getParam("force_hex_style_colors")) val = tinyMCE.convertRGBToHex(val, true); + val = val.replace(/\"/g, '\''); + if (val != "url('')") str += key.toLowerCase() + ": " + val + "; "; } @@ -4043,12 +4094,12 @@ TinyMCE_Engine.prototype.convertHexToRGB = function(s) { TinyMCE_Engine.prototype.convertSpansToFonts = function(doc) { var sizes = tinyMCE.getParam('font_size_style_values').replace(/\s+/, '').split(','); - var h = doc.body.innerHTML; + /*var h = doc.body.innerHTML; h = h.replace(/<span/gi, '<font'); h = h.replace(/<\/span/gi, '</font'); - tinyMCE.setInnerHTML(doc.body, h); + tinyMCE.setInnerHTML(doc.body, h);*/ - var s = doc.getElementsByTagName("font"); + var s = tinyMCE.selectElements(doc, 'span,font'); for (var i=0; i<s.length; i++) { var size = tinyMCE.trim(s[i].style.fontSize).toLowerCase(); var fSize = 0; @@ -4082,10 +4133,10 @@ TinyMCE_Engine.prototype.convertSpansToFonts = function(doc) { TinyMCE_Engine.prototype.convertFontsToSpans = function(doc) { var sizes = tinyMCE.getParam('font_size_style_values').replace(/\s+/, '').split(','); - var h = doc.body.innerHTML; +/* var h = doc.body.innerHTML; h = h.replace(/<font/gi, '<span'); h = h.replace(/<\/font/gi, '</span'); - tinyMCE.setInnerHTML(doc.body, h); + tinyMCE.setInnerHTML(doc.body, h);*/ var fsClasses = tinyMCE.getParam('font_size_classes'); if (fsClasses != '') @@ -4093,7 +4144,7 @@ TinyMCE_Engine.prototype.convertFontsToSpans = function(doc) { else fsClasses = null; - var s = doc.getElementsByTagName("span"); + var s = tinyMCE.selectElements(doc, 'span,font'); for (var i=0; i<s.length; i++) { var fSize, fFace, fColor; @@ -4182,7 +4233,7 @@ TinyMCE_Engine.prototype._fixTables = function(d) { for (i=0; i<nl.length; i++) { n = nl[i]; - if ((p = tinyMCE.getParentElement(n, 'p,div,h1,h2,h3,h4,h5,h6')) != null) { + if ((p = tinyMCE.getParentElement(n, 'p,h1,h2,h3,h4,h5,h6')) != null) { np = p.cloneNode(false); np.removeAttribute('id'); @@ -4380,6 +4431,8 @@ TinyMCE_Cleanup.prototype = { this.fillStr = s.entity_encoding == "named" ? " " : " "; this.idCount = 0; + this.xmlEncodeRe = new RegExp('[\u007F-\uFFFF<>&"]', 'g'); + this.xmlEncodeAposRe = new RegExp('[\u007F-\uFFFF<>&"\']', 'g'); }, addRuleStr : function(s) { @@ -4404,6 +4457,10 @@ TinyMCE_Cleanup.prototype = { isValid : function(n) { this._setupRules(); // Will initialize cleanup rules + // Empty is true since it removes formatting + if (!n) + return true; + // Clean the name up a bit n = n.replace(/[^a-z0-9]+/gi, '').toUpperCase(); @@ -4606,7 +4663,7 @@ TinyMCE_Cleanup.prototype = { _convertToXML : function(n, xn) { var xd, el, i, l, cn, at, no, hc = false; - if (this._isDuplicate(n)) + if (tinyMCE.isRealIE && this._isDuplicate(n)) return; xd = this.xmlDoc; @@ -4649,11 +4706,11 @@ TinyMCE_Cleanup.prototype = { }, serializeNodeAsHTML : function(n, inn) { - var en, no, h = '', i, l, t, st, r, cn, va = false, f = false, at, hc, cr; + var en, no, h = '', i, l, t, st, r, cn, va = false, f = false, at, hc, cr, nn; this._setupRules(); // Will initialize cleanup rules - if (this._isDuplicate(n)) + if (tinyMCE.isRealIE && this._isDuplicate(n)) return ''; // Skip non valid child elements @@ -4677,21 +4734,34 @@ TinyMCE_Cleanup.prototype = { if ((tinyMCE.isRealIE) && n.nodeName.indexOf('/') != -1) break; - if (this.vElementsRe.test(n.nodeName) && (!this.iveRe || !this.iveRe.test(n.nodeName)) && !inn) { + nn = n.nodeName; + + // Convert fonts to spans + if (this.settings.convert_fonts_to_spans) { + // On get content FONT -> SPAN + if (this.settings.on_save && nn == 'FONT') + nn = 'SPAN'; + + // On insert content SPAN -> FONT + if (!this.settings.on_save && nn == 'SPAN') + nn = 'FONT'; + } + + if (this.vElementsRe.test(nn) && (!this.iveRe || !this.iveRe.test(nn)) && !inn) { va = true; - r = this.rules[n.nodeName]; + r = this.rules[nn]; if (!r) { at = this.rules; for (no in at) { - if (at[no] && at[no].validRe.test(n.nodeName)) { + if (at[no] && at[no].validRe.test(nn)) { r = at[no]; break; } } } - en = r.isWild ? n.nodeName.toLowerCase() : r.oTagName; + en = r.isWild ? nn.toLowerCase() : r.oTagName; f = r.fill; if (r.removeEmpty && !hc) @@ -4728,13 +4798,13 @@ TinyMCE_Cleanup.prototype = { t = null; // Close these - if (t != null && this.closeElementsRe.test(n.nodeName)) + if (t != null && this.closeElementsRe.test(nn)) return t + ' />'; if (t != null) h += t + '>'; - if (this.isIE && this.codeElementsRe.test(n.nodeName)) + if (this.isIE && this.codeElementsRe.test(nn)) h += n.innerHTML; } break; @@ -4796,7 +4866,7 @@ TinyMCE_Cleanup.prototype = { av = t; if (os && av.length != 0 && this.settings.url_converter.length != 0 && /^(src|href|longdesc)$/.test(an)) - av = eval(this.settings.url_converter + '(this, n, av)'); + av = this._urlConverter(this, n, av); if (av.length != 0 && r.validAttribValues && r.validAttribValues[an] && !r.validAttribValues[an].test(av)) return ""; @@ -4806,7 +4876,7 @@ TinyMCE_Cleanup.prototype = { if (av.length != 0) { if (an.indexOf('on') != 0) - av = this.xmlEncode(av); + av = this.xmlEncode(av, 1); return " " + an + "=" + '"' + av + '"'; } @@ -4852,24 +4922,24 @@ TinyMCE_Cleanup.prototype = { return o; }, - xmlEncode : function(s) { - var cl = this; + xmlEncode : function(s, skip_apos) { + var cl = this, re = !skip_apos ? this.xmlEncodeAposRe : this.xmlEncodeRe; this._setupEntities(); // Will intialize lookup table switch (this.settings.entity_encoding) { case "raw": - return tinyMCE.xmlEncode(s); + return tinyMCE.xmlEncode(s, skip_apos); case "named": - return s.replace(new RegExp('[\u007F-\uFFFF<>&"\']', 'g'), function (c, b) { + return s.replace(re, function (c, b) { b = cl.entities[c.charCodeAt(0)]; return b ? '&' + b + ';' : c; }); case "numeric": - return s.replace(new RegExp('[\u007F-\uFFFF<>&"\']', 'g'), function (c, b) { + return s.replace(re, function (c, b) { return b ? '&#' + c.charCodeAt(0) + ';' : c; }); } @@ -4898,34 +4968,47 @@ TinyMCE_Cleanup.prototype = { }, _getAttrib : function(e, n, d) { + var v, ex, nn; + if (typeof(d) == "undefined") d = ""; if (!e || e.nodeType != 1) return d; - var v = e.getAttribute(n, 0); + try { + v = e.getAttribute(n, 0); + } catch (ex) { + // IE 7 may cast exception on invalid attributes + v = e.getAttribute(n, 2); + } if (n == "class" && !v) v = e.className; - if (this.isIE && n == "http-equiv") - v = e.httpEquiv; + if (this.isIE) { + if (n == "http-equiv") + v = e.httpEquiv; - if (this.isIE && e.nodeName == "FORM" && n == "enctype" && v == "application/x-www-form-urlencoded") - v = ""; + nn = e.nodeName; - if (this.isIE && e.nodeName == "INPUT" && n == "size" && v == "20") - v = ""; + // Skip the default values that IE returns + if (nn == "FORM" && n == "enctype" && v == "application/x-www-form-urlencoded") + v = ""; - if (this.isIE && e.nodeName == "INPUT" && n == "maxlength" && v == "2147483647") - v = ""; + if (nn == "INPUT" && n == "size" && v == "20") + v = ""; - if (n == "style" && !tinyMCE.isOpera) - v = e.style.cssText; + if (nn == "INPUT" && n == "maxlength" && v == "2147483647") + v = ""; + } + + if (n == 'style' && v) { + if (!tinyMCE.isOpera) + v = e.style.cssText; - if (n == 'style') v = tinyMCE.serializeStyle(tinyMCE.parseStyle(v)); + } if (this.settings.on_save && n.indexOf('on') != -1 && this.settings.on_save && v && v != "") v = tinyMCE.cleanupEventStr(v); @@ -4936,8 +5019,12 @@ TinyMCE_Cleanup.prototype = { _urlConverter : function(c, n, v) { if (!c.settings.on_save) return tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings.base_href, v); - else if (tinyMCE.getParam('convert_urls')) - return eval(tinyMCE.settings.urlconverter_callback + "(v, n, true);"); + else if (tinyMCE.getParam('convert_urls')) { + if (!this.urlConverter) + this.urlConverter = eval(tinyMCE.settings.urlconverter_callback); + + return this.urlConverter(v, n, true); + } return v; }, @@ -5225,7 +5312,12 @@ TinyMCE_Engine.prototype.getAttrib = function(elm, name, dv) { if (!elm || elm.nodeType != 1) return dv; - v = elm.getAttribute(name); + try { + v = elm.getAttribute(name, 0); + } catch (ex) { + // IE 7 may cast exception on invalid attributes + v = elm.getAttribute(name, 2); + } // Try className for class attrib if (name == "class" && !v) @@ -5876,7 +5968,12 @@ TinyMCE_Engine.prototype.setEventHandlers = function(inst, s) { for (i=0; i<ot.length; i++) f(doc, ot[i], tinyMCE.handleEvent); - eval('try { doc.designMode = "On"; } catch(e) {}'); // Force designmode + // Force designmode + try { + doc.designMode = "On"; + } catch (e) { + // Ignore + } } }; @@ -6047,8 +6144,8 @@ TinyMCE_Selection.prototype = { h = tinyMCE._cleanupHTML(inst, inst.contentDocument, inst.settings, e, e, false, true, false); // When editing always use fonts internaly - if (tinyMCE.getParam("convert_fonts_to_spans")) - tinyMCE.convertSpansToFonts(inst.getDoc()); + //if (tinyMCE.getParam("convert_fonts_to_spans")) + // tinyMCE.convertSpansToFonts(inst.getDoc()); return h; }, @@ -6251,6 +6348,9 @@ TinyMCE_Selection.prototype = { } if (tinyMCE.isGecko || tinyMCE.isOpera) { + if (!sel) + return false; + if (bookmark.rng) { sel.removeAllRanges(); sel.addRange(bookmark.rng); @@ -6462,7 +6562,33 @@ TinyMCE_Selection.prototype = { if (tinyMCE.isSafari && !s.getRangeAt) return '' + window.getSelection(); - return s.getRangeAt(0); + if (s.rangeCount > 0) + return s.getRangeAt(0); + + return null; + }, + + isCollapsed : function() { + var r = this.getRng(); + + if (r.item) + return false; + + return r.boundingWidth == 0 || this.getSel().isCollapsed; + }, + + collapse : function(b) { + var r = this.getRng(), s = this.getSel(); + + if (r.select) { + r.collapse(b); + r.select(); + } else { + if (b) + s.collapseToStart(); + else + s.collapseToEnd(); + } }, getFocusElement : function() { @@ -7117,6 +7243,16 @@ TinyMCE_Layer.prototype = { return 0; return parseInt(s); + }, + + remove : function() { + var e = this.getElement(), b = this.getBlocker(); + + if (e) + e.parentNode.removeChild(e); + + if (b) + b.parentNode.removeChild(b); } }; @@ -7208,7 +7344,7 @@ TinyMCE_Menu.prototype = tinyMCE.extend(TinyMCE_Layer.prototype, { break; default: - h += '<tr><td><a href="#" onclick="return tinyMCE.cancelEvent(event);" onmousedown="return tinyMCE.cancelEvent(event);" onmouseup="' + tinyMCE.xmlEncode(m[i].js) + ';return tinyMCE.cancelEvent(event);"><span' + c +'>' + t + '</span></a>'; + h += '<tr><td><a href="' + tinyMCE.xmlEncode(m[i].js) + '" onmousedown="' + tinyMCE.xmlEncode(m[i].js) + ';return tinyMCE.cancelEvent(event);" onclick="return tinyMCE.cancelEvent(event);" onmouseup="return tinyMCE.cancelEvent(event);"><span' + c +'>' + t + '</span></a>'; } h += '</td></tr>'; diff --git a/wp-includes/js/tinymce/tiny_mce_config.php b/wp-includes/js/tinymce/tiny_mce_config.php index 808cfb6..7994767 100644 --- a/wp-includes/js/tinymce/tiny_mce_config.php +++ b/wp-includes/js/tinymce/tiny_mce_config.php @@ -43,7 +43,7 @@ $mce_popups_css = get_option('siteurl') . '/wp-includes/js/tinymce/plugins/wordpress/popups.css'; $mce_css = get_option('siteurl') . '/wp-includes/js/tinymce/plugins/wordpress/wordpress.css'; $mce_css = apply_filters('mce_css', $mce_css); - if ( $_SERVER['HTTPS'] ) { + if ( $_SERVER['HTTPS'] == 'on' ) { $mce_css = str_replace('http://', 'https://', $mce_css); $mce_popups_css = str_replace('http://', 'https://', $mce_popups_css); } diff --git a/wp-includes/js/tinymce/utils/editable_selects.js b/wp-includes/js/tinymce/utils/editable_selects.js new file mode 100644 index 0000000..e723365 --- /dev/null +++ b/wp-includes/js/tinymce/utils/editable_selects.js @@ -0,0 +1,61 @@ +/**
+ * $Id: editable_selects.js 162 2007-01-03 16:16:52Z spocke $
+ *
+ * Makes select boxes editable.
+ *
+ * @author Moxiecode
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
+ */
+
+var TinyMCE_EditableSelects = {
+ editSelectElm : null,
+
+ init : function() {
+ var nl = document.getElementsByTagName("select"), i, d = document, o;
+
+ for (i=0; i<nl.length; i++) {
+ if (nl[i].className.indexOf('mceEditableSelect') != -1) {
+ o = new Option('(value)', '__mce_add_custom__');
+
+ o.className = 'mceAddSelectValue';
+
+ nl[i].options[nl[i].options.length] = o;
+ nl[i].setAttribute('onchange', 'TinyMCE_EditableSelects.onChangeEditableSelect(this);');
+ }
+ }
+ },
+
+ onChangeEditableSelect : function(se) {
+ var d = document, ne;
+
+ if (se.options[se.selectedIndex].value == '__mce_add_custom__') {
+ ne = d.createElement("input");
+ ne.id = se.id + "_custom";
+ ne.name = se.name + "_custom";
+ ne.type = "text";
+
+ ne.style.width = se.clientWidth;
+ se.parentNode.insertBefore(ne, se);
+ se.style.display = 'none';
+ ne.focus();
+ ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;
+ TinyMCE_EditableSelects.editSelectElm = se;
+ }
+ },
+
+ onBlurEditableSelectInput : function() {
+ var se = TinyMCE_EditableSelects.editSelectElm;
+
+ if (se) {
+ if (se.previousSibling.value != '') {
+ addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value);
+ selectByValue(document.forms[0], se.id, se.previousSibling.value);
+ } else
+ selectByValue(document.forms[0], se.id, '');
+
+ se.style.display = 'inline';
+ se.parentNode.removeChild(se.previousSibling);
+ TinyMCE_EditableSelects.editSelectElm = null;
+ }
+ }
+};
diff --git a/wp-includes/js/tinymce/utils/form_utils.js b/wp-includes/js/tinymce/utils/form_utils.js index c502943..ec9dbb3 100644 --- a/wp-includes/js/tinymce/utils/form_utils.js +++ b/wp-includes/js/tinymce/utils/form_utils.js @@ -1,10 +1,10 @@ /**
- * $Id: form_utils.js 43 2006-08-08 16:10:07Z spocke $
+ * $Id: form_utils.js 162 2007-01-03 16:16:52Z spocke $
*
* Various form utilitiy functions.
*
* @author Moxiecode
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/
var themeBaseURL = tinyMCE.baseURL + '/themes/' + tinyMCE.getParam("theme");
diff --git a/wp-includes/js/tinymce/utils/mclayer.js b/wp-includes/js/tinymce/utils/mclayer.js index deac8b7..1b347f7 100644 --- a/wp-includes/js/tinymce/utils/mclayer.js +++ b/wp-includes/js/tinymce/utils/mclayer.js @@ -1,10 +1,10 @@ /**
- * $Id: mclayer.js 18 2006-06-29 14:11:23Z spocke $
+ * $Id: mclayer.js 162 2007-01-03 16:16:52Z spocke $
*
* Moxiecode floating layer script.
*
* @author Moxiecode
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/
function MCLayer(id) {
diff --git a/wp-includes/js/tinymce/utils/mctabs.js b/wp-includes/js/tinymce/utils/mctabs.js index 354186e..fae038d 100644 --- a/wp-includes/js/tinymce/utils/mctabs.js +++ b/wp-includes/js/tinymce/utils/mctabs.js @@ -1,10 +1,10 @@ /**
- * $Id: mctabs.js 18 2006-06-29 14:11:23Z spocke $
+ * $Id: mctabs.js 162 2007-01-03 16:16:52Z spocke $
*
* Moxiecode DHTML Tabs script.
*
* @author Moxiecode
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/
function MCTabs() {
diff --git a/wp-includes/js/tinymce/utils/validate.js b/wp-includes/js/tinymce/utils/validate.js index f329b13..b8931f4 100644 --- a/wp-includes/js/tinymce/utils/validate.js +++ b/wp-includes/js/tinymce/utils/validate.js @@ -1,10 +1,10 @@ /**
- * $Id: validate.js 65 2006-08-24 15:54:55Z spocke $
+ * $Id: validate.js 162 2007-01-03 16:16:52Z spocke $
*
* Various form validation methods.
*
* @author Moxiecode
- * @copyright Copyright © 2004-2006, Moxiecode Systems AB, All rights reserved.
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
*/
/**
diff --git a/wp-includes/js/tinymce/wp-mce-help.php b/wp-includes/js/tinymce/wp-mce-help.php index 0893127..e28132a 100644 --- a/wp-includes/js/tinymce/wp-mce-help.php +++ b/wp-includes/js/tinymce/wp-mce-help.php @@ -164,7 +164,7 @@ <div id="content4" class="hidden"> <h2><?php _e('About TinyMCE'); ?></h2> - <p><?php printf(__('Version: %s'), '2.0.8') ?></p> + <p><?php printf(__('Version: %s'), '2.0.9') ?></p> <p><?php printf(__('TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under %sLGPL</a> by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.'), '<a href="'.get_bloginfo('home').'/wp-includes/js/tinymce/license.txt" target="_blank" title="'.__('GNU Library General Public Licence').'">') ?></p> <p><?php _e('Copyright © 2005, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.') ?></p> <p><?php _e('For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.') ?></p> |
