source: sandbox/filemanager/tp/fckeditor/fckeditor.lasso @ 1575

Revision 1575, 3.9 KB checked in by amuller, 14 years ago (diff)

Ticket #597 - Implentação, melhorias do modulo gerenciador de arquivos

  • Property svn:executable set to *
Line 
1[//lasso
2/*
3 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4 * Copyright (C) 2003-2009 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]
Note: See TracBrowser for help on using the repository browser.