update to 1.0.1
This commit is contained in:
parent
a41c6139a7
commit
fb2e264928
@ -1,8 +1,13 @@
|
|||||||
# TinyMCE for OXID eShop CE 4.6 - 4.7
|
# TinyMCE 3.5.8 for OXID eShop CE 4.6+
|
||||||
TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL.
|
TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor control released as Open Source under LGPL.
|
||||||
More information here: http://www.tinymce.com/
|
More information here: http://www.tinymce.com/
|
||||||
and here: https://github.com/tinymce
|
and here: https://github.com/tinymce
|
||||||
|
|
||||||
|
## module version 1.0.1 from 2012-12-19
|
||||||
|
### changelog
|
||||||
|
* destroying smarty tags fixed
|
||||||
|
* tinyMCE 3.5.8 update
|
||||||
|
* module settings for relative urls and editor height added
|
||||||
|
|
||||||
## INSTALLATION
|
## INSTALLATION
|
||||||
### upload over ftp/ssh:
|
### upload over ftp/ssh:
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 3.9 KiB |
@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HDI TinyMCE
|
* HDI TinyMCE
|
||||||
* Copyright (C) 2012 HEINER DIRECT GmbH & Co. KG
|
* Copyright (C) 2012 HEINER DIRECT GmbH & Co. KG
|
||||||
@ -15,10 +16,11 @@
|
|||||||
$sMetadataVersion = '1.0';
|
$sMetadataVersion = '1.0';
|
||||||
$aModule = array(
|
$aModule = array(
|
||||||
'id' => 'hdi-tinymce',
|
'id' => 'hdi-tinymce',
|
||||||
'title' => '<strong style="color:#006a8c;border: 1px solid #e30061;padding: 0 2px;background:white;">HDI</strong> <strong>TinyMCE 3.5.7</strong>',
|
'title' => '<strong style="color:#006a8c;border: 1px solid #e30061;padding: 0 2px;background:white;">HDI</strong> <strong>TinyMCE 3.5.8</strong>',
|
||||||
'description' => 'backend implementation of TinyMCE Editor<br/>visit <a href="http://www.tinymce.com/" target="_blank">http://www.tinymce.com/</a> for more details',
|
'description' => 'backend implementation of TinyMCE Editor<br/>visit <a href="http://www.tinymce.com/" target="_blank">http://www.tinymce.com/</a> for more details',
|
||||||
'thumbnail' => 'hdi.png',
|
'thumbnail' => 'hdi.png',
|
||||||
'version' => '3.5.7',
|
'version' => '1.0.1 (2012-12-19)</dd><dt>newest version</dt><dd><img src="https://raw.github.com/vanilla-thunder/hdi-tinymce/module/version.jpg" /><br/>
|
||||||
|
<a style="display: inline-block; padding: 1px 15px; background: #f0f0f0; border: 1px solid gray" href="https://github.com/vanilla-thunder/hdi-tinymce/" target="_blank">info</a> <a style="display: inline-block; padding: 1px 15px; background: #f0f0f0; border: 1px solid gray" href="https://github.com/vanilla-thunder/hdi-tinymce/archive/master.zip">download</a>',
|
||||||
'author' => 'Marat Bedoev, HEINER DIRECT GmbH & Co. KG',
|
'author' => 'Marat Bedoev, HEINER DIRECT GmbH & Co. KG',
|
||||||
'email' => 'info@heiner-direct.com',
|
'email' => 'info@heiner-direct.com',
|
||||||
'url' => 'http://www.heiner-direct.com',
|
'url' => 'http://www.heiner-direct.com',
|
||||||
@ -42,6 +44,9 @@ $aModule = array(
|
|||||||
array('group' => 'tinyMceMain', 'name' => 'bTinyMCE_content_main', 'type' => 'bool', 'value' => true, 'position' => 3),
|
array('group' => 'tinyMceMain', 'name' => 'bTinyMCE_content_main', 'type' => 'bool', 'value' => true, 'position' => 3),
|
||||||
array('group' => 'tinyMceMain', 'name' => 'bTinyMCE_newsletter_main', 'type' => 'bool', 'value' => true, 'position' => 4),
|
array('group' => 'tinyMceMain', 'name' => 'bTinyMCE_newsletter_main', 'type' => 'bool', 'value' => true, 'position' => 4),
|
||||||
array('group' => 'tinyMceMain', 'name' => 'bTinyMCE_news_text', 'type' => 'bool', 'value' => true, 'position' => 5),
|
array('group' => 'tinyMceMain', 'name' => 'bTinyMCE_news_text', 'type' => 'bool', 'value' => true, 'position' => 5),
|
||||||
|
/* TinyMCE Settings */
|
||||||
|
array('group' => 'tinyMceSettings', 'name' => 'sTinyMCE_height', 'type' => 'str', 'value' => '400', 'position' => 1),
|
||||||
|
array('group' => 'tinyMceSettings', 'name' => 'bTinyMCE_relative_urls', 'type' => 'bool', 'value' => true, 'position' => 2),
|
||||||
/* plugins */
|
/* plugins */
|
||||||
array('group' => 'tinyMcePlugins', 'name' => 'bTinyMCE_autolink', 'type' => 'bool', 'value' => true, 'position' => 1),
|
array('group' => 'tinyMcePlugins', 'name' => 'bTinyMCE_autolink', 'type' => 'bool', 'value' => true, 'position' => 1),
|
||||||
array('group' => 'tinyMcePlugins', 'name' => 'bTinyMCE_ists', 'type' => 'bool', 'value' => true, 'position' => 2),
|
array('group' => 'tinyMcePlugins', 'name' => 'bTinyMCE_ists', 'type' => 'bool', 'value' => true, 'position' => 2),
|
||||||
@ -77,7 +82,3 @@ $aModule = array(
|
|||||||
array('group' => 'tinyMcePlugins', 'name' => 'sTinyMCE_customplugins', 'type' => 'str', 'value' => "", 'position' => 32)
|
array('group' => 'tinyMcePlugins', 'name' => 'sTinyMCE_customplugins', 'type' => 'str', 'value' => "", 'position' => 32)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
/* to do
|
|
||||||
* - implement relative_url setting into module settings
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
@ -16,12 +16,15 @@
|
|||||||
$sLangName = 'Deutsch';
|
$sLangName = 'Deutsch';
|
||||||
$aLang = array(
|
$aLang = array(
|
||||||
'charset' => 'UTF-8',
|
'charset' => 'UTF-8',
|
||||||
'SHOP_MODULE_GROUP_tinyMceMain' => '<style type="text/css">.groupExp a.rc b {font-size: medium; color: #ff3600; }.groupExp dt input.txt { width: 400px !important} .groupExp dl { display: block !important; } input.confinput {position: fixed; top: 20px; right: 70px; background: #008B2D; padding: 5px 20px; color: white; border: 1px solid black; cursor:pointer; font-size: 125%; } input.confinput:hover {outline: 3px solid #ff3600;}</style>Moduleinstellungen',
|
'SHOP_MODULE_GROUP_tinyMceMain' => '<style type="text/css">.groupExp a.rc b {font-size: medium; color: #ff3600; }.groupExp dt input.txt { width: 200px !important} .groupExp dl { display: block !important; } input.confinput {position: fixed; top: 20px; right: 70px; background: #008B2D; padding: 5px 20px; color: white; border: 1px solid black; cursor:pointer; font-size: 125%; } input.confinput:hover {outline: 3px solid #ff3600;}</style>Moduleinstellungen',
|
||||||
'SHOP_MODULE_bTinyMCE_article_main' => 'TinyMCE für die Artikelbeschreibung benutzen',
|
'SHOP_MODULE_bTinyMCE_article_main' => 'TinyMCE für die Artikelbeschreibung benutzen',
|
||||||
'SHOP_MODULE_bTinyMCE_category_text' => 'TinyMCE für die Kategorienbeschreibung benutzen',
|
'SHOP_MODULE_bTinyMCE_category_text' => 'TinyMCE für die Kategorienbeschreibung benutzen',
|
||||||
'SHOP_MODULE_bTinyMCE_content_main' => 'TinyMCE für die CMS Seiten benutzen',
|
'SHOP_MODULE_bTinyMCE_content_main' => 'TinyMCE für die CMS Seiten benutzen',
|
||||||
'SHOP_MODULE_bTinyMCE_newsletter_main' => 'TinyMCE für die Newsletter benutzen',
|
'SHOP_MODULE_bTinyMCE_newsletter_main' => 'TinyMCE für die Newsletter benutzen',
|
||||||
'SHOP_MODULE_bTinyMCE_news_text' => 'TinyMCE für die News benutzen',
|
'SHOP_MODULE_bTinyMCE_news_text' => 'TinyMCE für die News benutzen',
|
||||||
|
'SHOP_MODULE_GROUP_tinyMceSettings' => 'Editor Einxtellungen',
|
||||||
|
'SHOP_MODULE_sTinyMCE_height'=>'Höhe des Editors (eine reine Zahl ohne Einheiten)',
|
||||||
|
'SHOP_MODULE_bTinyMCE_relative_urls'=>'relative Urls verwenden',
|
||||||
'SHOP_MODULE_GROUP_tinyMcePlugins' => 'TinyMCE Plugins</b></a> <a href="http://www.tinymce.com/wiki.php/Plugins" target="_blank" title="mehr Infos"><b>( ? )',
|
'SHOP_MODULE_GROUP_tinyMcePlugins' => 'TinyMCE Plugins</b></a> <a href="http://www.tinymce.com/wiki.php/Plugins" target="_blank" title="mehr Infos"><b>( ? )',
|
||||||
'SHOP_MODULE_bTinyMCE_autolink' => 'autolink',
|
'SHOP_MODULE_bTinyMCE_autolink' => 'autolink',
|
||||||
'SHOP_MODULE_bTinyMCE_ists' => 'ists',
|
'SHOP_MODULE_bTinyMCE_ists' => 'ists',
|
||||||
|
@ -4,24 +4,25 @@
|
|||||||
function copyLongDescFromTinyMCE(sIdent) {
|
function copyLongDescFromTinyMCE(sIdent) {
|
||||||
var editor = tinyMCE.get('editor_' + sIdent);
|
var editor = tinyMCE.get('editor_' + sIdent);
|
||||||
if (tinyMCE && editor) {
|
if (tinyMCE && editor) {
|
||||||
|
editor.show();
|
||||||
content = editor.getContent();
|
content = editor.getContent();
|
||||||
if (content != null) {
|
if (content !== null) {
|
||||||
// restore smarty code that has been masked by htmlentities:
|
// restore smarty code that has been masked by htmlentities:
|
||||||
/*var aSmartyParts = textVal.split( "["+"{" );
|
var aSmartyParts = content.split("[" + "{");
|
||||||
|
|
||||||
if (aSmartyParts.length > 1) {
|
if (aSmartyParts.length > 1) {
|
||||||
for (var i = 0; i < aSmartyParts.length; i++) {
|
for (var i = 0; i < aSmartyParts.length; i++) {
|
||||||
aSubParts = aSmartyParts[i].split("}" + "]");
|
aSubParts = aSmartyParts[i].split("}" + "]");
|
||||||
if (aSubParts.length > 1)
|
if (aSubParts.length > 1)
|
||||||
aSubParts[0] = aSubParts[0].replace( />/g, ">" ).replace( /</g, "<" ).replace( /&/g, "&" ).replace( /"/g, "\"" );
|
aSubParts[0] = aSubParts[0].replace(/>/gi, ">").replace(/</gi, "<").replace(/&/gi, "&").replace(/"/gi, '"');
|
||||||
aSmartyParts[i] = aSubParts.join("}" + "]");
|
aSmartyParts[i] = aSubParts.join("}" + "]");
|
||||||
}
|
}
|
||||||
textVal = aSmartyParts.join( "["+"{" );
|
content = aSmartyParts.join("[" + "{");
|
||||||
}*/
|
}
|
||||||
document.getElementsByName('editval[' + sIdent + ']').item(0).value = content;
|
document.getElementsByName('editval[' + sIdent + ']').item(0).value = content;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,15 +36,13 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
tinyMCE.init({
|
tinyMCE.init({
|
||||||
// General options
|
// General options
|
||||||
height : "400",
|
height: '[{$cfg->getConfigParam("sTinyMCE_height")}]',
|
||||||
relative_urls : false,
|
relative_urls: [{if $cfg->getConfigParam("bTinyMCE_relative_urls") == 1}]true[{else}]false[{/if}],
|
||||||
remove_script_host: false,
|
remove_script_host: false,
|
||||||
document_base_url: '[{$oViewConf->getBaseDir()}]',
|
document_base_url: '[{$oViewConf->getBaseDir()}]',
|
||||||
mode: "textareas",
|
mode: "textareas",
|
||||||
theme: "advanced",
|
theme: "advanced",
|
||||||
plugins: "[{if $cfg->getConfigParam("bTinyMCE_autolink")}]autolink,[{/if}][{if $cfg->getConfigParam("bTinyMCE_lists")}]lists,[{/if}][{if $cfg->getConfigParam("bTinyMCE_pagebreak")}]pagebreak,[{/if}][{if $cfg->getConfigParam("bTinyMCE_style")}]style,[{/if}][{if $cfg->getConfigParam("bTinyMCE_layer")}]layer,[{/if}][{if $cfg->getConfigParam("bTinyMCE_table")}]table,[{/if}][{if $cfg->getConfigParam("bTinyMCE_save")}]save,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advhr")}]advhr,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advimage")}]advimage,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advlink")}]advlink,[{/if}][{if $cfg->getConfigParam("bTinyMCE_emotions")}]emotions,[{/if}][{if $cfg->getConfigParam("bTinyMCE_iespell")}]iespell,[{/if}][{if $cfg->getConfigParam("bTinyMCE_inlinepopups")}]inlinepopups,[{/if}][{if $cfg->getConfigParam("bTinyMCE_insertdatetime")}]insertdatetime,[{/if}][{if $cfg->getConfigParam("bTinyMCE_preview")}]preview,[{/if}][{if $cfg->getConfigParam("bTinyMCE_media")}]media,[{/if}][{if $cfg->getConfigParam("bTinyMCE_searchreplace")}]searchreplace,[{/if}][{if $cfg->getConfigParam("bTinyMCE_print")}]print,[{/if}][{if $cfg->getConfigParam("bTinyMCE_contextmenu")}]contextmenu,[{/if}][{if $cfg->getConfigParam("bTinyMCE_paste")}]paste,[{/if}][{if $cfg->getConfigParam("bTinyMCE_directionality")}]directionality,[{/if}][{if $cfg->getConfigParam("bTinyMCE_fullscreen")}]fullscreen,[{/if}][{if $cfg->getConfigParam("bTinyMCE_noneditable")}]noneditable,[{/if}][{if $cfg->getConfigParam("bTinyMCE_visualchars")}]visualchars,[{/if}][{if $cfg->getConfigParam("bTinyMCE_nonbreaking")}]nonbreaking,[{/if}][{if $cfg->getConfigParam("bTinyMCE_xhtmlxtras")}]xhtmlxtras,[{/if}][{if $cfg->getConfigParam("bTinyMCE_template")}]template,[{/if}][{if $cfg->getConfigParam("bTinyMCE_wordcount")}]wordcount,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advlist")}]advlist,[{/if}][{if $cfg->getConfigParam("bTinyMCE_autosave")}]autosave,[{/if}][{if $cfg->getConfigParam("bTinyMCE_visualblocks")}]visualblocks[{/if}][{if $cfg->getConfigParam("sTinyMCE_customplugins")}][{$cfg->getConfigParam("sTinyMCE_customplugins")}][{/if}]",
|
plugins: "[{if $cfg->getConfigParam("bTinyMCE_autolink")}]autolink,[{/if}][{if $cfg->getConfigParam("bTinyMCE_lists")}]lists,[{/if}][{if $cfg->getConfigParam("bTinyMCE_pagebreak")}]pagebreak,[{/if}][{if $cfg->getConfigParam("bTinyMCE_style")}]style,[{/if}][{if $cfg->getConfigParam("bTinyMCE_layer")}]layer,[{/if}][{if $cfg->getConfigParam("bTinyMCE_table")}]table,[{/if}][{if $cfg->getConfigParam("bTinyMCE_save")}]save,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advhr")}]advhr,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advimage")}]advimage,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advlink")}]advlink,[{/if}][{if $cfg->getConfigParam("bTinyMCE_emotions")}]emotions,[{/if}][{if $cfg->getConfigParam("bTinyMCE_iespell")}]iespell,[{/if}][{if $cfg->getConfigParam("bTinyMCE_inlinepopups")}]inlinepopups,[{/if}][{if $cfg->getConfigParam("bTinyMCE_insertdatetime")}]insertdatetime,[{/if}][{if $cfg->getConfigParam("bTinyMCE_preview")}]preview,[{/if}][{if $cfg->getConfigParam("bTinyMCE_media")}]media,[{/if}][{if $cfg->getConfigParam("bTinyMCE_searchreplace")}]searchreplace,[{/if}][{if $cfg->getConfigParam("bTinyMCE_print")}]print,[{/if}][{if $cfg->getConfigParam("bTinyMCE_contextmenu")}]contextmenu,[{/if}][{if $cfg->getConfigParam("bTinyMCE_paste")}]paste,[{/if}][{if $cfg->getConfigParam("bTinyMCE_directionality")}]directionality,[{/if}][{if $cfg->getConfigParam("bTinyMCE_fullscreen")}]fullscreen,[{/if}][{if $cfg->getConfigParam("bTinyMCE_noneditable")}]noneditable,[{/if}][{if $cfg->getConfigParam("bTinyMCE_visualchars")}]visualchars,[{/if}][{if $cfg->getConfigParam("bTinyMCE_nonbreaking")}]nonbreaking,[{/if}][{if $cfg->getConfigParam("bTinyMCE_xhtmlxtras")}]xhtmlxtras,[{/if}][{if $cfg->getConfigParam("bTinyMCE_template")}]template,[{/if}][{if $cfg->getConfigParam("bTinyMCE_wordcount")}]wordcount,[{/if}][{if $cfg->getConfigParam("bTinyMCE_advlist")}]advlist,[{/if}][{if $cfg->getConfigParam("bTinyMCE_autosave")}]autosave,[{/if}][{if $cfg->getConfigParam("bTinyMCE_visualblocks")}]visualblocks[{/if}][{if $cfg->getConfigParam("sTinyMCE_customplugins")}][{$cfg->getConfigParam("sTinyMCE_customplugins")}][{/if}]",
|
||||||
|
|
||||||
|
|
||||||
// Theme options
|
// Theme options
|
||||||
theme_advanced_buttons1: "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect",
|
theme_advanced_buttons1: "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect",
|
||||||
theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
|
theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
|
||||||
@ -53,7 +52,6 @@
|
|||||||
theme_advanced_toolbar_align: "left",
|
theme_advanced_toolbar_align: "left",
|
||||||
theme_advanced_statusbar_location: "bottom",
|
theme_advanced_statusbar_location: "bottom",
|
||||||
theme_advanced_resizing: true,
|
theme_advanced_resizing: true,
|
||||||
|
|
||||||
// Example content CSS (should be your site CSS)
|
// Example content CSS (should be your site CSS)
|
||||||
//content_css : "modules/tinymce/style.css",
|
//content_css : "modules/tinymce/style.css",
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;a.onKeyDown.addToTop(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});if(tinyMCE.isIE){return}a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng(true).cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}if(n.nodeType==3){a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}var m=a.toString();if(m.charAt(m.length-1)=="."){a.setEnd(n,c-1)}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])&&!/^mailto:/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);i.nodeChanged();if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();
|
(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;a.onKeyDown.addToTop(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});if(tinyMCE.isIE){return}a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng(true).cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}if(n.nodeType==3){a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f>=2?f-2:0);a.setEnd(n,f>=1?f-1:0);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}var m=a.toString();if(m.charAt(m.length-1)=="."){a.setEnd(n,c-1)}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])&&!/^mailto:/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);i.nodeChanged();if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();
|
@ -107,8 +107,8 @@
|
|||||||
do
|
do
|
||||||
{
|
{
|
||||||
// Move the selection one character backwards.
|
// Move the selection one character backwards.
|
||||||
r.setStart(endContainer, end - 2);
|
r.setStart(endContainer, end >= 2 ? end - 2 : 0);
|
||||||
r.setEnd(endContainer, end - 1);
|
r.setEnd(endContainer, end >= 1 ? end - 1 : 0);
|
||||||
end -= 1;
|
end -= 1;
|
||||||
|
|
||||||
// Loop until one of the following is found: a blank space, , delimeter, (end-2) >= 0
|
// Loop until one of the following is found: a blank space, , delimeter, (end-2) >= 0
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
tinyMCE.addI18n('en.autosave',{
|
|
||||||
restore_content: "Restore auto-saved content",
|
|
||||||
warning_message: "If you restore the saved content, you will lose all the content that is currently in the editor.\n\nAre you sure you want to restore the saved content?"
|
|
||||||
});
|
|
@ -295,8 +295,17 @@
|
|||||||
} else {
|
} else {
|
||||||
src = getVal("src");
|
src = getVal("src");
|
||||||
|
|
||||||
|
// YouTube Embed
|
||||||
|
if (src.match(/youtube\.com\/embed\/\w+/)) {
|
||||||
|
data.width = 425;
|
||||||
|
data.height = 350;
|
||||||
|
data.params.frameborder = '0';
|
||||||
|
data.type = 'iframe';
|
||||||
|
setVal('src', src);
|
||||||
|
setVal('media_type', data.type);
|
||||||
|
} else {
|
||||||
// YouTube *NEW*
|
// YouTube *NEW*
|
||||||
if (src.match(/youtu.be\/[a-z1-9.-_]+/)) {
|
if (src.match(/youtu\.be\/[a-z1-9.-_]+/)) {
|
||||||
data.width = 425;
|
data.width = 425;
|
||||||
data.height = 350;
|
data.height = 350;
|
||||||
data.params.frameborder = '0';
|
data.params.frameborder = '0';
|
||||||
@ -307,7 +316,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// YouTube
|
// YouTube
|
||||||
if (src.match(/youtube.com(.+)v=([^&]+)/)) {
|
if (src.match(/youtube\.com(.+)v=([^&]+)/)) {
|
||||||
data.width = 425;
|
data.width = 425;
|
||||||
data.height = 350;
|
data.height = 350;
|
||||||
data.params.frameborder = '0';
|
data.params.frameborder = '0';
|
||||||
@ -316,9 +325,10 @@
|
|||||||
setVal('src', src);
|
setVal('src', src);
|
||||||
setVal('media_type', data.type);
|
setVal('media_type', data.type);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Google video
|
// Google video
|
||||||
if (src.match(/video.google.com(.+)docid=([^&]+)/)) {
|
if (src.match(/video\.google\.com(.+)docid=([^&]+)/)) {
|
||||||
data.width = 425;
|
data.width = 425;
|
||||||
data.height = 326;
|
data.height = 326;
|
||||||
data.type = 'flash';
|
data.type = 'flash';
|
||||||
@ -328,7 +338,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Vimeo
|
// Vimeo
|
||||||
if (src.match(/vimeo.com\/([0-9]+)/)) {
|
if (src.match(/vimeo\.com\/([0-9]+)/)) {
|
||||||
data.width = 425;
|
data.width = 425;
|
||||||
data.height = 350;
|
data.height = 350;
|
||||||
data.params.frameborder = '0';
|
data.params.frameborder = '0';
|
||||||
@ -339,7 +349,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// stream.cz
|
// stream.cz
|
||||||
if (src.match(/stream.cz\/((?!object).)*\/([0-9]+)/)) {
|
if (src.match(/stream\.cz\/((?!object).)*\/([0-9]+)/)) {
|
||||||
data.width = 425;
|
data.width = 425;
|
||||||
data.height = 350;
|
data.height = 350;
|
||||||
data.params.frameborder = '0';
|
data.params.frameborder = '0';
|
||||||
@ -350,7 +360,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Google maps
|
// Google maps
|
||||||
if (src.match(/maps.google.([a-z]{2,3})\/maps\/(.+)msid=(.+)/)) {
|
if (src.match(/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/)) {
|
||||||
data.width = 425;
|
data.width = 425;
|
||||||
data.height = 350;
|
data.height = 350;
|
||||||
data.params.frameborder = '0';
|
data.params.frameborder = '0';
|
||||||
|
File diff suppressed because one or more lines are too long
@ -566,6 +566,10 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
function pasteRows(rows, before) {
|
function pasteRows(rows, before) {
|
||||||
|
// If we don't have any rows in the clipboard, return immediately
|
||||||
|
if(!rows)
|
||||||
|
return;
|
||||||
|
|
||||||
var selectedRows = getSelectedRows(),
|
var selectedRows = getSelectedRows(),
|
||||||
targetRow = selectedRows[before ? 0 : selectedRows.length - 1],
|
targetRow = selectedRows[before ? 0 : selectedRows.length - 1],
|
||||||
targetCellCount = targetRow.cells.length;
|
targetCellCount = targetRow.cells.length;
|
||||||
|
@ -25,6 +25,7 @@ function init() {
|
|||||||
var dir = dom.getAttrib(trElm, 'dir');
|
var dir = dom.getAttrib(trElm, 'dir');
|
||||||
|
|
||||||
selectByValue(formObj, 'rowtype', rowtype);
|
selectByValue(formObj, 'rowtype', rowtype);
|
||||||
|
setActionforRowType(formObj, rowtype);
|
||||||
|
|
||||||
// Any cells selected
|
// Any cells selected
|
||||||
if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {
|
if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) {
|
||||||
@ -234,4 +235,20 @@ function changedColor() {
|
|||||||
formObj.style.value = dom.serializeStyle(st);
|
formObj.style.value = dom.serializeStyle(st);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function changedRowType() {
|
||||||
|
var formObj = document.forms[0];
|
||||||
|
var rowtype = getSelectValue(formObj, 'rowtype');
|
||||||
|
|
||||||
|
setActionforRowType(formObj, rowtype);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function setActionforRowType(formObj, rowtype) {
|
||||||
|
if (rowtype === "tbody") {
|
||||||
|
formObj.action.disabled = false;
|
||||||
|
} else {
|
||||||
|
selectByValue(formObj, 'action', "row");
|
||||||
|
formObj.action.disabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
tinyMCEPopup.onInit.add(init);
|
tinyMCEPopup.onInit.add(init);
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td><label for="rowtype">{#table_dlg.rowtype}</label></td>
|
<td><label for="rowtype">{#table_dlg.rowtype}</label></td>
|
||||||
<td class="col2">
|
<td class="col2">
|
||||||
<select id="rowtype" name="rowtype" class="mceFocus">
|
<select id="rowtype" name="rowtype" class="mceFocus" onChange="changedRowType();">
|
||||||
<option value="thead">{#table_dlg.thead}</option>
|
<option value="thead">{#table_dlg.thead}</option>
|
||||||
<option value="tbody">{#table_dlg.tbody}</option>
|
<option value="tbody">{#table_dlg.tbody}</option>
|
||||||
<option value="tfoot">{#table_dlg.tfoot}</option>
|
<option value="tfoot">{#table_dlg.tfoot}</option>
|
||||||
|
File diff suppressed because one or more lines are too long
@ -956,7 +956,7 @@
|
|||||||
a = s.theme_advanced_toolbar_align.toLowerCase();
|
a = s.theme_advanced_toolbar_align.toLowerCase();
|
||||||
a = 'mce' + t._ufirst(a);
|
a = 'mce' + t._ufirst(a);
|
||||||
|
|
||||||
n = DOM.add(DOM.add(c, 'tr', {role: 'toolbar'}), 'td', {'class' : 'mceToolbar ' + a, "role":"toolbar"});
|
n = DOM.add(DOM.add(c, 'tr', {role: 'presentation'}), 'td', {'class' : 'mceToolbar ' + a, "role":"toolbar"});
|
||||||
|
|
||||||
// Create toolbar and add the controls
|
// Create toolbar and add the controls
|
||||||
for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
|
for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
|
||||||
|
File diff suppressed because one or more lines are too long
@ -6,9 +6,9 @@
|
|||||||
var tinymce = {
|
var tinymce = {
|
||||||
majorVersion : '3',
|
majorVersion : '3',
|
||||||
|
|
||||||
minorVersion : '5.7',
|
minorVersion : '5.8',
|
||||||
|
|
||||||
releaseDate : '2012-09-20',
|
releaseDate : '2012-11-20',
|
||||||
|
|
||||||
_init : function() {
|
_init : function() {
|
||||||
var t = this, d = document, na = navigator, ua = na.userAgent, i, nl, n, base, p, v;
|
var t = this, d = document, na = navigator, ua = na.userAgent, i, nl, n, base, p, v;
|
||||||
@ -1098,7 +1098,7 @@ tinymce.create('static tinymce.util.XHR', {
|
|||||||
|
|
||||||
tinymce.util.Quirks = function(editor) {
|
tinymce.util.Quirks = function(editor) {
|
||||||
var VK = tinymce.VK, BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection,
|
var VK = tinymce.VK, BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection,
|
||||||
settings = editor.settings, parser = editor.parser, serializer = editor.serializer;
|
settings = editor.settings, parser = editor.parser, serializer = editor.serializer, each = tinymce.each;
|
||||||
|
|
||||||
function setEditorCommandState(cmd, state) {
|
function setEditorCommandState(cmd, state) {
|
||||||
try {
|
try {
|
||||||
@ -1128,40 +1128,48 @@ tinymce.util.Quirks = function(editor) {
|
|||||||
blockElm = dom.getParent(rng.startContainer, dom.isBlock);
|
blockElm = dom.getParent(rng.startContainer, dom.isBlock);
|
||||||
|
|
||||||
// On delete clone the root span of the next block element
|
// On delete clone the root span of the next block element
|
||||||
if (isDelete)
|
if (isDelete) {
|
||||||
blockElm = dom.getNext(blockElm, dom.isBlock);
|
blockElm = dom.getNext(blockElm, dom.isBlock);
|
||||||
|
}
|
||||||
|
|
||||||
// Locate root span element and clone it since it would otherwise get merged by the "apple-style-span" on delete/backspace
|
// Locate root span element and clone it since it would otherwise get merged by the "apple-style-span" on delete/backspace
|
||||||
if (blockElm) {
|
if (blockElm) {
|
||||||
node = blockElm.firstChild;
|
node = blockElm.firstChild;
|
||||||
|
|
||||||
// Ignore empty text nodes
|
// Ignore empty text nodes
|
||||||
while (node && node.nodeType == 3 && node.nodeValue.length === 0)
|
while (node && node.nodeType == 3 && node.nodeValue.length === 0) {
|
||||||
node = node.nextSibling;
|
node = node.nextSibling;
|
||||||
|
}
|
||||||
|
|
||||||
if (node && node.nodeName === 'SPAN') {
|
if (node && node.nodeName === 'SPAN') {
|
||||||
clonedSpan = node.cloneNode(false);
|
clonedSpan = node.cloneNode(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
each(dom.select('span', blockElm), function(span) {
|
||||||
|
span.setAttribute('data-mce-mark', '1');
|
||||||
|
});
|
||||||
|
|
||||||
// Do the backspace/delete action
|
// Do the backspace/delete action
|
||||||
editor.getDoc().execCommand(isDelete ? 'ForwardDelete' : 'Delete', false, null);
|
editor.getDoc().execCommand(isDelete ? 'ForwardDelete' : 'Delete', false, null);
|
||||||
|
|
||||||
// Find all odd apple-style-spans
|
// Find all odd apple-style-spans
|
||||||
blockElm = dom.getParent(rng.startContainer, dom.isBlock);
|
blockElm = dom.getParent(rng.startContainer, dom.isBlock);
|
||||||
tinymce.each(dom.select('span.Apple-style-span,font.Apple-style-span', blockElm), function(span) {
|
each(dom.select('span', blockElm), function(span) {
|
||||||
var bm = selection.getBookmark();
|
var bm = selection.getBookmark();
|
||||||
|
|
||||||
if (clonedSpan) {
|
if (clonedSpan) {
|
||||||
dom.replace(clonedSpan.cloneNode(false), span, true);
|
dom.replace(clonedSpan.cloneNode(false), span, true);
|
||||||
} else {
|
} else if (!span.getAttribute('data-mce-mark')) {
|
||||||
dom.remove(span, true);
|
dom.remove(span, true);
|
||||||
|
} else {
|
||||||
|
span.removeAttribute('data-mce-mark');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Restore the selection
|
// Restore the selection
|
||||||
selection.moveToBookmark(bm);
|
selection.moveToBookmark(bm);
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
editor.onKeyDown.add(function(editor, e) {
|
editor.onKeyDown.add(function(editor, e) {
|
||||||
var isDelete;
|
var isDelete;
|
||||||
@ -1315,7 +1323,7 @@ tinymce.util.Quirks = function(editor) {
|
|||||||
if (target !== editor.getBody()) {
|
if (target !== editor.getBody()) {
|
||||||
dom.setAttrib(target, "style", null);
|
dom.setAttrib(target, "style", null);
|
||||||
|
|
||||||
tinymce.each(template, function(attr) {
|
each(template, function(attr) {
|
||||||
target.setAttributeNode(attr.cloneNode(true));
|
target.setAttributeNode(attr.cloneNode(true));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -1565,7 +1573,7 @@ tinymce.util.Quirks = function(editor) {
|
|||||||
|
|
||||||
function addBrAfterLastLinks() {
|
function addBrAfterLastLinks() {
|
||||||
function fixLinks(editor, o) {
|
function fixLinks(editor, o) {
|
||||||
tinymce.each(dom.select('a'), function(node) {
|
each(dom.select('a'), function(node) {
|
||||||
var parentNode = node.parentNode, root = dom.getRoot();
|
var parentNode = node.parentNode, root = dom.getRoot();
|
||||||
|
|
||||||
if (parentNode.lastChild === node) {
|
if (parentNode.lastChild === node) {
|
||||||
@ -1633,7 +1641,7 @@ tinymce.util.Quirks = function(editor) {
|
|||||||
// IE10+
|
// IE10+
|
||||||
if (getDocumentMode() >= 10) {
|
if (getDocumentMode() >= 10) {
|
||||||
emptyBlocksCSS = '';
|
emptyBlocksCSS = '';
|
||||||
tinymce.each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) {
|
each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) {
|
||||||
emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty';
|
emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty';
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1750,7 +1758,7 @@ tinymce.util.Quirks = function(editor) {
|
|||||||
width = height = 0;
|
width = height = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
tinymce.each(resizeHandles, function(handle, name) {
|
each(resizeHandles, function(handle, name) {
|
||||||
var handleElm;
|
var handleElm;
|
||||||
|
|
||||||
// Get existing or render resize handle
|
// Get existing or render resize handle
|
||||||
@ -1847,7 +1855,7 @@ tinymce.util.Quirks = function(editor) {
|
|||||||
var controlElm = dom.getParent(selection.getNode(), 'table,img');
|
var controlElm = dom.getParent(selection.getNode(), 'table,img');
|
||||||
|
|
||||||
// Remove data-mce-selected from all elements since they might have been copied using Ctrl+c/v
|
// Remove data-mce-selected from all elements since they might have been copied using Ctrl+c/v
|
||||||
tinymce.each(dom.select('img[data-mce-selected]'), function(img) {
|
each(dom.select('img[data-mce-selected]'), function(img) {
|
||||||
img.removeAttribute('data-mce-selected');
|
img.removeAttribute('data-mce-selected');
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -3146,7 +3154,7 @@ tinymce.html.Styles = function(settings, schema) {
|
|||||||
value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); // Handle boolean attribute than value attribute
|
value = name in fillAttrsMap ? name : decode(value || val2 || val3 || ''); // Handle boolean attribute than value attribute
|
||||||
|
|
||||||
// Validate name and value
|
// Validate name and value
|
||||||
if (validate && !isInternalElement && name.indexOf('data-mce-') !== 0) {
|
if (validate && !isInternalElement && name.indexOf('data-') !== 0) {
|
||||||
attrRule = validAttributesMap[name];
|
attrRule = validAttributesMap[name];
|
||||||
|
|
||||||
// Find rule by pattern matching
|
// Find rule by pattern matching
|
||||||
@ -5209,6 +5217,11 @@ tinymce.dom.TreeWalker = function(start_node, root_node) {
|
|||||||
blockElementsMap = s.schema ? s.schema.getBlockElements() : {};
|
blockElementsMap = s.schema ? s.schema.getBlockElements() : {};
|
||||||
|
|
||||||
t.isBlock = function(node) {
|
t.isBlock = function(node) {
|
||||||
|
// Fix for #5446
|
||||||
|
if (!node) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// This function is called in module pattern style since it might be executed with the wrong this scope
|
// This function is called in module pattern style since it might be executed with the wrong this scope
|
||||||
var type = node.nodeType;
|
var type = node.nodeType;
|
||||||
|
|
||||||
@ -10318,6 +10331,16 @@ window.tinymce.dom.Sizzle = Sizzle;
|
|||||||
return self;
|
return self;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
scrollIntoView: function(elm) {
|
||||||
|
var y, viewPort, self = this, dom = self.dom;
|
||||||
|
|
||||||
|
viewPort = dom.getViewPort(self.editor.getWin());
|
||||||
|
y = dom.getPos(elm).y;
|
||||||
|
if (y < viewPort.y || y + 25 > viewPort.y + viewPort.h) {
|
||||||
|
self.editor.getWin().scrollTo(0, y < viewPort.y ? y : y - viewPort.h + 25);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
destroy : function(manual) {
|
destroy : function(manual) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
@ -13667,10 +13690,12 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|||||||
t.iframeHTML += '<base href="' + t.documentBaseURI.getURI() + '" />';
|
t.iframeHTML += '<base href="' + t.documentBaseURI.getURI() + '" />';
|
||||||
|
|
||||||
// IE8 doesn't support carets behind images setting ie7_compat would force IE8+ to run in IE7 compat mode.
|
// IE8 doesn't support carets behind images setting ie7_compat would force IE8+ to run in IE7 compat mode.
|
||||||
|
if (tinymce.isIE8) {
|
||||||
if (s.ie7_compat)
|
if (s.ie7_compat)
|
||||||
t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />';
|
t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=7" />';
|
||||||
else
|
else
|
||||||
t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=edge" />';
|
t.iframeHTML += '<meta http-equiv="X-UA-Compatible" content="IE=edge" />';
|
||||||
|
}
|
||||||
|
|
||||||
t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
|
t.iframeHTML += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
|
||||||
|
|
||||||
@ -14300,9 +14325,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|||||||
self.save();
|
self.save();
|
||||||
|
|
||||||
// defer the call to hide to prevent an IE9 crash #4921
|
// defer the call to hide to prevent an IE9 crash #4921
|
||||||
setTimeout(function() {
|
|
||||||
DOM.hide(self.getContainer());
|
DOM.hide(self.getContainer());
|
||||||
}, 1);
|
|
||||||
DOM.setStyle(self.id, 'display', self.orgDisplay);
|
DOM.setStyle(self.id, 'display', self.orgDisplay);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -14581,11 +14604,19 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|||||||
},
|
},
|
||||||
|
|
||||||
remove : function() {
|
remove : function() {
|
||||||
var self = this, elm = self.getContainer();
|
var self = this, elm = self.getContainer(), doc = self.getDoc();
|
||||||
|
|
||||||
if (!self.removed) {
|
if (!self.removed) {
|
||||||
self.removed = 1; // Cancels post remove event execution
|
self.removed = 1; // Cancels post remove event execution
|
||||||
self.hide();
|
|
||||||
|
// Fixed bug where IE has a blinking cursor left from the editor
|
||||||
|
if (isIE && doc)
|
||||||
|
doc.execCommand('SelectAll');
|
||||||
|
|
||||||
|
// We must save before we hide so Safari doesn't crash
|
||||||
|
self.save();
|
||||||
|
|
||||||
|
DOM.setStyle(self.id, 'display', self.orgDisplay);
|
||||||
|
|
||||||
// Don't clear the window or document if content editable
|
// Don't clear the window or document if content editable
|
||||||
// is enabled since other instances might still be present
|
// is enabled since other instances might still be present
|
||||||
@ -15578,7 +15609,7 @@ tinymce.create('tinymce.ui.Toolbar:tinymce.ui.Container', {
|
|||||||
// Add undo level on save contents, drag end and blur/focusout
|
// Add undo level on save contents, drag end and blur/focusout
|
||||||
editor.onSaveContent.add(addNonTypingUndoLevel);
|
editor.onSaveContent.add(addNonTypingUndoLevel);
|
||||||
editor.dom.bind(editor.dom.getRoot(), 'dragend', addNonTypingUndoLevel);
|
editor.dom.bind(editor.dom.getRoot(), 'dragend', addNonTypingUndoLevel);
|
||||||
editor.dom.bind(editor.getDoc(), tinymce.isGecko ? 'blur' : 'focusout', function(e) {
|
editor.dom.bind(editor.getBody(), 'focusout', function(e) {
|
||||||
if (!editor.removed && self.typing) {
|
if (!editor.removed && self.typing) {
|
||||||
addNonTypingUndoLevel();
|
addNonTypingUndoLevel();
|
||||||
}
|
}
|
||||||
@ -16941,6 +16972,11 @@ tinymce.ForceBlocks = function(editor) {
|
|||||||
function process(node) {
|
function process(node) {
|
||||||
var children, i, l, localContentEditable, lastContentEditable, hasContentEditableState;
|
var children, i, l, localContentEditable, lastContentEditable, hasContentEditableState;
|
||||||
|
|
||||||
|
// Skip on text nodes as they have neither format to remove nor children
|
||||||
|
if (node.nodeType === 3) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Node has a contentEditable value
|
// Node has a contentEditable value
|
||||||
if (node.nodeType === 1 && getContentEditable(node)) {
|
if (node.nodeType === 1 && getContentEditable(node)) {
|
||||||
lastContentEditable = contentEditable;
|
lastContentEditable = contentEditable;
|
||||||
@ -18755,7 +18791,7 @@ tinymce.onAddEditor.add(function(tinymce, ed) {
|
|||||||
|
|
||||||
// Inserts a BR element if the forced_root_block option is set to false or empty string
|
// Inserts a BR element if the forced_root_block option is set to false or empty string
|
||||||
function insertBr() {
|
function insertBr() {
|
||||||
var brElm, extraBr;
|
var brElm, extraBr, marker;
|
||||||
|
|
||||||
if (container && container.nodeType == 3 && offset >= container.nodeValue.length) {
|
if (container && container.nodeType == 3 && offset >= container.nodeValue.length) {
|
||||||
// Insert extra BR element at the end block elements
|
// Insert extra BR element at the end block elements
|
||||||
@ -18776,6 +18812,12 @@ tinymce.onAddEditor.add(function(tinymce, ed) {
|
|||||||
brElm.parentNode.insertBefore(dom.doc.createTextNode('\r'), brElm);
|
brElm.parentNode.insertBefore(dom.doc.createTextNode('\r'), brElm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Insert temp marker and scroll to that
|
||||||
|
marker = dom.create('span', {}, ' ');
|
||||||
|
brElm.parentNode.insertBefore(marker, brElm);
|
||||||
|
selection.scrollIntoView(marker);
|
||||||
|
dom.remove(marker);
|
||||||
|
|
||||||
if (!extraBr) {
|
if (!extraBr) {
|
||||||
rng.setStartAfter(brElm);
|
rng.setStartAfter(brElm);
|
||||||
rng.setEndAfter(brElm);
|
rng.setEndAfter(brElm);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* HDI TinyMCE
|
* HDI TinyMCE
|
||||||
* Copyright (C) 2012 HEINER DIRECT GmbH & Co. KG
|
* Copyright (C) 2012 HEINER DIRECT GmbH & Co. KG
|
||||||
|
BIN
copy_this/modules/hdi/hdi-tinymce/version.jpg
Normal file
BIN
copy_this/modules/hdi/hdi-tinymce/version.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.9 KiB |
Loading…
x
Reference in New Issue
Block a user