comparison wiki/htdocs/applets/FCKeditor/fckeditor.lasso @ 4005:f5c322ae1c7b

add recent version of fckeditor 2.6.3
author Byeongweon [tasyblue@gmail.com]
date Mon, 11 Aug 2008 13:54:49 +0900
parents 6089ade226fb
children 07862b0663fd 1d37117f8ca6
comparison
equal deleted inserted replaced
4004:3791b2e8e471 4005:f5c322ae1c7b
1 [//lasso
2 /*
3 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4 * Copyright (C) 2003-2008 Frederico Caldeira Knabben
5 *
6 * == BEGIN LICENSE ==
7 *
8 * Licensed under the terms of any of the following licenses at your
9 * choice:
10 *
11 * - GNU General Public License Version 2 or later (the "GPL")
12 * http://www.gnu.org/licenses/gpl.html
13 *
14 * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
15 * http://www.gnu.org/licenses/lgpl.html
16 *
17 * - Mozilla Public License Version 1.1 or later (the "MPL")
18 * http://www.mozilla.org/MPL/MPL-1.1.html
19 *
20 * == END LICENSE ==
21 *
22 * This is the integration file for Lasso.
23 *
24 * It defines the FCKeditor class ("custom type" in Lasso terms) that can
25 * be used to create editor instances in Lasso pages on server side.
26 */
27
28 define_type(
29 'editor',
30 -namespace='fck_',
31 -description='Creates an instance of FCKEditor.'
32 );
33 local(
34 'instancename' = 'FCKEditor1',
35 'width' = '100%',
36 'height' = '200',
37 'toolbarset' = 'Default',
38 'initialvalue' = string,
39 'basepath' = '/fckeditor/',
40 'config' = array,
41 'checkbrowser' = true,
42 'displayerrors' = false
43 );
44
45 define_tag(
46 'onCreate',
47 -required='instancename', -type='string',
48 -optional='width', -type='string',
49 -optional='height', -type='string',
50 -optional='toolbarset', -type='string',
51 -optional='initialvalue', -type='string',
52 -optional='basepath', -type='string',
53 -optional='config', -type='array'
54 );
55 self->instancename = #instancename;
56 local_defined('width') ? self->width = #width;
57 local_defined('height') ? self->height = #height;
58 local_defined('toolbarset') ? self->toolbarset = #toolbarset;
59 local_defined('initialvalue') ? self->initialvalue = #initialvalue;
60 local_defined('basepath') ? self->basepath = #basepath;
61 local_defined('config') ? self->config = #config;
62 /define_tag;
63
64 define_tag('create');
65 if(self->isCompatibleBrowser);
66 local('out' = '
67 <input type="hidden" id="' + self->instancename + '" name="' + self->instancename + '" value="' + encode_html(self->initialvalue) + '" style="display:none" />
68 ' + self->parseConfig + '
69 <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>
70 ');
71 else;
72 local('out' = '
73 <textarea name="' + self->instancename + '" rows="4" cols="40" style="width: ' + self->width + '; height: ' + self->height + '">' + encode_html(self->initialvalue) + '</textarea>
74 ');
75 /if;
76 return(@#out);
77 /define_tag;
78
79 define_tag('isCompatibleBrowser');
80 local('result' = false);
81 if (client_browser->Find("MSIE") && !client_browser->Find("mac") && !client_browser->Find("Opera"));
82 #result = client_browser->Substring(client_browser->Find("MSIE")+5,3)>=5.5;
83 /if;
84 if (client_browser->Find("Gecko/"));
85 #result = client_browser->Substring(client_browser->Find("Gecko/")+6,8)>=20030210;
86 /if;
87 if (client_browser->Find("Opera/"));
88 #result = client_browser->Substring(client_browser->Find("Opera/")+6,4)>=9.5;
89 /if;
90 if (client_browser->Find("AppleWebKit/"));
91 #result = client_browser->Substring(client_browser->Find("AppleWebKit/")+12,3)>=522;
92 /if;
93 return(#result);
94 /define_tag;
95
96 define_tag('parseConfig');
97 if(self->config->size);
98 local('out' = '<input type="hidden" id="' + self->instancename + '___Config" value="');
99 iterate(self->config, local('this'));
100 loop_count > 1 ? #out += '&amp;';
101 #out += encode_html(#this->first) + '=' + encode_html(#this->second);
102 /iterate;
103 #out += '" style="display:none" />\n';
104 return(@#out);
105 /if;
106 /define_tag;
107 /define_type;
108 ]