2007-12-17 18:58:19 +01:00
|
|
|
[//lasso
|
|
|
|
/*
|
|
|
|
* FCKeditor - The text editor for Internet - http://www.fckeditor.net
|
2009-07-07 10:58:12 +02:00
|
|
|
* Copyright (C) 2003-2009 Frederico Caldeira Knabben
|
2007-12-17 18:58:19 +01:00
|
|
|
*
|
|
|
|
* == 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' = '
|
|
|
|
<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>
|
|
|
|
');
|
|
|
|
else;
|
|
|
|
local('out' = '
|
|
|
|
<textarea name="' + self->instancename + '" rows="4" cols="40" style="width: ' + self->width + '; height: ' + self->height + '">' + encode_html(self->initialvalue) + '</textarea>
|
|
|
|
');
|
|
|
|
/if;
|
|
|
|
return(@#out);
|
|
|
|
/define_tag;
|
|
|
|
|
|
|
|
define_tag('isCompatibleBrowser');
|
|
|
|
local('result' = false);
|
2008-04-15 14:15:22 +02:00
|
|
|
if (client_browser->Find("MSIE") && !client_browser->Find("mac") && !client_browser->Find("Opera"));
|
2007-12-17 18:58:19 +01:00
|
|
|
#result = client_browser->Substring(client_browser->Find("MSIE")+5,3)>=5.5;
|
|
|
|
/if;
|
2008-04-15 14:15:22 +02:00
|
|
|
if (client_browser->Find("Gecko/"));
|
2007-12-17 18:58:19 +01:00
|
|
|
#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' = '<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;
|
|
|
|
]
|