Blame | Letzte Änderung | Log anzeigen | RSS feed
/*** editor_plugin_src.js** Copyright 2009, Moxiecode Systems AB* Released under LGPL License.** License: http://tinymce.moxiecode.com/license* Contributing: http://tinymce.moxiecode.com/contributing** This plugin will force TinyMCE to produce deprecated legacy output such as font elements, u elements, align* attributes and so forth. There are a few cases where these old items might be needed for example in email applications or with Flash** However you should NOT use this plugin if you are building some system that produces web contents such as a CMS. All these elements are* not apart of the newer specifications for HTML and XHTML.*/(function(tinymce) {// Override inline_styles setting to force TinyMCE to produce deprecated contentstinymce.onAddEditor.addToTop(function(tinymce, editor) {editor.settings.inline_styles = false;});// Create the legacy ouput plugintinymce.create('tinymce.plugins.LegacyOutput', {init : function(editor) {editor.onInit.add(function() {var alignElements = 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img',fontSizes = tinymce.explode(editor.settings.font_size_style_values),schema = editor.schema;// Override some internal formats to produce legacy elements and attributeseditor.formatter.register({// Change alignment formats to use the deprecated align attributealignleft : {selector : alignElements, attributes : {align : 'left'}},aligncenter : {selector : alignElements, attributes : {align : 'center'}},alignright : {selector : alignElements, attributes : {align : 'right'}},alignfull : {selector : alignElements, attributes : {align : 'justify'}},// Change the basic formatting elements to use deprecated element typesbold : [{inline : 'b', remove : 'all'},{inline : 'strong', remove : 'all'},{inline : 'span', styles : {fontWeight : 'bold'}}],italic : [{inline : 'i', remove : 'all'},{inline : 'em', remove : 'all'},{inline : 'span', styles : {fontStyle : 'italic'}}],underline : [{inline : 'u', remove : 'all'},{inline : 'span', styles : {textDecoration : 'underline'}, exact : true}],strikethrough : [{inline : 'strike', remove : 'all'},{inline : 'span', styles : {textDecoration: 'line-through'}, exact : true}],// Change font size and font family to use the deprecated font elementfontname : {inline : 'font', attributes : {face : '%value'}},fontsize : {inline : 'font',attributes : {size : function(vars) {return tinymce.inArray(fontSizes, vars.value) + 1;}}},// Setup font elements for colors as wellforecolor : {inline : 'font', styles : {color : '%value'}},hilitecolor : {inline : 'font', styles : {backgroundColor : '%value'}}});// Check that deprecated elements are allowed if not add themtinymce.each('b,i,u,strike'.split(','), function(name) {schema.addValidElements(name + '[*]');});// Add font element if it's missingif (!schema.getElementRule("font"))schema.addValidElements("font[face|size|color|style]");// Add the missing and depreacted align attribute for the serialization enginetinymce.each(alignElements.split(','), function(name) {var rule = schema.getElementRule(name), found;if (rule) {if (!rule.attributes.align) {rule.attributes.align = {};rule.attributesOrder.push('align');}}});// Listen for the onNodeChange event so that we can do special logic for the font size and font name drop boxeseditor.onNodeChange.add(function(editor, control_manager) {var control, fontElm, fontName, fontSize;// Find font element get it's name and sizefontElm = editor.dom.getParent(editor.selection.getNode(), 'font');if (fontElm) {fontName = fontElm.face;fontSize = fontElm.size;}// Select/unselect the font name in droplistif (control = control_manager.get('fontselect')) {control.select(function(value) {return value == fontName;});}// Select/unselect the font size in droplistif (control = control_manager.get('fontsizeselect')) {control.select(function(value) {var index = tinymce.inArray(fontSizes, value.fontSize);return index + 1 == fontSize;});}});});},getInfo : function() {return {longname : 'LegacyOutput',author : 'Moxiecode Systems AB',authorurl : 'http://tinymce.moxiecode.com',infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/legacyoutput',version : tinymce.majorVersion + "." + tinymce.minorVersion};}});// Register plugintinymce.PluginManager.add('legacyoutput', tinymce.plugins.LegacyOutput);})(tinymce);