[//lasso
/*
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
* Copyright (C) 2003-2009 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 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.
*/
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' = '
' + self->parseConfig + '
');
else;
local('out' = '
');
/if;
return(@#out);
/define_tag;
define_tag('isCompatibleBrowser');
local('result' = false);
if (client_browser->Find("MSIE") && !client_browser->Find("mac") && !client_browser->Find("Opera"));
#result = client_browser->Substring(client_browser->Find("MSIE")+5,3)>=5.5;
/if;
if (client_browser->Find("Gecko/"));
#result = client_browser->Substring(client_browser->Find("Gecko/")+6,8)>=20030210;
/if;
if (client_browser->Find("Opera/"));
#result = client_browser->Substring(client_browser->Find("Opera/")+6,4)>=9.5;
/if;
if (client_browser->Find("AppleWebKit/"));
#result = client_browser->Substring(client_browser->Find("AppleWebKit/")+12,3)>=522;
/if;
return(#result);
/define_tag;
define_tag('parseConfig');
if(self->config->size);
local('out' = '\n';
return(@#out);
/if;
/define_tag;
/define_type;
]