/** * Plugin designed for test prupose. It add a button (that manage an alert) and a select (that allow to insert tags) in the toolbar. * This plugin also disable the "f" key in the editarea, and load a CSS and a JS file */ var EditArea_test= { /** * Get called once this file is loaded (editArea still not initialized) * * @return nothing */ init: function(){ // alert("test init: "+ this._someInternalFunction(2, 3)); editArea.load_css(this.baseURL+"css/test.css"); editArea.load_script(this.baseURL+"test2.js"); } /** * Returns the HTML code for a specific control string or false if this plugin doesn't have that control. * A control can be a button, select list or any other HTML item to present in the EditArea user interface. * Language variables such as {$lang_somekey} will also be replaced with contents from * the language packs. * * @param {string} ctrl_name: the name of the control to add * @return HTML code for a specific control or false. * @type string or boolean */ ,get_control_html: function(ctrl_name){ switch(ctrl_name){ case "test_but": // Control id, button img, command return parent.editAreaLoader.get_button_html('test_but', 'test.gif', 'test_cmd', false, this.baseURL); case "test_select": html= ""; return html; } return false; } /** * Get called once EditArea is fully loaded and initialised * * @return nothing */ ,onload: function(){ alert("test load"); } /** * Is called each time the user touch a keyboard key. * * @param (event) e: the keydown event * @return true - pass to next handler in chain, false - stop chain execution * @type boolean */ ,onkeydown: function(e){ var str= String.fromCharCode(e.keyCode); // desactivate the "f" character if(str.toLowerCase()=="f"){ return true; } return false; } /** * Executes a specific command, this function handles plugin commands. * * @param {string} cmd: the name of the command being executed * @param {unknown} param: the parameter of the command * @return true - pass to next handler in chain, false - stop chain execution * @type boolean */ ,execCommand: function(cmd, param){ // Handle commands switch(cmd){ case "test_select_change": var val= document.getElementById("test_select").value; if(val!=-1) parent.editAreaLoader.insertTags(editArea.id, "<"+val+">", ""); document.getElementById("test_select").options[0].selected=true; return false; case "test_cmd": alert("user clicked on test_cmd"); return false; } // Pass to next handler in chain return true; } /** * This is just an internal plugin method, prefix all internal methods with a _ character. * The prefix is needed so they doesn't collide with future EditArea callback functions. * * @param {string} a Some arg1. * @param {string} b Some arg2. * @return Some return. * @type unknown */ ,_someInternalFunction : function(a, b) { return a+b; } }; // Adds the plugin class to the list of available EditArea plugins editArea.add_plugin("test", EditArea_test);