~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to wiki/htdocs/applets/FCKeditor/fckeditor.lasso

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mto: This revision was merged to the branch mainline in revision 18.
  • Revision ID: james.westby@ubuntu.com-20080622211713-inlv5k4eifxckelr
ImportĀ upstreamĀ versionĀ 1.7.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
[//lasso
 
2
/*
 
3
 * FCKeditor - The text editor for internet
 
4
 * Copyright (C) 2003-2005 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="no" 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 += '&amp;';                       
 
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
]