public static void BuildScript(StringBuilder script, ITinyMceSettings config, string targetClientId, Unit width, Unit height) { if (script == null) { return; } if (config == null) { return; } script.Append("tinymce.init({"); if (config.Inline) { script.Append("inline:true,"); } script.Append("selector:\"#" + targetClientId + "\""); //http://www.tinymce.com/wiki.php/Configuration if (width != Unit.Empty) { script.Append(",width:\"" + width.ToString() + "\""); } if (height != Unit.Empty) { script.Append(",height: \"" + height.ToString() + "\""); } if (!config.ConvertUrls) { script.Append(",convert_urls:false"); } if (config.NoWrap) { script.Append(",nowrap:true"); } if (config.DisableMenuBar) { script.Append(",menubar:false"); } else { script.Append(",menubar:'" + config.Menubar + "'"); } if ((!config.ShowStatusbar) || (config.Inline)) { script.Append(",statusbar:false"); } if (config.ForcePasteAsPlainText) { script.Append(",paste_as_text:true"); } if (config.RemovedMenuItems.Length > 0) { script.Append(",removed_menuitems: '" + config.RemovedMenuItems + "'"); } script.Append(",schema:'html5'"); if (config.CustomToolbarElementClientId.Length > 0) { script.Append(",fixed_toolbar_container:'" + config.CustomToolbarElementClientId + "'"); } if (config.EnableBrowserSpellCheck) { script.Append(",browser_spellcheck:true "); } if (config.AutoLocalize) { CultureInfo culture; if (WebConfigSettings.UseCultureOverride) { culture = SiteUtils.GetDefaultUICulture(); } else { culture = CultureInfo.CurrentUICulture; } config.Language = GetSupportedLangCode(culture.Name, culture.TwoLetterISOLanguageName); if (culture.TextInfo.IsRightToLeft) { config.TextDirection = "rtl"; } } if (config.Language.Length > 0) { script.Append(",language:\"" + config.Language + "\""); } if (config.ExtendedValidElements.Length > 0) { script.Append(",extended_valid_elements:\"" + config.ExtendedValidElements + "\""); } if ((config.TextDirection != "ltr") && (config.TextDirection.Length > 0)) { script.Append(",directionality:'" + config.TextDirection + "'"); } if (!config.EnableObjectResizing) { script.Append(",object_resizing:false"); } // http://www.tinymce.com/wiki.php/Plugins if (config.Plugins.Length > 0) { script.Append(",plugins:\"" + config.Plugins + "\""); } if (config.Theme != "modern") { script.Append(",theme:\"" + config.Theme + "\""); } if (config.Skin != "lightgray") { script.Append(",skin:\"" + config.Skin + "\""); } if (config.UnDoLevels != -1) { script.Append(",custom_undo_redo_levels:" + config.UnDoLevels.ToInvariantString()); } if (config.Toolbar1Buttons.Length > 0) { script.Append(",toolbar1:\"" + config.Toolbar1Buttons + "\""); } if (config.Toolbar2Buttons.Length > 0) { script.Append(",toolbar2:\"" + config.Toolbar2Buttons + "\""); } if (config.Toolbar3Buttons.Length > 0) { script.Append(",toolbar3:\"" + config.Toolbar3Buttons + "\""); } if (config.EnableImageAdvancedTab) { script.Append(",image_advtab:true"); } if (config.EditorAreaCSS.Length > 0) { script.Append(",content_css:\"" + config.EditorAreaCSS + "\""); } if (config.EditorBodyCssClass.Length > 0) { script.Append(",body_class:\"" + config.EditorBodyCssClass + "\""); } if (config.AutoFocus) { script.Append(",auto_focus:\"" + targetClientId + "\" "); } if (config.TemplatesUrl.Length > 0) { script.Append(",templates: \"" + config.TemplatesUrl + "\""); } if (config.StyleFormats.Length > 0) { script.Append(",style_formats:" + config.StyleFormats); } if (config.EmotionsBaseUrl.Length > 0) { script.Append(",emotions_images_url:'" + config.EmotionsBaseUrl + "'"); } if (config.OnSaveCallback.Length > 0) { script.Append(",save_onsavecallback:" + config.OnSaveCallback); if (config.SaveEnableWhenDirty) { script.Append(",save_enablewhendirty:true"); } } if (config.DropFileUploadUrl.Length > 0) { script.Append(",dropFileUploadUrl:'" + config.DropFileUploadUrl + "'"); } if ((config.FileManagerUrl.Length > 0)) { script.Append(",file_browser_callback: function(field_name, url, type, win) { "); script.Append("tinyMCE.activeEditor.windowManager.open({"); script.Append("url:'" + config.FileManagerUrl + "' + '?editor=tinymce&type=' + type, "); script.Append("title:'" + Resource.FileBrowser.HtmlEscapeQuotes() + "',"); script.Append("width: ~~((80 / 100) * window.innerWidth),"); script.Append("height: ~~((80 / 100) * window.innerHeight)"); //script.Append(",resizable: true"); // doesn't seem to work //script.Append("inline : 'yes',"); // not needed in 4.x I guess //script.Append(" close_previous : 'no'"); // not needed in 4.x I guess script.Append("}, {"); script.Append("oninsert: function(newurl) {win.document.getElementById(field_name).value = newurl;}"); script.Append("}); "); script.Append("return false;"); script.Append("}"); } script.Append(",setup:function(editor) {"); if (config.GlobarVarToAssignEditor.Length > 0) { script.Append(config.GlobarVarToAssignEditor + " = editor; "); } if (config.PromptOnNavigationWithUnsavedChanges) { // autosave plugin also prompts so don't need this if it is used if (!config.Plugins.Contains("autosave,")) { script.Append("editor.on('change', function(e) {"); script.Append("hookupGoodbyePrompt(\"" + Resource.UnSavedChangesPrompt.HtmlEscapeQuotes().RemoveLineBreaks() + "\"); "); script.Append("});"); } } script.Append("}"); //end setup script.Append("});"); }
public static void BuildScript(StringBuilder script, ITinyMceSettings config, string targetClientId, Unit width, Unit height) { if (script == null) { return; } if (config == null) { return; } script.Append("tinymce.init({"); if (config.Inline) { script.Append("inline:true,"); } script.Append("selector:\"#" + targetClientId + "\""); //http://www.tinymce.com/wiki.php/Configuration if(width != Unit.Empty) { script.Append(",width:\"" + width.ToString() + "\""); } if (height != Unit.Empty) { script.Append(",height: \"" + height.ToString() + "\""); } if(!config.ConvertUrls) { script.Append(",convert_urls:false"); } if (config.NoWrap) { script.Append(",nowrap:true"); } if (config.DisableMenuBar) { script.Append(",menubar:false"); } else { script.Append(",menubar:'" + config.Menubar + "'"); } if ((!config.ShowStatusbar)||(config.Inline)) { script.Append(",statusbar:false"); } if (config.ForcePasteAsPlainText) { script.Append(",paste_as_text:true"); } if(config.RemovedMenuItems.Length > 0) { script.Append(",removed_menuitems: '" + config.RemovedMenuItems + "'"); } script.Append(",schema:'html5'"); if (config.CustomToolbarElementClientId.Length > 0) { script.Append(",fixed_toolbar_container:'" + config.CustomToolbarElementClientId + "'"); } if (config.EnableBrowserSpellCheck) { script.Append(",browser_spellcheck:true "); } if (config.AutoLocalize) { CultureInfo culture; if (WebConfigSettings.UseCultureOverride) { culture = SiteUtils.GetDefaultUICulture(); } else { culture = CultureInfo.CurrentUICulture; } config.Language = GetSupportedLangCode(culture.Name, culture.TwoLetterISOLanguageName); if (culture.TextInfo.IsRightToLeft) { config.TextDirection = "rtl"; } } if (config.Language.Length > 0) { script.Append(",language:\"" + config.Language + "\""); } if (config.ExtendedValidElements.Length > 0) { script.Append(",extended_valid_elements:\"" + config.ExtendedValidElements + "\""); } if ((config.TextDirection != "ltr") && (config.TextDirection.Length > 0)) { script.Append(",directionality:'" + config.TextDirection + "'"); } if (!config.EnableObjectResizing) { script.Append(",object_resizing:false"); } //http://www.tinymce.com/wiki.php/Plugins if (config.Plugins.Length > 0) { script.Append(",plugins:\"" + config.Plugins + "\""); } if (config.Theme != "modern") { script.Append(",theme:\"" + config.Theme + "\""); } if (config.Skin != "lightgray") { script.Append(",skin:\"" + config.Skin + "\""); } if (config.UnDoLevels != -1) { script.Append(",custom_undo_redo_levels:" + config.UnDoLevels.ToInvariantString()); } if (config.Toolbar1Buttons.Length > 0) { script.Append(",toolbar1:\"" + config.Toolbar1Buttons + "\""); } if (config.Toolbar2Buttons.Length > 0) { script.Append(",toolbar2:\"" + config.Toolbar2Buttons + "\""); } if (config.Toolbar3Buttons.Length > 0) { script.Append(",toolbar3:\"" + config.Toolbar3Buttons + "\""); } if (config.EnableImageAdvancedTab) { script.Append(",image_advtab:true"); } if (config.EditorAreaCSS.Length > 0) { script.Append(",content_css:\"" + config.EditorAreaCSS + "\""); } if (config.EditorBodyCssClass.Length > 0) { script.Append(",body_class:\"" + config.EditorBodyCssClass + "\""); } if (config.AutoFocus) { script.Append(",auto_focus:\"" + targetClientId + "\" "); } if (config.TemplatesUrl.Length > 0) { script.Append(",templates: \"" + config.TemplatesUrl + "\""); } if (config.StyleFormats.Length > 0) { script.Append(",style_formats:" + config.StyleFormats); } if (config.EmotionsBaseUrl.Length > 0) { script.Append(",emotions_images_url:'" + config.EmotionsBaseUrl + "'"); } if (config.OnSaveCallback.Length > 0) { script.Append(",save_onsavecallback:" + config.OnSaveCallback); if(config.SaveEnableWhenDirty) { script.Append(",save_enablewhendirty:true"); } } if (config.DropFileUploadUrl.Length > 0) { script.Append(",dropFileUploadUrl:'" + config.DropFileUploadUrl + "'"); } if ((config.FileManagerUrl.Length > 0)) { script.Append(",file_browser_callback: function(field_name, url, type, win) { "); script.Append("tinyMCE.activeEditor.windowManager.open({"); script.Append("url:'" + config.FileManagerUrl + "' + '?ed=tmc&type=' + type, "); script.Append("title:'" + Resource.FileBrowser.HtmlEscapeQuotes() + "',"); script.Append("width:" + config.FileDialogWidth.ToInvariantString() + ","); script.Append("height:" + config.FileDialogHeight.ToInvariantString()); //script.Append(",resizable: true"); // doesn't seem to work //script.Append("inline : 'yes',"); // not needed in 4.x I guess //script.Append(" close_previous : 'no'"); // not needed in 4.x I guess script.Append("}, {"); script.Append("oninsert: function(newurl) {win.document.getElementById(field_name).value = newurl;}"); script.Append("}); "); script.Append("return false;"); script.Append("}"); } script.Append(",setup:function(editor) {"); if (config.GlobarVarToAssignEditor.Length > 0) { script.Append(config.GlobarVarToAssignEditor + " = editor; "); } if (config.PromptOnNavigationWithUnsavedChanges) { // autosave plugin also prompts so don't need this if it is used if(!config.Plugins.Contains("autosave,")) { script.Append("editor.on('change', function(e) {"); script.Append("hookupGoodbyePrompt(\"" + Resource.UnSavedChangesPrompt.HtmlEscapeQuotes().RemoveLineBreaks() + "\"); "); script.Append("});"); } } script.Append("}"); //end setup script.Append("});"); }