TinyMCE 2.0.9. fixes #3564

git-svn-id: http://svn.automattic.com/wordpress/trunk@4799 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2007-01-25 01:20:47 +00:00
parent a741e0d350
commit 8f58b134c2
16 changed files with 410 additions and 205 deletions

View File

@ -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 */

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -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 &copy; 2003-2006, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.</p>
<p>Copyright &copy; 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>

View File

@ -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;}

View File

@ -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;

View File

@ -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';
}

View File

@ -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 = {'&':'&amp;','"':'&quot;',"'":'&#39;','<':'&lt;','>':'&gt;'};
},
_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(/&amp;/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 '&amp;';
@ -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" ? "&nbsp;" : "&#160;";
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>';

View File

@ -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;
}
}
};

View File

@ -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");

View File

@ -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) {

View File

@ -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() {

View File

@ -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.
*/
/**

View File

@ -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 &copy; 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>

View File

@ -15,9 +15,9 @@ class WP_Scripts {
$this->add( 'sack', '/wp-includes/js/tw-sack.js', false, '1.6.1' );
$this->add( 'quicktags', '/wp-includes/js/quicktags.js', false, '3517' );
$this->add( 'colorpicker', '/wp-includes/js/colorpicker.js', false, '3517' );
$this->add( 'tiny_mce', '/wp-includes/js/tinymce/tiny_mce_gzip.php', false, '20061113' );
$this->add( 'tiny_mce', '/wp-includes/js/tinymce/tiny_mce_gzip.php', false, '20070124' );
$mce_config = apply_filters('tiny_mce_config_url', '/wp-includes/js/tinymce/tiny_mce_config.php');
$this->add( 'wp_tiny_mce', $mce_config, array('tiny_mce'), '20061113' );
$this->add( 'wp_tiny_mce', $mce_config, array('tiny_mce'), '20070124' );
$this->add( 'prototype', '/wp-includes/js/prototype.js', false, '1.5.0');
$this->add( 'autosave', '/wp-includes/js/autosave-js.php', array('prototype', 'sack'), '20070116');
$this->add( 'wp-ajax', '/wp-includes/js/wp-ajax-js.php', array('prototype'), '20070118');