/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * @version $Id$ */ xinha_editors = null; xinha_init = null; xinha_config = null; xinha_plugins = null; // This contains the names of textareas we will make into Xinha editors xinha_init = xinha_init ? xinha_init : function() { /** STEP 1 *************************************************************** * First, specify the textareas that shall be turned into Xinhas. * For each one add the respective id to the xinha_editors array. * I you want add more than on textarea, keep in mind that these * values are comma seperated BUT there is no comma after the last value. * If you are going to use this configuration on several pages with different * textarea ids, you can add them all. The ones that are not found on the * current page will just be skipped. ************************************************************************/ xinha_editors = xinha_editors ? xinha_editors : [ 'content.body.content' ]; /** STEP 2 *************************************************************** * Now, what are the plugins you will be using in the editors on this * page. List all the plugins you will need, even if not all the editors * will use all the plugins. * * The list of plugins below is a good starting point, but if you prefer * a simpler editor to start with then you can use the following * * xinha_plugins = xinha_plugins ? xinha_plugins : [ ]; * * which will load no extra plugins at all. ************************************************************************/ xinha_plugins = xinha_plugins ? xinha_plugins : [ 'CharacterMap', 'ContextMenu', 'ListType', 'Stylist', 'Linker', 'SuperClean', 'TableOperations' ]; // THIS BIT OF JAVASCRIPT LOADS THE PLUGINS, NO TOUCHING :) if(!Xinha.loadPlugins(xinha_plugins, xinha_init)) return; /** STEP 3 *************************************************************** * We create a default configuration to be used by all the editors. * If you wish to configure some of the editors differently this will be * done in step 5. * * If you want to modify the default config you might do something like this. * * xinha_config = new Xinha.Config(); * xinha_config.width = '640px'; * xinha_config.height = '420px'; * *************************************************************************/ xinha_config = xinha_config ? xinha_config() : new Xinha.Config(); //this is the standard toolbar, feel free to remove buttons as you like xinha_config.toolbar = [ ["popupeditor"], ["separator","formatblock","fontname","fontsize","bold","italic","underline","strikethrough"], ["separator","forecolor","hilitecolor","textindicator"], ["separator","subscript","superscript"], ["linebreak","separator","justifyleft","justifycenter","justifyright","justifyfull"], ["separator","insertorderedlist","insertunorderedlist","outdent","indent"], ["separator","inserthorizontalrule","createlink","insertimage","inserttable"], ["linebreak","separator","undo","redo","selectall","print"], (Xinha.is_gecko ? [] : ["cut","copy","paste","overwrite","saveas"]), ["separator","killword","clearfonts","removeformat","toggleborders","splitblock","lefttoright", "righttoleft"], ["separator","htmlmode","showhelp","about"] ]; // To adjust the styling inside the editor, we can load an external stylesheet like this // NOTE : YOU MUST GIVE AN ABSOLUTE URL xinha_config.pageStyleSheets = [ _editor_url + "examples/full_example.css" ]; /** STEP 4 *************************************************************** * We first create editors for the textareas. * * You can do this in two ways, either * * xinha_editors = Xinha.makeEditors(xinha_editors, xinha_config, xinha_plugins); * * if you want all the editor objects to use the same set of plugins, OR; * * xinha_editors = Xinha.makeEditors(xinha_editors, xinha_config); * xinha_editors.myTextArea.registerPlugins(['Stylist']); * xinha_editors.anotherOne.registerPlugins(['CSS','SuperClean']); * * if you want to use a different set of plugins for one or more of the * editors. ************************************************************************/ xinha_editors = Xinha.makeEditors(xinha_editors, xinha_config, xinha_plugins); /** STEP 5 *************************************************************** * If you want to change the configuration variables of any of the * editors, this is the place to do that, for example you might want to * change the width and height of one of the editors, like this... * * xinha_editors.myTextArea.config.width = '640px'; * xinha_editors.myTextArea.config.height = '480px'; * ************************************************************************/ /** STEP 6 *************************************************************** * Finally we "start" the editors, this turns the textareas into * Xinha editors. ************************************************************************/ Xinha.startEditors(xinha_editors); } Xinha._addEvent(window,'load', xinha_init); // this executes the xinha_init function on page load // and does not interfere with window.onload properties set by other scripts