[1257] | 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 | ]
|
---|