Rev 1075 | Blame | Last modification | View Log | RSS feed
[//lasso/** FCKeditor - The text editor for internet* Copyright (C) 2003-2006 Frederico Caldeira Knabben** Licensed under the terms of the GNU Lesser General Public License:* http://www.opensource.org/licenses/lgpl-license.php** For further information visit:* http://www.fckeditor.net/** "Support Open Source software. What about a donation today?"** File Name: fckeditor.lasso* This is the integration file for Lasso.** It defines the FCKeditor class ("custom type" in Lasso terms) that can* be used to create editor instances in Lasso pages on server side.** File Authors:* Jason Huck (jason.huck@corefive.com)*/define_type('editor',-namespace='fck_',-description='Creates an instance of FCKEditor.');local('instancename' = 'FCKEditor1','width' = '100%','height' = '200','toolbarset' = 'Default','initialvalue' = string,'basepath' = '/fckeditor/','config' = array,'checkbrowser' = true,'displayerrors' = false);define_tag('onCreate',-required='instancename', -type='string',-optional='width', -type='string',-optional='height', -type='string',-optional='toolbarset', -type='string',-optional='initialvalue', -type='string',-optional='basepath', -type='string',-optional='config', -type='array');self->instancename = #instancename;local_defined('width') ? self->width = #width;local_defined('height') ? self->height = #height;local_defined('toolbarset') ? self->toolbarset = #toolbarset;local_defined('initialvalue') ? self->initialvalue = #initialvalue;local_defined('basepath') ? self->basepath = #basepath;local_defined('config') ? self->config = #config;/define_tag;define_tag('create');if(self->isCompatibleBrowser);local('out' = '<div><input type="hidden" id="' + self->instancename + '" name="' + self->instancename + '" value="' + encode_html(self->initialvalue) + '" style="display:none" />' + self->parseConfig + '<iframe id="' + self->instancename + '___Frame" src="' + self->basepath + 'editor/fckeditor.html?InstanceName=' + self->instancename + '&Toolbar=' + self->toolbarset + '" width="' + self->width + '" height="' + self->height + '" frameborder="0" scrolling="no"></iframe></div>');else;local('out' = '<div><textarea name="' + self->instancename + '" rows="4" cols="40" style="width: ' + self->width + '; height: ' + self->height + '">' + encode_html(self->initialvalue) + '</textarea></div>');/if;return(@#out);/define_tag;define_tag('isCompatibleBrowser');local('result' = true);(client_browser >> 'Apple' || client_browser >> 'Opera' || client_browser >> 'KHTML') ? #result = false;return(#result);/define_tag;define_tag('parseConfig');if(self->config->size);local('out' = '<input type="hidden" id="' + self->instancename + '___Config" value="');iterate(self->config, local('this'));loop_count > 1 ? #out += '&';#out += encode_html(#this->first) + '=' + encode_html(#this->second);/iterate;#out += '" style="display:none" />\n';return(@#out);/if;/define_tag;/define_type;]