mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00
17368: Multiple tinymce editors on a page broken in some browsers.
Problem was due to multiple init calls. We now no longer need any dynamic content in the init script, allowing this script to become a library and only included once. Also made the tinymce init selection more specific to tinymce in case any other modules use the 'html' class at the same time as this. --HG-- branch : 1.x
This commit is contained in:
@@ -3,7 +3,9 @@ using Orchard.UI.Resources;
|
||||
namespace TinyMce {
|
||||
public class ResourceManifest : IResourceManifestProvider {
|
||||
public void BuildManifests(ResourceManifestBuilder builder) {
|
||||
builder.Add().DefineScript("TinyMce").SetUrl("tiny_mce.js", "tiny_mce_src.js");
|
||||
var manifest = builder.Add();
|
||||
manifest.DefineScript("TinyMce").SetUrl("tiny_mce.js", "tiny_mce_src.js");
|
||||
manifest.DefineScript("OrchardTinyMce").SetUrl("orchard-tinymce.js").SetDependencies("TinyMce");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
13
src/Orchard.Web/Modules/TinyMce/Scripts/orchard-tinymce.js
Normal file
13
src/Orchard.Web/Modules/TinyMce/Scripts/orchard-tinymce.js
Normal file
@@ -0,0 +1,13 @@
|
||||
tinyMCE.init({
|
||||
theme: "advanced",
|
||||
mode: "specific_textareas",
|
||||
editor_selector: "tinymce",
|
||||
plugins: "fullscreen,autoresize,searchreplace,mediapicker",
|
||||
theme_advanced_toolbar_location: "top",
|
||||
theme_advanced_toolbar_align: "left",
|
||||
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,mediapicker,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen",
|
||||
theme_advanced_buttons2: "",
|
||||
theme_advanced_buttons3: "",
|
||||
convert_urls: false,
|
||||
valid_elements: "*[*]"
|
||||
});
|
@@ -39,7 +39,7 @@
|
||||
}
|
||||
jQuery("#" + ed.id).trigger("orchard-admin-pickimage-open", {
|
||||
img: editImage,
|
||||
uploadMediaPath: ed.getParam("mediapicker_uploadpath"),
|
||||
uploadMediaPath: jQuery("#" + ed.id).data("mediapicker-uploadpath"), //ed.getParam("mediapicker_uploadpath"),
|
||||
callback: function (data) {
|
||||
ed.focus();
|
||||
ed.selection.setContent(data.img.html);
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
// Register media button
|
||||
ed.addButton('mediapicker', {
|
||||
title: ed.getParam("mediapicker_title"),
|
||||
title: jQuery("#" + ed.id).data("mediapicker-title"), //ed.getParam("mediapicker_title"),
|
||||
cmd: 'mceMediaPicker',
|
||||
image: url + '/img/picture_add.png'
|
||||
});
|
||||
|
@@ -50,6 +50,7 @@
|
||||
<Content Include="Module.txt" />
|
||||
<Content Include="Scripts\langs\en.js" />
|
||||
<Content Include="Scripts\license.txt" />
|
||||
<Content Include="Scripts\orchard-tinymce.js" />
|
||||
<Content Include="Scripts\plugins\autoresize\editor_plugin.js" />
|
||||
<Content Include="Scripts\plugins\autoresize\editor_plugin_src.js" />
|
||||
<Content Include="Scripts\plugins\fullscreen\editor_plugin.js" />
|
||||
|
@@ -1,25 +1,9 @@
|
||||
@{
|
||||
Script.Require("TinyMce");
|
||||
Script.Require("OrchardTinyMce");
|
||||
}
|
||||
@using(Script.Foot()) {
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
tinyMCE.init({
|
||||
theme: "advanced",
|
||||
mode: "specific_textareas",
|
||||
editor_selector: "html",
|
||||
plugins: "fullscreen,autoresize,searchreplace,mediapicker",
|
||||
theme_advanced_toolbar_location: "top",
|
||||
theme_advanced_toolbar_align: "left",
|
||||
theme_advanced_buttons1: "search,replace,|,cut,copy,paste,|,undo,redo,|,mediapicker,|,link,unlink,charmap,emoticon,codeblock,|,bold,italic,|,numlist,bullist,formatselect,|,code,fullscreen",
|
||||
theme_advanced_buttons2: "",
|
||||
theme_advanced_buttons3: "",
|
||||
convert_urls: false,
|
||||
mediapicker_uploadpath: "@Model.AddMediaPath",
|
||||
mediapicker_title: "@T("Insert/Update Media")",
|
||||
valid_elements: "*[*]"
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
}
|
||||
@Html.TextArea("Text", (string)Model.Text, 25, 80, new { @class = "html" })
|
||||
@Html.TextArea("Text", (string)Model.Text, 25, 80,
|
||||
new Dictionary<string,object> {
|
||||
{"class", "html tinymce"},
|
||||
{"data-mediapicker-uploadpath",Model.AddMediaPath},
|
||||
{"data-mediapicker-title",T("Insert/Update Media")}
|
||||
})
|
||||
|
Reference in New Issue
Block a user