From 7a7bcda9d75c951df9c911ce60d5b0551765daf2 Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 16 Mar 2010 07:49:38 +0000 Subject: FCKeditor 2.6.6 --- .../fckeditor/editor/plugins/bbcode/fckplugin.js | 123 +++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 httemplate/elements/fckeditor/editor/plugins/bbcode/fckplugin.js (limited to 'httemplate/elements/fckeditor/editor/plugins/bbcode/fckplugin.js') diff --git a/httemplate/elements/fckeditor/editor/plugins/bbcode/fckplugin.js b/httemplate/elements/fckeditor/editor/plugins/bbcode/fckplugin.js new file mode 100644 index 000000000..f9521ddac --- /dev/null +++ b/httemplate/elements/fckeditor/editor/plugins/bbcode/fckplugin.js @@ -0,0 +1,123 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2010 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is a sample implementation for a custom Data Processor for basic BBCode. + */ + +FCK.DataProcessor = +{ + /* + * Returns a string representing the HTML format of "data". The returned + * value will be loaded in the editor. + * The HTML must be from to , eventually including + * the DOCTYPE. + * @param {String} data The data to be converted in the + * DataProcessor specific format. + */ + ConvertToHtml : function( data ) + { + // Convert < and > to their HTML entities. + data = data.replace( //g, '>' ) ; + + // Convert line breaks to
. + data = data.replace( /(?:\r\n|\n|\r)/g, '
' ) ; + + // [url] + data = data.replace( /\[url\](.+?)\[\/url]/gi, '$1' ) ; + data = data.replace( /\[url\=([^\]]+)](.+?)\[\/url]/gi, '$2' ) ; + + // [b] + data = data.replace( /\[b\](.+?)\[\/b]/gi, '$1' ) ; + + // [i] + data = data.replace( /\[i\](.+?)\[\/i]/gi, '$1' ) ; + + // [u] + data = data.replace( /\[u\](.+?)\[\/u]/gi, '$1' ) ; + + return '' + data + '' ; + }, + + /* + * Converts a DOM (sub-)tree to a string in the data format. + * @param {Object} rootNode The node that contains the DOM tree to be + * converted to the data format. + * @param {Boolean} excludeRoot Indicates that the root node must not + * be included in the conversion, only its children. + * @param {Boolean} format Indicates that the data must be formatted + * for human reading. Not all Data Processors may provide it. + */ + ConvertToDataFormat : function( rootNode, excludeRoot, ignoreIfEmptyParagraph, format ) + { + var data = rootNode.innerHTML ; + + // Convert
to line breaks. + data = data.replace( /]).*?>/gi, '\r\n') ; + + // [url] + data = data.replace( /(.+?)<\/a>/gi, '[url=$2]$3[/url]') ; + + // [b] + data = data.replace( /<(?:b|strong)>/gi, '[b]') ; + data = data.replace( /<\/(?:b|strong)>/gi, '[/b]') ; + + // [i] + data = data.replace( /<(?:i|em)>/gi, '[i]') ; + data = data.replace( /<\/(?:i|em)>/gi, '[/i]') ; + + // [u] + data = data.replace( //gi, '[u]') ; + data = data.replace( /<\/u>/gi, '[/u]') ; + + // Remove remaining tags. + data = data.replace( /<[^>]+>/g, '') ; + + return data ; + }, + + /* + * Makes any necessary changes to a piece of HTML for insertion in the + * editor selection position. + * @param {String} html The HTML to be fixed. + */ + FixHtml : function( html ) + { + return html ; + } +} ; + +// This Data Processor doesn't support

, so let's use
. +FCKConfig.EnterMode = 'br' ; + +// To avoid pasting invalid markup (which is discarded in any case), let's +// force pasting to plain text. +FCKConfig.ForcePasteAsPlainText = true ; + +// Rename the "Source" buttom to "BBCode". +FCKToolbarItems.RegisterItem( 'Source', new FCKToolbarButton( 'Source', 'BBCode', null, FCK_TOOLBARITEM_ICONTEXT, true, true, 1 ) ) ; + +// Let's enforce the toolbar to the limits of this Data Processor. A custom +// toolbar set may be defined in the configuration file with more or less entries. +FCKConfig.ToolbarSets["Default"] = [ + ['Source'], + ['Bold','Italic','Underline','-','Link'], + ['About'] +] ; -- cgit v1.2.1