1 | [//lasso
|
---|
2 | /*
|
---|
3 | * FCKeditor - The text editor for internet
|
---|
4 | * Copyright (C) 2003-2006 Frederico Caldeira Knabben
|
---|
5 | *
|
---|
6 | * Licensed under the terms of the GNU Lesser General Public License:
|
---|
7 | * http://www.opensource.org/licenses/lgpl-license.php
|
---|
8 | *
|
---|
9 | * For further information visit:
|
---|
10 | * http://www.fckeditor.net/
|
---|
11 | *
|
---|
12 | * "Support Open Source software. What about a donation today?"
|
---|
13 | *
|
---|
14 | * File Name: fckeditor.lasso
|
---|
15 | * This is the integration file for Lasso.
|
---|
16 | *
|
---|
17 | * It defines the FCKeditor class ("custom type" in Lasso terms) that can
|
---|
18 | * be used to create editor instances in Lasso pages on server side.
|
---|
19 | *
|
---|
20 | * File Authors:
|
---|
21 | * Jason Huck (jason.huck@corefive.com)
|
---|
22 | */
|
---|
23 |
|
---|
24 | define_type(
|
---|
25 | 'editor',
|
---|
26 | -namespace='fck_',
|
---|
27 | -description='Creates an instance of FCKEditor.'
|
---|
28 | );
|
---|
29 | local(
|
---|
30 | 'instancename' = 'FCKEditor1',
|
---|
31 | 'width' = '100%',
|
---|
32 | 'height' = '200',
|
---|
33 | 'toolbarset' = 'Default',
|
---|
34 | 'initialvalue' = string,
|
---|
35 | 'basepath' = '/fckeditor/',
|
---|
36 | 'config' = array,
|
---|
37 | 'checkbrowser' = true,
|
---|
38 | 'displayerrors' = false
|
---|
39 | );
|
---|
40 |
|
---|
41 | define_tag(
|
---|
42 | 'onCreate',
|
---|
43 | -required='instancename', -type='string',
|
---|
44 | -optional='width', -type='string',
|
---|
45 | -optional='height', -type='string',
|
---|
46 | -optional='toolbarset', -type='string',
|
---|
47 | -optional='initialvalue', -type='string',
|
---|
48 | -optional='basepath', -type='string',
|
---|
49 | -optional='config', -type='array'
|
---|
50 | );
|
---|
51 | self->instancename = #instancename;
|
---|
52 | local_defined('width') ? self->width = #width;
|
---|
53 | local_defined('height') ? self->height = #height;
|
---|
54 | local_defined('toolbarset') ? self->toolbarset = #toolbarset;
|
---|
55 | local_defined('initialvalue') ? self->initialvalue = #initialvalue;
|
---|
56 | local_defined('basepath') ? self->basepath = #basepath;
|
---|
57 | local_defined('config') ? self->config = #config;
|
---|
58 | /define_tag;
|
---|
59 |
|
---|
60 | define_tag('create');
|
---|
61 | if(self->isCompatibleBrowser);
|
---|
62 | local('out' = '
|
---|
63 | <div>
|
---|
64 | <input type="hidden" id="' + self->instancename + '" name="' + self->instancename + '" value="' + encode_html(self->initialvalue) + '" style="display:none" />
|
---|
65 | ' + self->parseConfig + '
|
---|
66 | <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>
|
---|
67 | </div>
|
---|
68 | ');
|
---|
69 | else;
|
---|
70 | local('out' = '
|
---|
71 | <div>
|
---|
72 | <textarea name="' + self->instancename + '" rows="4" cols="40" style="width: ' + self->width + '; height: ' + self->height + '">' + encode_html(self->initialvalue) + '</textarea>
|
---|
73 | </div>
|
---|
74 | ');
|
---|
75 | /if;
|
---|
76 | return(@#out);
|
---|
77 | /define_tag;
|
---|
78 |
|
---|
79 | define_tag('isCompatibleBrowser');
|
---|
80 | local('result' = true);
|
---|
81 | (client_browser >> 'Apple' || client_browser >> 'Opera' || client_browser >> 'KHTML') ? #result = false;
|
---|
82 | return(#result);
|
---|
83 | /define_tag;
|
---|
84 |
|
---|
85 | define_tag('parseConfig');
|
---|
86 | if(self->config->size);
|
---|
87 | local('out' = '<input type="hidden" id="' + self->instancename + '___Config" value="');
|
---|
88 | iterate(self->config, local('this'));
|
---|
89 | loop_count > 1 ? #out += '&';
|
---|
90 | #out += encode_html(#this->first) + '=' + encode_html(#this->second);
|
---|
91 | /iterate;
|
---|
92 | #out += '" style="display:none" />\n';
|
---|
93 | return(@#out);
|
---|
94 | /if;
|
---|
95 | /define_tag;
|
---|
96 | /define_type;
|
---|
97 | ]
|
---|