// Plugin for htmlArea to insert keywords, when a type of // keyword is selected from a dropdown list // By Adam Wright, for The University of Western Australia // // Distributed under the same terms as HTMLArea itself. // This notice MUST stay intact for use (see license.txt). function InsertWords(editor, params) { this.editor = editor; var cfg = editor.config; var self = this; if(params[0] && params[0].combos) { //if arguments where passed with registerPlugin use these var combos = params[0].combos; } else if (cfg.InsertWords && cfg.InsertWords.combos) { //if combos is found in config use these var combos = cfg.InsertWords.combos; } else { //no combos found var combos = []; } // register the toolbar with the keywords dropdown var first = true; var toolbar = []; for (var i = combos.length; --i >= 0;) { var combo = combos[i]; var id = "IW-id" + i; var iw_class = { id : id, options : combo.options, action : function (editor) { self.onSelect(editor, this, combo.context); }, refresh : function (editor) { }, context : combo.context }; cfg.registerDropdown(iw_class); if (combo.label) toolbar.push("T[" + combo.label + "]"); toolbar.push(id); toolbar.push(first ? "separator" : "space"); } cfg.addToolbarElement(toolbar, "linebreak", 1); } InsertWords._pluginInfo = { name : "InsertWords", version : "1.0", developer : "Adam Wright", developer_url : "http://blog.hipikat.org/", sponsor : "The University of Western Australia", sponsor_url : "http://www.uwa.edu.au/", license : "htmlArea" }; InsertWords.prototype.onSelect = function(editor, obj, context) { // Get the toolbar object element var elem = editor._toolbarObjects[obj.id].element; // Insert the keyword value blindly at the selection editor.insertHTML(elem.value); // Reset the dropdown to it's label elem.selectedIndex = 0; };