Project

General

Profile

« Previous | Next » 

Revision 528

Added by doc almost 17 years ago

Added the FCKEditor module files missing in Changeset 527 (/modules/fckeditor)

View differences:

trunk/CHANGELOG
12 12

  
13 13
------------------------------------- 2.7.0 -------------------------------------
14 14
11-Jan-2008 Christian Sommer
15
+	added the fckeditor as new default WYSIWYG editor (htmlarea removed)
15
+	added the FCKEditor module files missing in Changeset 527 (/modules/fckeditor)
16 16

  
17 17
11-Jan-2008 Christian Sommer
18
+	removed the hmtlarea files and set FCKEditor as new default editor
19

  
20
11-Jan-2008 Christian Sommer
18 21
!	Updated function: register_frontend_modfiles in /framework/frontend.functions.php
19 22
	(added constants MOD_FRONTEND_CSS_REGISTERED, MOD_FRONTEND_JAVASCRIPT_REGISTERED)
20 23

  
trunk/wb/modules/fckeditor/class.cssparser.php
1
<?php
2

  
3
/*
4

  
5
 Website Baker Project <http://www.websitebaker.org/>
6
 Copyright (C) 2004-2008, Ryan Djurovich
7

  
8
 Website Baker is free software; you can redistribute it and/or modify
9
 it under the terms of the GNU General Public License as published by
10
 the Free Software Foundation; either version 2 of the License, or
11
 (at your option) any later version.
12

  
13
 Website Baker is distributed in the hope that it will be useful,
14
 but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 GNU General Public License for more details.
17

  
18
 You should have received a copy of the GNU General Public License
19
 along with Website Baker; if not, write to the Free Software
20
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21

  
22
*/
23

  
24
/*
25
 * Class to parse css information.
26
 *
27
 * See the readme file : http://www.phpclasses.org/browse/file/4685.html
28
 *
29
 * $Id: cssparser.inc.php,v 1.2 2005/03/30 23:42:15 yalnifj dead $
30
 *
31
 * @author http://www.phpclasses.org/browse/package/1289.html
32
 * @package PhpGedView
33
 * @subpackage Charts
34
 *
35
 * added function GetXML to the cssparser class (Christian Sommer, 2007)
36
 *
37
 */
38

  
39
class cssparser {
40
	var $css;
41
	var $html;
42
  
43
	function cssparser($html = true) {
44
		// Register "destructor"
45
		register_shutdown_function(array(&$this, "finalize"));
46
		$this->html = ($html != false);
47
		$this->Clear();
48
	}
49
  
50
	function finalize() {
51
		unset($this->css);
52
	}
53
  
54
	function Clear() {
55
		unset($this->css);
56
		$this->css = array();
57
		if($this->html) {
58
			$this->Add("ADDRESS", "");
59
			$this->Add("APPLET", "");
60
			$this->Add("AREA", "");
61
			$this->Add("A", "");
62
			$this->Add("A:visited", "");
63
			$this->Add("BASE", "");
64
			$this->Add("BASEFONT", "");
65
			$this->Add("BIG", "");
66
			$this->Add("BLOCKQUOTE", "");
67
			$this->Add("BODY", "");
68
			$this->Add("BR", "");
69
			$this->Add("B", "");
70
			$this->Add("CAPTION", "");
71
			$this->Add("CENTER", "");
72
			$this->Add("CITE", "");
73
			$this->Add("CODE", "");
74
			$this->Add("DD", "");
75
			$this->Add("DFN", "");
76
			$this->Add("DIR", "");
77
			$this->Add("DIV", "");
78
			$this->Add("DL", "");
79
			$this->Add("DT", "");
80
			$this->Add("EM", "");
81
			$this->Add("FONT", "");
82
			$this->Add("FORM", "");
83
			$this->Add("H1", "");
84
			$this->Add("H2", "");
85
			$this->Add("H3", "");
86
			$this->Add("H4", "");
87
			$this->Add("H5", "");
88
			$this->Add("H6", "");
89
			$this->Add("HEAD", "");
90
			$this->Add("HR", "");
91
			$this->Add("HTML", "");
92
			$this->Add("IMG", "");
93
			$this->Add("INPUT", "");
94
			$this->Add("ISINDEX", "");
95
			$this->Add("I", "");
96
			$this->Add("KBD", "");
97
			$this->Add("LINK", "");
98
			$this->Add("LI", "");
99
			$this->Add("MAP", "");
100
			$this->Add("MENU", "");
101
			$this->Add("META", "");
102
			$this->Add("OL", "");
103
			$this->Add("OPTION", "");
104
			$this->Add("PARAM", "");
105
			$this->Add("PRE", "");
106
			$this->Add("P", "");
107
			$this->Add("SAMP", "");
108
			$this->Add("SCRIPT", "");
109
			$this->Add("SELECT", "");
110
			$this->Add("SMALL", "");
111
			$this->Add("STRIKE", "");
112
			$this->Add("STRONG", "");
113
			$this->Add("STYLE", "");
114
			$this->Add("SUB", "");
115
			$this->Add("SUP", "");
116
			$this->Add("TABLE", "");
117
			$this->Add("TD", "");
118
			$this->Add("TEXTAREA", "");
119
			$this->Add("TH", "");
120
			$this->Add("TITLE", "");
121
			$this->Add("TR", "");
122
			$this->Add("TT", "");
123
			$this->Add("UL", "");
124
			$this->Add("U", "");
125
			$this->Add("VAR", "");
126
		}
127
	}
128
  
129
	function SetHTML($html) {
130
		$this->html = ($html != false);
131
	}
132
  
133
	function Add($key, $codestr) {
134
		$key = strtolower($key);
135
		//    $codestr = strtolower($codestr);
136
		if(!isset($this->css[$key])) {
137
			$this->css[$key] = array();
138
		}
139
		$codes = explode(";",$codestr);
140
		if(count($codes) > 0) {
141
			foreach($codes as $code) {
142
				$code = trim($code);
143
				@list($codekey, $codevalue) = explode(":",$code);
144
				if(strlen($codekey) > 0) {
145
					$this->css[$key][trim($codekey)] = trim($codevalue);
146
				}
147
			}
148
		}
149
	}
150
  
151
	function Get($key, $property) {
152
		$key = strtolower($key);
153
		//    $property = strtolower($property);
154
		@list($tag, $subtag) = explode(":",$key);
155
		@list($tag, $class) = explode(".",$tag);
156
		@list($tag, $id) = explode("#",$tag);
157
		$result = "";
158
		foreach($this->css as $_tag => $value) {
159
			@list($_tag, $_subtag) = explode(":",$_tag);
160
			@list($_tag, $_class) = explode(".",$_tag);
161
			@list($_tag, $_id) = explode("#",$_tag);
162
            $tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
163
			$subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
164
			$classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
165
			$idmatch = (strcmp($id, $_id) == 0);
166
            if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
167
				$temp = $_tag;
168
				if((strlen($temp) > 0) & (strlen($_class) > 0)) {
169
					$temp .= ".".$_class;
170
				}
171
				elseif(strlen($temp) == 0) {
172
					$temp = ".".$_class;
173
				}
174
				if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
175
					$temp .= ":".$_subtag;
176
				}
177
				elseif(strlen($temp) == 0) {
178
					$temp = ":".$_subtag;
179
				}
180
				if(isset($this->css[$temp][$property])) {
181
					$result = $this->css[$temp][$property];
182
				}
183
			}
184
		}
185
		return $result;
186
	}
187
  
188
	function GetSection($key) {
189
		$key = strtolower($key);
190
        @list($tag, $subtag) = explode(":",$key);
191
		@list($tag, $class) = explode(".",$tag);
192
		@list($tag, $id) = explode("#",$tag);
193
		$result = array();
194
		foreach($this->css as $_tag => $value) {
195
			@list($_tag, $_subtag) = explode(":",$_tag);
196
			@list($_tag, $_class) = explode(".",$_tag);
197
			@list($_tag, $_id) = explode("#",$_tag);
198
			$tagmatch = (strcmp($tag, $_tag) == 0) | (strlen($_tag) == 0);
199
			$subtagmatch = (strcmp($subtag, $_subtag) == 0) | (strlen($_subtag) == 0);
200
			$classmatch = (strcmp($class, $_class) == 0) | (strlen($_class) == 0);
201
			$idmatch = (strcmp($id, $_id) == 0);
202
			if($tagmatch & $subtagmatch & $classmatch & $idmatch) {
203
				$temp = $_tag;
204
				if((strlen($temp) > 0) & (strlen($_class) > 0)) {
205
					$temp .= ".".$_class;
206
				}
207
				elseif(strlen($temp) == 0) {
208
					$temp = ".".$_class;
209
				}
210
				if((strlen($temp) > 0) & (strlen($_subtag) > 0)) {
211
					$temp .= ":".$_subtag;
212
				}
213
				elseif(strlen($temp) == 0) {
214
					$temp = ":".$_subtag;
215
				}	
216
				foreach($this->css[$temp] as $property => $value) {
217
					$result[$property] = $value;
218
				}
219
			}
220
		}
221
		return $result;
222
	}
223
  
224
	function ParseStr($str) {
225
		$this->Clear();
226
		// Remove comments
227
		$str = preg_replace("/\/\*(.*)?\*\//Usi", "", $str);
228
		// Parse this damn csscode
229
		$parts = explode("}",$str);
230
		if(count($parts) > 0) {
231
			foreach($parts as $part) {
232
				@list($keystr,$codestr) = explode("{",$part);
233
				$keys = explode(",",trim($keystr));
234
				if(count($keys) > 0) {
235
					foreach($keys as $key) {
236
						if(strlen($key) > 0) {
237
							$key = str_replace("\n", "", $key);
238
							$key = str_replace("\\", "", $key);
239
							$this->Add($key, trim($codestr));
240
						}
241
					}
242
				}
243
			}
244
		}
245
		//
246
		return (count($this->css) > 0);
247
	}
248
  
249
	function Parse($filename) {
250
		$this->Clear();
251
		if(file_exists($filename)) {
252
			return $this->ParseStr(file_get_contents($filename));
253
		}
254
		else {
255
			return false;
256
		}
257
	}
258
	
259
	function GetCSS() {
260
		$result = "";
261
		foreach($this->css as $key => $values) {
262
			$result .= $key." {\n";
263
			foreach($values as $key => $value) {
264
				$result .= "  $key: $value;\n";
265
			}
266
			$result .= "}\n\n";
267
		}
268
		return $result;
269
	}
270

  
271
	function GetXML() {
272
		// Construction of "fckstyles.xml" for FCKeditor
273
		$styles = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"."\n";
274
		$styles .= '<Styles>'."\n";
275
		foreach ($this->css as $key => $value) {
276
			// skip all CSS that are a combination of CSS
277
			// skip CSS that are binded on an EVENT
278
			if (strpos($key, " ") === false && strpos($key, ":") === false) {
279
				$pieces = explode(".", $key, 2);
280
				if (strcmp($pieces[0], "") != 0) {
281
					continue;
282
				} else {
283
					$style_elem = "span";
284
				}
285
				if (strcmp($pieces[1], "") != 0) {
286
					$style_class_name = $pieces[1];
287
				} else {
288
					$style_class_name = $pieces[0];
289
				}
290
				$styles .= '<Style name="'.$style_class_name.'" element="'.$style_elem.'"';
291
				if (strcmp($style_class_name, $style_elem) != 0) {
292
					$styles .= '>'."\n".'<Attribute name="class" value="'.$style_class_name.'" />'."\n".'</Style>'."\n";
293
				} else {
294
					$styles .= '/>'."\n";
295
				}
296
			}
297
		}
298
		$styles .= '</Styles>'."\n";
299
		return trim($styles);
300
	}
301
}
302
?>
trunk/wb/modules/fckeditor/uninstall.php
1
<?php
2

  
3
/*
4

  
5
 Website Baker Project <http://www.websitebaker.org/>
6
 Copyright (C) 2004-2008, Ryan Djurovich
7

  
8
 Website Baker is free software; you can redistribute it and/or modify
9
 it under the terms of the GNU General Public License as published by
10
 the Free Software Foundation; either version 2 of the License, or
11
 (at your option) any later version.
12

  
13
 Website Baker is distributed in the hope that it will be useful,
14
 but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 GNU General Public License for more details.
17

  
18
 You should have received a copy of the GNU General Public License
19
 along with Website Baker; if not, write to the Free Software
20
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21

  
22
*/
23

  
24
// Must include code to stop this file being access directly
25
if(defined('WB_PATH') == false) { exit("Cannot access this file directly"); }
26

  
27
// Delete the editor directory
28
rm_full_dir(WB_PATH.'/modules/fckeditor/fckeditor');
29

  
30
?>
trunk/wb/modules/fckeditor/css_to_xml.php
1
<?php
2

  
3
/*
4

  
5
 Website Baker Project <http://www.websitebaker.org/>
6
 Copyright (C) 2004-2008, Ryan Djurovich
7

  
8
 Website Baker is free software; you can redistribute it and/or modify
9
 it under the terms of the GNU General Public License as published by
10
 the Free Software Foundation; either version 2 of the License, or
11
 (at your option) any later version.
12

  
13
 Website Baker is distributed in the hope that it will be useful,
14
 but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 GNU General Public License for more details.
17

  
18
 You should have received a copy of the GNU General Public License
19
 along with Website Baker; if not, write to the Free Software
20
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21

  
22
*/
23

  
24
require_once('../../config.php');
25

  
26
if(isset($_GET['template_name'])) {
27
	$temp_name = $_GET['template_name'];
28
	// check if specified template exists
29
	if(file_exists(WB_PATH .'/templates/' .$temp_name)) {
30
		// parse the editor.css and write XML output
31
		require_once(WB_PATH .'/modules/fckeditor/class.cssparser.php');
32
		$cssparser = new cssparser();
33
		$cssparser->Parse(WB_PATH .'/templates/' .$temp_name .'/editor.css');
34
		header('Content-type: text/xml'); 
35
		echo $cssparser->GetXML();
36
	}
37
}
38
?>
trunk/wb/modules/fckeditor/info.php
1
<?php
2

  
3
/*
4

  
5
 Website Baker Project <http://www.websitebaker.org/>
6
 Copyright (C) 2004-2008, Ryan Djurovich
7

  
8
 Website Baker is free software; you can redistribute it and/or modify
9
 it under the terms of the GNU General Public License as published by
10
 the Free Software Foundation; either version 2 of the License, or
11
 (at your option) any later version.
12

  
13
 Website Baker is distributed in the hope that it will be useful,
14
 but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 GNU General Public License for more details.
17

  
18
 You should have received a copy of the GNU General Public License
19
 along with Website Baker; if not, write to the Free Software
20
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21

  
22
 -----------------------------------------------------------------------------------------------------------
23
  FCKEditor module for Website Baker v2.6.x
24
  Authors: P. Widlund, S. Braunewell, M. Gallas (ruebenwurzel), Wouldlouper, C. Sommer (doc)
25
	Started to track applied changes in info.php from 27.03.2007 onwards (cs)
26
 -----------------------------------------------------------------------------------------------------------
27
	v2.81 (ruebenwurzel.. Matthias Gallas; Dez 24, 2007)
28
		+ update to FCKEditor release v2.51
29
	
30
	v2.80 (doc.. Christian Sommer; Dec 05, 2007)
31
		+ update to FCKEditor release v2.50 (according to the developers, the most important release since v2.0)
32
		+ entire PHP connector stuff rewritten from scratch
33
		+ permissions to view media, upload files and to create folders are now controlled by WB group access rights 
34
		+ included WBLinkPlugin fix from melisa (http://forum.websitebaker.org/index.php/topic,1670.msg45948.html#msg45948)
35
		  (Note: removed text field to specify the link title; function creates errors in IE and seems not to work in FF either)
36
		+ added text file "CHANGELOG" which contains all changes since Mar 27, 2007
37

  
38
	v2.77 (doc.. Christian Sommer; Oct 30, 2007)
39
		+ re-introduced fix from v2.74a to solve issues with wb_fcktemplates.xml
40
		
41
	v2.76 (doc.. Christian Sommer; Oct 29, 2007)
42
		+ v2.75 was released as hotfix to prevent major damage to WB hosted sites using FCKEditor
43
		  (users loged in the WB backend can upload files and create folders regardless of their WB permissions)
44
		+ the following additional security measures were applied with the v2.76 release:
45
			o possibility to upload files / create folders via FCKEditor disabled by default
46
			o PHP connector only active for users authentificated via WB backend and permissions to view the MEDIA folder
47
			o buttons to search the server (e.g. image/flash/link browser) only enabled if user has permission to view MEDIA folder
48
			o buttons to upload files from FCKEditor always disabled (users settings will be overwritten)
49
		+ it is no longer possible to upload files or to create folder by the FCKEditor dialogues
50
		+ file uploads and creation of folders needs to be done via the WB MEDIA center
51

  
52
	v2.75 (doc.. Christian Sommer; Oct 20, 2007) HOTFIX TO PREVENT THE WORST CASE SCENARIOUS
53
		+ implemented the slightly modified security patch provided by the forum member sogua (thanks man)
54
			Note: all older versions of the FCKEditor module allow file uploads and creation of folders from any
55
			browser, no matter if you have access to the Website Baker backend or not!!!
56
			Upload of PHP files is and was not possible with earlier version. However, images, textfiles, movies...
57
			could be uploaded and overwritten within the WB /MEDIA folder.
58

  
59
   v2.7.4a (ruebenwurzel; 05.07.2007)
60
		+ fixed issue in include.php with wb_fcktemplates.xml
61
   
62
   v2.7.4 (ruebenwurzel; 14.06.2007)
63
		+ update to FCKEditor release v2.4.3
64
   
65
   v2.7.3 (ruebenwurzel; 10.04.2007)
66
		+ update to FCKEditor release v2.4.2
67
   
68
   v2.7.2 (ruebenwurzel, doc; 29.03.2007)
69
		+ update to FCKEditor release v2.4.1 (added UTF8-BOM fix from http://dev.fckeditor.net/ticket/279)
70
		+ removed two test.html files from fckeditor/editor/filemanager/browser and .../upload which could be used
71
		  to upload any files from outside to the WB media directory if the exact URL is known (thanks to Funky_MF)
72
		+ changed the following default settings in the wb_fckconfig.js files:
73
			FCKConfig.EnterMode 		= 'p';
74
   		FCKConfig.ShiftEnterMode 	= 'br';
75
   		FCKConfig.FlashBrowser = true;
76

  
77
   v2.7.1 (doc; 06.02.2007)
78
		+ fixed issues with CSS and XML handling
79
		+ moved FCK Javascript settings to external file: /wb_config/wb_fckconfig.js
80

  
81
   v2.7.0 (ruebenwurzel; 05.02.2007)
82
		+ update to FCKEditor release v2.4.0
83

  
84
	 CREDITS: 
85
	  o Thanks to tallyce for the php-connector patch which enables file upload to WB media folder
86
	  o all other members who contributed to the FCKEditor module and are not mentioned here
87
 -----------------------------------------------------------------------------------------------------------
88

  
89
*/
90

  
91
$module_directory		= 'fckeditor';
92
$module_name			= 'FCKeditor';
93
$module_function		= 'WYSIWYG';
94
$module_version			= '2.81';
95
$module_platform		= '2.6.x';
96
$module_author 			= 'Christian Sommer, P. Widlund, S. Braunewell, M. Gallas, Wouldlouper';
97
$module_license 		= 'GNU General Public License';
98
$module_description 	= 'This module allows you to edit the contents of a page using <a href="http://www.fckeditor.net/" target="_blank">FCKeditor v2.51</a>.';
99

  
100
?>
trunk/wb/modules/fckeditor/CHANGELOG
1
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
 RELEASE NOTES
3
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4
 According to the developers of the FCKEditor, the version v2.50 (the WB internal
5
 release is v2.80) is the most important release since v2.0.
6

  
7
 As the developers have changed and moved a lot of files, it is recommended to
8
 delete any existing version of FCKEditor, before installing the latest version.
9

  
10
 Please keep in mind to backup your custom configuration files located in
11
 /modules/fckeditor/wb_config/ before you uninstall the previous version.
12

  
13
 Infos about FCKEditor: http://www.fckeditor.net/
14
 
15
 Infos about the configuration settings can be found on the FCKEditor WIKI:
16
 http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_Settings
17

  
18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19
 VERSION HISTORY
20
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
21
 v2.81 (ruebenwurzel.. Matthias Gallas; Dez 24, 2007)
22
  + update to FCKEditor release v2.51
23
 
24
 v2.80 (doc.. Christian Sommer; Dec 05, 2007)
25
  + update to FCKEditor release v2.50 (according to the developers, the most important release since v2.0)
26
  + entire PHP connector stuff rewritten from scratch
27
  + permissions to view media, upload files and to create folders are now controlled by WB group access rights 
28
  + included WBLinkPlugin fix from melisa (http://forum.websitebaker.org/index.php/topic,1670.msg45948.html#msg45948)
29
    (Note: removed text field to specify the link title; function creates errors in IE and seems not to work in FF either)
30

  
31
 v2.77 (doc.. Christian Sommer; Oct 30, 2007)
32
  + re-introduced fix from v2.74a to solve issues with wb_fcktemplates.xml
33
		
34
 v2.76 (doc.. Christian Sommer; Oct 29, 2007)
35
  + v2.75 was released as hotfix to prevent major damage to WB hosted sites using FCKEditor
36
    (users loged in the WB backend can upload files and create folders regardless of their WB permissions)
37
  + the following additional security measures were applied with the v2.76 release:
38
    - possibility to upload files / create folders via FCKEditor disabled by default
39
    - PHP connector only active for users authentificated via WB backend and permissions to view the MEDIA folder
40
    - buttons to search the server (e.g. image/flash/link browser) only enabled if user has permission to view MEDIA folder
41
    - buttons to upload files from FCKEditor always disabled (users settings will be overwritten)
42
    - it is no longer possible to upload files or to create folder by the FCKEditor dialogues
43
    - file uploads and creation of folders needs to be done via the WB MEDIA center
44

  
45
 v2.75 (doc.. Christian Sommer; Oct 20, 2007) HOTFIX TO PREVENT THE WORST CASE SCENARIOUS
46
  + implemented the slightly modified security patch provided by the forum member sogua (thanks man)
47
    Note: all older versions of the FCKEditor module allow file uploads and creation of folders from any
48
    browser, no matter if you have access to the Website Baker backend or not!!!
49
    Upload of PHP files is and was not possible with earlier version. However, images, textfiles, movies...
50
    could be uploaded and overwritten within the WB /MEDIA folder.
51

  
52
 v2.7.4a (ruebenwurzel; 05.07.2007)
53
  + fixed issue in include.php with wb_fcktemplates.xml
54
   
55
 v2.7.4 (ruebenwurzel; 14.06.2007)
56
  + update to FCKEditor release v2.4.3
57
   
58
 v2.7.3 (ruebenwurzel; 10.04.2007)
59
  + update to FCKEditor release v2.4.2
60
   
61
 v2.7.2 (ruebenwurzel, doc; 29.03.2007)
62
  + update to FCKEditor release v2.4.1 (added UTF8-BOM fix from http://dev.fckeditor.net/ticket/279)
63
  + removed two test.html files from fckeditor/editor/filemanager/browser and .../upload which could be used
64
    to upload any files from outside to the WB media directory if the exact URL is known (thanks to Funky_MF)
65
  + changed the following default settings in the wb_fckconfig.js files:
66
    FCKConfig.EnterMode = 'p';
67
    FCKConfig.ShiftEnterMode = 'br';
68
    FCKConfig.FlashBrowser = true;
69

  
70
 v2.7.1 (doc; 06.02.2007)
71
  + fixed issues with CSS and XML handling
72
  + moved FCK Javascript settings to external file: /wb_config/wb_fckconfig.js
73

  
74
 v2.7.0 (ruebenwurzel; 05.02.2007)
75
  + update to FCKEditor release v2.4.0
trunk/wb/modules/fckeditor/include.php
1
<?php
2

  
3
/*
4

  
5
 Website Baker Project <http://www.websitebaker.org/>
6
 Copyright (C) 2004-2008, Ryan Djurovich
7

  
8
 Website Baker is free software; you can redistribute it and/or modify
9
 it under the terms of the GNU General Public License as published by
10
 the Free Software Foundation; either version 2 of the License, or
11
 (at your option) any later version.
12

  
13
 Website Baker is distributed in the hope that it will be useful,
14
 but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 GNU General Public License for more details.
17

  
18
 You should have received a copy of the GNU General Public License
19
 along with Website Baker; if not, write to the Free Software
20
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21

  
22
*/
23

  
24
function reverse_htmlentities($mixed) {
25
	$htmltable = get_html_translation_table(HTML_ENTITIES);
26
	foreach($htmltable as $key => $value) {
27
		$mixed = ereg_replace(addslashes($value),$key,$mixed);
28
		}
29
	return $mixed;
30
}
31

  
32
function get_template_name() {
33
	// returns the template name of the current displayed page
34
	require_once('../../config.php');
35
	require_once(WB_PATH. '/framework/class.database.php');
36

  
37
	// work out default editor.css file for FCKEditor
38
	if(file_exists(WB_PATH .'/templates/' .DEFAULT_TEMPLATE .'/editor.css')) {
39
		$fck_template_dir = DEFAULT_TEMPLATE;
40
	} else {
41
		$fck_template_dir = "none";
42
	}
43

  
44
	// check if a editor.css file exists in the specified template directory of current page
45
	if (isset($_GET["page_id"]) && (int) $_GET["page_id"] > 0) {
46
		$pageid = (int) $_GET["page_id"];
47

  
48
		// obtain template folder of current page from the database
49
		if(!isset($admin)) { 
50
			$database = new database(); 
51
		}
52
		$query_page = "SELECT template FROM " .TABLE_PREFIX ."pages WHERE page_id =$pageid"; 
53
		$pagetpl = $database->get_one($query_page);   // if empty, default template is used
54

  
55
		// check if a specific template is defined for current page
56
		if(isset($pagetpl) && $pagetpl != '') {
57
			// check if a specify editor.css file is contained in that folder
58
			if(file_exists(WB_PATH.'/templates/'.$pagetpl.'/editor.css')) {
59
				$fck_template_dir = $pagetpl;
60
			}
61
		}
62
	}
63
	return $fck_template_dir;
64
}
65

  
66
function show_wysiwyg_editor($name, $id, $content, $width, $height) {
67
	// create new FCKEditor instance
68
	require_once(WB_PATH.'/modules/fckeditor/fckeditor/fckeditor.php');
69
	$oFCKeditor = new FCKeditor($name);
70

  
71
	// set defaults (Note: custom settings defined in: "/my_config/my_fckconfig.js" instead of "/editor/fckconfig.js")
72
	$oFCKeditor->BasePath = WB_URL.'/modules/fckeditor/fckeditor/';
73
	$oFCKeditor->Config['CustomConfigurationsPath'] = WB_URL .'/modules/fckeditor/wb_config/wb_fckconfig.js';
74
	$oFCKeditor->ToolbarSet = 'WBToolbar';        // toolbar defined in my_fckconfig.js
75

  
76
	// obtain template name of current page (if empty, no editor.css files exists)
77
	$template_name = get_template_name();
78

  
79
	// work out default CSS file to be used for FCK textarea
80
	if($template_name == "none") {
81
		// no editor.css file exists in default template folder, or template folder of current page
82
		$css_file = WB_URL .'/modules/fckeditor/wb_config/wb_fckeditorarea.css';
83
	} else {
84
		// editor.css file exists in default template folder or template folder of current page
85
		$css_file = WB_URL .'/templates/' .$template_name .'/editor.css';
86
	}
87
	// set CSS file depending on $css_file
88
	$oFCKeditor->Config['EditorAreaCSS'] = $css_file;
89

  
90
	// work out settings for the FCK "Style" toolbar
91
	if ($template_name == "none") {
92
		// no custom editor.css exists, use default XML definitions
93
		$oFCKeditor->Config['StylesXmlPath'] = WB_URL.'/modules/fckeditor/wb_config/wb_fckstyles.xml';
94
	} else {
95
		// file editor.css exists in template folder, parse it and create XML definitions
96
		$oFCKeditor->Config['StylesXmlPath'] = WB_URL.'/modules/fckeditor/css_to_xml.php?template_name=' .$template_name;
97
	}
98

  
99
	// custom templates can be defined via /wb_config/wb_fcktemplates.xml
100
	if(file_exists(WB_PATH .'/modules/fckeditor/wb_config/wb_fcktemplates.xml')) {
101
		$oFCKeditor->Config['TemplatesXmlPath'] = WB_URL.'/modules/fckeditor/wb_config/wb_fcktemplates.xml';
102
	}
103

  
104
	// set required file connectors (overwrite settings which may be made in fckconfig.js or my_fckconfig.js)
105
	$oFCKeditor->Config['LinkBrowserURL'] = $oFCKeditor->BasePath.'editor/filemanager/browser/default/browser.html?Connector=../../connectors/php/connector.php';
106
	$oFCKeditor->Config['ImageBrowserURL'] = $oFCKeditor->BasePath.'editor/filemanager/browser/default/browser.html?Connector=../../connectors/php/connector.php';
107
	$oFCKeditor->Config['FlashBrowserURL'] = $oFCKeditor->BasePath.'editor/filemanager/browser/default/browser.html?Connector=../../connectors/php/connector.php';
108

  
109
	$oFCKeditor->Value = reverse_htmlentities($content);
110
	$oFCKeditor->Height = $height;
111
	$oFCKeditor->Create();
112
}
113

  
114
?>
trunk/wb/modules/fckeditor/fckeditor/fckeditor.php
1
<?php
2
/*
3
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4
 * Copyright (C) 2003-2007 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 PHP (All versions).
23
 *
24
 * It loads the correct integration file based on the PHP version (avoiding
25
 * strict error messages with PHP 5).
26
 */
27

  
28
function FCKeditor_IsCompatibleBrowser()
29
{
30
	global $HTTP_USER_AGENT ;
31

  
32
	if ( !isset( $_SERVER ) ) {
33
		global $HTTP_SERVER_VARS ;
34
	    $_SERVER = $HTTP_SERVER_VARS ;
35
	}
36
		
37
	if ( isset( $HTTP_USER_AGENT ) )
38
		$sAgent = $HTTP_USER_AGENT ;
39
	else
40
		$sAgent = $_SERVER['HTTP_USER_AGENT'] ;
41

  
42
	if ( strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false )
43
	{
44
		$iVersion = (float)substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3) ;
45
		return ($iVersion >= 5.5) ;
46
	}
47
	else if ( strpos($sAgent, 'Gecko/') !== false )
48
	{
49
		$iVersion = (int)substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8) ;
50
		return ($iVersion >= 20030210) ;
51
	}
52
	else if ( strpos($sAgent, 'Opera/') !== false )
53
	{
54
		$fVersion = (float)substr($sAgent, strpos($sAgent, 'Opera/') + 6, 4) ;
55
		return ($fVersion >= 9.5) ;
56
	}
57
	else if ( preg_match( "|AppleWebKit/(\d+)|i", $sAgent, $matches ) )
58
	{
59
		$iVersion = $matches[1] ;
60
		return ( $matches[1] >= 522 ) ;
61
	}
62
	else
63
		return false ;	
64
}
65

  
66
if ( !function_exists('version_compare') || version_compare( phpversion(), '5', '<' ) )
67
	include_once( 'fckeditor_php4.php' ) ;
68
else
69
	include_once( 'fckeditor_php5.php' ) ;
70

  
71
?>
trunk/wb/modules/fckeditor/fckeditor/fckpackager.xml
1
<?xml version="1.0" encoding="utf-8" ?>
2
<!--
3
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4
 * Copyright (C) 2003-2007 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 configuration file to be used with FCKpackager to generate the
23
 * compressed code files in the "js" folder.
24
 *
25
 * Please check http://www.fckeditor.net for more info.
26
-->
27
<Package>
28
	<Header><![CDATA[/*
29
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
30
 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
31
 * 
32
 * == BEGIN LICENSE ==
33
 * 
34
 * Licensed under the terms of any of the following licenses at your
35
 * choice:
36
 * 
37
 *  - GNU General Public License Version 2 or later (the "GPL")
38
 *    http://www.gnu.org/licenses/gpl.html
39
 * 
40
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
41
 *    http://www.gnu.org/licenses/lgpl.html
42
 * 
43
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
44
 *    http://www.mozilla.org/MPL/MPL-1.1.html
45
 * 
46
 * == END LICENSE ==
47
 * 
48
 * This file has been compressed for better performance. The original source
49
 * can be found at "editor/_source".
50
 */
51
]]></Header>
52
	<Constants removeDeclaration="false">
53
		<Constant name="FCK_STATUS_NOTLOADED" value="0" />
54
		<Constant name="FCK_STATUS_ACTIVE" value="1" />
55
		<Constant name="FCK_STATUS_COMPLETE" value="2" />
56
		<Constant name="FCK_TRISTATE_OFF" value="0" />
57
		<Constant name="FCK_TRISTATE_ON" value="1" />
58
		<Constant name="FCK_TRISTATE_DISABLED" value="-1" />
59
		<Constant name="FCK_UNKNOWN" value="-9" />
60
		<Constant name="FCK_TOOLBARITEM_ONLYICON" value="0" />
61
		<Constant name="FCK_TOOLBARITEM_ONLYTEXT" value="1" />
62
		<Constant name="FCK_TOOLBARITEM_ICONTEXT" value="2" />
63
		<Constant name="FCK_EDITMODE_WYSIWYG" value="0" />
64
		<Constant name="FCK_EDITMODE_SOURCE" value="1" />
65
		<Constant name="FCK_STYLE_BLOCK" value="0" />
66
		<Constant name="FCK_STYLE_INLINE" value="1" />
67
		<Constant name="FCK_STYLE_OBJECT" value="2" />
68
	</Constants>
69
	<PackageFile path="editor/js/fckeditorcode_ie.js">
70
		<File path="editor/_source/fckconstants.js" />
71
		<File path="editor/_source/fckjscoreextensions.js" />
72
		<File path="editor/_source/classes/fckiecleanup.js" />
73
		<File path="editor/_source/internals/fckbrowserinfo.js" />
74
		<File path="editor/_source/internals/fckurlparams.js" />
75
		<File path="editor/_source/classes/fckevents.js" />
76
		<File path="editor/_source/classes/fckdataprocessor.js" />
77
		<File path="editor/_source/internals/fck.js" />
78
		<File path="editor/_source/internals/fck_ie.js" />
79
		<File path="editor/_source/internals/fckconfig.js" />
80
		<File path="editor/_source/internals/fckdebug.js" />
81
		<File path="editor/_source/internals/fckdomtools.js" />
82
		<File path="editor/_source/internals/fcktools.js" />
83
		<File path="editor/_source/internals/fcktools_ie.js" />
84
		<File path="editor/_source/fckeditorapi.js" />
85
		<File path="editor/_source/classes/fckimagepreloader.js" />
86

  
87
		<File path="editor/_source/internals/fckregexlib.js" />
88
		<File path="editor/_source/internals/fcklistslib.js" />
89
		<File path="editor/_source/internals/fcklanguagemanager.js" />
90
		<File path="editor/_source/internals/fckxhtmlentities.js" />
91
		<File path="editor/_source/internals/fckxhtml.js" />
92
		<File path="editor/_source/internals/fckxhtml_ie.js" />
93
		<File path="editor/_source/internals/fckcodeformatter.js" />
94
		<File path="editor/_source/internals/fckundo.js" />
95
		<File path="editor/_source/classes/fckeditingarea.js" />
96
		<File path="editor/_source/classes/fckkeystrokehandler.js" />
97

  
98
		<File path="editor/dtd/fck_xhtml10transitional.js" />
99
		<File path="editor/_source/classes/fckstyle.js" />
100
		<File path="editor/_source/internals/fckstyles.js" />
101
			  
102
		<File path="editor/_source/internals/fcklisthandler.js" />
103
		<File path="editor/_source/classes/fckelementpath.js" />
104
		<File path="editor/_source/classes/fckdomrange.js" />
105
		<File path="editor/_source/classes/fckdomrange_ie.js" />
106
		<File path="editor/_source/classes/fckdomrangeiterator.js" />
107
		<File path="editor/_source/classes/fckdocumentfragment_ie.js" />
108
		<File path="editor/_source/classes/fckw3crange.js" />
109
		<File path="editor/_source/classes/fckenterkey.js" />
110

  
111
		<File path="editor/_source/internals/fckdocumentprocessor.js" />
112
		<File path="editor/_source/internals/fckselection.js" />
113
		<File path="editor/_source/internals/fckselection_ie.js" />
114

  
115
		<File path="editor/_source/internals/fcktablehandler.js" />
116
		<File path="editor/_source/internals/fcktablehandler_ie.js" />
117
		<File path="editor/_source/classes/fckxml.js" />
118
		<File path="editor/_source/classes/fckxml_ie.js" />
119

  
120
		<File path="editor/_source/commandclasses/fcknamedcommand.js" />
121
		<File path="editor/_source/commandclasses/fckstylecommand.js" />
122
		<File path="editor/_source/commandclasses/fck_othercommands.js" />
123
		<File path="editor/_source/commandclasses/fckshowblocks.js" />
124
		<File path="editor/_source/commandclasses/fckspellcheckcommand_ie.js" />
125
		<File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
126
		<File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
127
		<File path="editor/_source/commandclasses/fckpastewordcommand.js" />
128
		<File path="editor/_source/commandclasses/fcktablecommand.js" />
129
		<File path="editor/_source/commandclasses/fckfitwindow.js" />
130
		<File path="editor/_source/commandclasses/fcklistcommands.js" />
131
		<File path="editor/_source/commandclasses/fckjustifycommands.js" />
132
		<File path="editor/_source/commandclasses/fckindentcommands.js" />
133
		<File path="editor/_source/commandclasses/fckblockquotecommand.js" />
134
		<File path="editor/_source/commandclasses/fckcorestylecommand.js" />
135
		<File path="editor/_source/commandclasses/fckremoveformatcommand.js" />
136
		<File path="editor/_source/internals/fckcommands.js" />
137

  
138
		<File path="editor/_source/classes/fckpanel.js" />
139
		<File path="editor/_source/classes/fckicon.js" />
140
		<File path="editor/_source/classes/fcktoolbarbuttonui.js" />
141
		<File path="editor/_source/classes/fcktoolbarbutton.js" />
142
		<File path="editor/_source/classes/fckspecialcombo.js" />
143
		<File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
144
		<File path="editor/_source/classes/fcktoolbarstylecombo.js" />
145
		<File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
146
		<File path="editor/_source/classes/fcktoolbarfontscombo.js" />
147
		<File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
148
		<File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
149
		<File path="editor/_source/internals/fcktoolbaritems.js" />
150
		<File path="editor/_source/classes/fcktoolbar.js" />
151
		<File path="editor/_source/classes/fcktoolbarbreak_ie.js" />
152
		<File path="editor/_source/internals/fcktoolbarset.js" />
153
		<File path="editor/_source/internals/fckdialog.js" />
154
		<File path="editor/_source/internals/fckdialog_ie.js" />
155

  
156
		<File path="editor/_source/classes/fckmenuitem.js" />
157
		<File path="editor/_source/classes/fckmenublock.js" />
158
		<File path="editor/_source/classes/fckmenublockpanel.js" />
159
		<File path="editor/_source/classes/fckcontextmenu.js" />
160
		<File path="editor/_source/internals/fck_contextmenu.js" />
161

  
162
		<File path="editor/_source/classes/fckplugin.js" />
163
		<File path="editor/_source/internals/fckplugins.js" />
164
	</PackageFile>
165

  
166
	<PackageFile path="editor/js/fckeditorcode_gecko.js">
167
		<File path="editor/_source/fckconstants.js" />
168
		<File path="editor/_source/fckjscoreextensions.js" />
169
		<File path="editor/_source/internals/fckbrowserinfo.js" />
170
		<File path="editor/_source/internals/fckurlparams.js" />
171
		<File path="editor/_source/classes/fckevents.js" />
172
		<File path="editor/_source/classes/fckdataprocessor.js" />
173
		<File path="editor/_source/internals/fck.js" />
174
		<File path="editor/_source/internals/fck_gecko.js" />
175
		<File path="editor/_source/internals/fckconfig.js" />
176
		<File path="editor/_source/internals/fckdebug.js" />
177
		<File path="editor/_source/internals/fckdomtools.js" />
178
		<File path="editor/_source/internals/fcktools.js" />
179
		<File path="editor/_source/internals/fcktools_gecko.js" />
180
		<File path="editor/_source/fckeditorapi.js" />
181
		<File path="editor/_source/classes/fckimagepreloader.js" />
182

  
183
		<File path="editor/_source/internals/fckregexlib.js" />
184
		<File path="editor/_source/internals/fcklistslib.js" />
185
		<File path="editor/_source/internals/fcklanguagemanager.js" />
186
		<File path="editor/_source/internals/fckxhtmlentities.js" />
187
		<File path="editor/_source/internals/fckxhtml.js" />
188
		<File path="editor/_source/internals/fckxhtml_gecko.js" />
189
		<File path="editor/_source/internals/fckcodeformatter.js" />
190
		<File path="editor/_source/internals/fckundo.js" />
191
		<File path="editor/_source/classes/fckeditingarea.js" />
192
		<File path="editor/_source/classes/fckkeystrokehandler.js" />
193

  
194
		<File path="editor/dtd/fck_xhtml10transitional.js" />
195
		<File path="editor/_source/classes/fckstyle.js" />
196
		<File path="editor/_source/internals/fckstyles.js" />
197

  
198
		<File path="editor/_source/internals/fcklisthandler.js" />
199
		<File path="editor/_source/classes/fckelementpath.js" />
200
		<File path="editor/_source/classes/fckdomrange.js" />
201
		<File path="editor/_source/classes/fckdomrange_gecko.js" />
202
		<File path="editor/_source/classes/fckdomrangeiterator.js" />
203
		<File path="editor/_source/classes/fckdocumentfragment_gecko.js" />
204
		<File path="editor/_source/classes/fckw3crange.js" />
205
		<File path="editor/_source/classes/fckenterkey.js" />
206

  
207
		<File path="editor/_source/internals/fckdocumentprocessor.js" />
208
		<File path="editor/_source/internals/fckselection.js" />
209
		<File path="editor/_source/internals/fckselection_gecko.js" />
210

  
211
		<File path="editor/_source/internals/fcktablehandler.js" />
212
		<File path="editor/_source/internals/fcktablehandler_gecko.js" />
213
		<File path="editor/_source/classes/fckxml.js" />
214
		<File path="editor/_source/classes/fckxml_gecko.js" />
215

  
216
		<File path="editor/_source/commandclasses/fcknamedcommand.js" />
217
		<File path="editor/_source/commandclasses/fckstylecommand.js" />
218
		<File path="editor/_source/commandclasses/fck_othercommands.js" />
219
		<File path="editor/_source/commandclasses/fckshowblocks.js" />
220
		<File path="editor/_source/commandclasses/fckspellcheckcommand_gecko.js" />
221
		<File path="editor/_source/commandclasses/fcktextcolorcommand.js" />
222
		<File path="editor/_source/commandclasses/fckpasteplaintextcommand.js" />
223
		<File path="editor/_source/commandclasses/fckpastewordcommand.js" />
224
		<File path="editor/_source/commandclasses/fcktablecommand.js" />
225
		<File path="editor/_source/commandclasses/fckfitwindow.js" />
226
		<File path="editor/_source/commandclasses/fcklistcommands.js" />
227
		<File path="editor/_source/commandclasses/fckjustifycommands.js" />
228
		<File path="editor/_source/commandclasses/fckindentcommands.js" />
229
		<File path="editor/_source/commandclasses/fckblockquotecommand.js" />
230
		<File path="editor/_source/commandclasses/fckcorestylecommand.js" />
231
		<File path="editor/_source/commandclasses/fckremoveformatcommand.js" />
232
		<File path="editor/_source/internals/fckcommands.js" />
233

  
234
		<File path="editor/_source/classes/fckpanel.js" />
235
		<File path="editor/_source/classes/fckicon.js" />
236
		<File path="editor/_source/classes/fcktoolbarbuttonui.js" />
237
		<File path="editor/_source/classes/fcktoolbarbutton.js" />
238
		<File path="editor/_source/classes/fckspecialcombo.js" />
239
		<File path="editor/_source/classes/fcktoolbarspecialcombo.js" />
240
		<File path="editor/_source/classes/fcktoolbarstylecombo.js" />
241
		<File path="editor/_source/classes/fcktoolbarfontformatcombo.js" />
242
		<File path="editor/_source/classes/fcktoolbarfontscombo.js" />
243
		<File path="editor/_source/classes/fcktoolbarfontsizecombo.js" />
244
		<File path="editor/_source/classes/fcktoolbarpanelbutton.js" />
245
		<File path="editor/_source/internals/fcktoolbaritems.js" />
246
		<File path="editor/_source/classes/fcktoolbar.js" />
247
		<File path="editor/_source/classes/fcktoolbarbreak_gecko.js" />
248
		<File path="editor/_source/internals/fcktoolbarset.js" />
249
		<File path="editor/_source/internals/fckdialog.js" />
250
		<File path="editor/_source/internals/fckdialog_gecko.js" />
251

  
252
		<File path="editor/_source/classes/fckmenuitem.js" />
253
		<File path="editor/_source/classes/fckmenublock.js" />
254
		<File path="editor/_source/classes/fckmenublockpanel.js" />
255
		<File path="editor/_source/classes/fckcontextmenu.js" />
256
		<File path="editor/_source/internals/fck_contextmenu.js" />
257

  
258
		<File path="editor/_source/classes/fckplugin.js" />
259
		<File path="editor/_source/internals/fckplugins.js" />
260
	</PackageFile>
261

  
262
</Package>
trunk/wb/modules/fckeditor/fckeditor/license.txt
1
FCKeditor - The text editor for Internet - http://www.fckeditor.net
2
Copyright (C) 2003-2007 Frederico Caldeira Knabben
3

  
4
Licensed under the terms of any of the following licenses at your
5
choice:
6

  
7
 - GNU General Public License Version 2 or later (the "GPL")
8
   http://www.gnu.org/licenses/gpl.html
9
   (See Appendix A)
10

  
11
 - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
12
   http://www.gnu.org/licenses/lgpl.html
13
   (See Appendix B)
14

  
15
 - Mozilla Public License Version 1.1 or later (the "MPL")
16
   http://www.mozilla.org/MPL/MPL-1.1.html
17
   (See Appendix C)
18

  
19
You are not required to, but if you want to explicitly declare the
20
license you have chosen to be bound to when using, reproducing,
21
modifying and distributing this software, just include a text file
22
titled "legal.txt" in your version of this software, indicating your
23
license choice. In any case, your choice will not restrict any
24
recipient of your version of this software to use, reproduce, modify
25
and distribute this software under any of the above licenses.
26

  
27
Appendix A: The GPL License
28
===========================
29

  
30
		    GNU GENERAL PUBLIC LICENSE
31
		       Version 2, June 1991
32

  
33
 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
34
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
35
 Everyone is permitted to copy and distribute verbatim copies
36
 of this license document, but changing it is not allowed.
37

  
38
			    Preamble
39

  
40
  The licenses for most software are designed to take away your
41
freedom to share and change it.  By contrast, the GNU General Public
42
License is intended to guarantee your freedom to share and change free
43
software--to make sure the software is free for all its users.  This
44
General Public License applies to most of the Free Software
45
Foundation's software and to any other program whose authors commit to
46
using it.  (Some other Free Software Foundation software is covered by
47
the GNU Lesser General Public License instead.)  You can apply it to
48
your programs, too.
49

  
50
  When we speak of free software, we are referring to freedom, not
51
price.  Our General Public Licenses are designed to make sure that you
52
have the freedom to distribute copies of free software (and charge for
53
this service if you wish), that you receive source code or can get it
54
if you want it, that you can change the software or use pieces of it
55
in new free programs; and that you know you can do these things.
56

  
57
  To protect your rights, we need to make restrictions that forbid
58
anyone to deny you these rights or to ask you to surrender the rights.
59
These restrictions translate to certain responsibilities for you if you
60
distribute copies of the software, or if you modify it.
61

  
62
  For example, if you distribute copies of such a program, whether
63
gratis or for a fee, you must give the recipients all the rights that
64
you have.  You must make sure that they, too, receive or can get the
65
source code.  And you must show them these terms so they know their
66
rights.
67

  
68
  We protect your rights with two steps: (1) copyright the software, and
69
(2) offer you this license which gives you legal permission to copy,
70
distribute and/or modify the software.
71

  
72
  Also, for each author's protection and ours, we want to make certain
73
that everyone understands that there is no warranty for this free
74
software.  If the software is modified by someone else and passed on, we
75
want its recipients to know that what they have is not the original, so
76
that any problems introduced by others will not reflect on the original
77
authors' reputations.
78

  
79
  Finally, any free program is threatened constantly by software
80
patents.  We wish to avoid the danger that redistributors of a free
81
program will individually obtain patent licenses, in effect making the
82
program proprietary.  To prevent this, we have made it clear that any
83
patent must be licensed for everyone's free use or not licensed at all.
84

  
85
  The precise terms and conditions for copying, distribution and
86
modification follow.
87

  
88
		    GNU GENERAL PUBLIC LICENSE
89
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
90

  
91
  0. This License applies to any program or other work which contains
92
a notice placed by the copyright holder saying it may be distributed
93
under the terms of this General Public License.  The "Program", below,
94
refers to any such program or work, and a "work based on the Program"
95
means either the Program or any derivative work under copyright law:
96
that is to say, a work containing the Program or a portion of it,
97
either verbatim or with modifications and/or translated into another
98
language.  (Hereinafter, translation is included without limitation in
99
the term "modification".)  Each licensee is addressed as "you".
100

  
101
Activities other than copying, distribution and modification are not
102
covered by this License; they are outside its scope.  The act of
103
running the Program is not restricted, and the output from the Program
104
is covered only if its contents constitute a work based on the
105
Program (independent of having been made by running the Program).
106
Whether that is true depends on what the Program does.
107

  
108
  1. You may copy and distribute verbatim copies of the Program's
109
source code as you receive it, in any medium, provided that you
110
conspicuously and appropriately publish on each copy an appropriate
111
copyright notice and disclaimer of warranty; keep intact all the
112
notices that refer to this License and to the absence of any warranty;
113
and give any other recipients of the Program a copy of this License
114
along with the Program.
115

  
116
You may charge a fee for the physical act of transferring a copy, and
117
you may at your option offer warranty protection in exchange for a fee.
118

  
119
  2. You may modify your copy or copies of the Program or any portion
120
of it, thus forming a work based on the Program, and copy and
121
distribute such modifications or work under the terms of Section 1
122
above, provided that you also meet all of these conditions:
123

  
124
    a) You must cause the modified files to carry prominent notices
125
    stating that you changed the files and the date of any change.
126

  
127
    b) You must cause any work that you distribute or publish, that in
128
    whole or in part contains or is derived from the Program or any
129
    part thereof, to be licensed as a whole at no charge to all third
130
    parties under the terms of this License.
131

  
132
    c) If the modified program normally reads commands interactively
133
    when run, you must cause it, when started running for such
134
    interactive use in the most ordinary way, to print or display an
135
    announcement including an appropriate copyright notice and a
136
    notice that there is no warranty (or else, saying that you provide
137
    a warranty) and that users may redistribute the program under
138
    these conditions, and telling the user how to view a copy of this
139
    License.  (Exception: if the Program itself is interactive but
140
    does not normally print such an announcement, your work based on
141
    the Program is not required to print an announcement.)
142

  
143
These requirements apply to the modified work as a whole.  If
144
identifiable sections of that work are not derived from the Program,
145
and can be reasonably considered independent and separate works in
146
themselves, then this License, and its terms, do not apply to those
147
sections when you distribute them as separate works.  But when you
148
distribute the same sections as part of a whole which is a work based
149
on the Program, the distribution of the whole must be on the terms of
150
this License, whose permissions for other licensees extend to the
151
entire whole, and thus to each and every part regardless of who wrote it.
152

  
153
Thus, it is not the intent of this section to claim rights or contest
154
your rights to work written entirely by you; rather, the intent is to
155
exercise the right to control the distribution of derivative or
156
collective works based on the Program.
157

  
158
In addition, mere aggregation of another work not based on the Program
159
with the Program (or with a work based on the Program) on a volume of
160
a storage or distribution medium does not bring the other work under
161
the scope of this License.
162

  
163
  3. You may copy and distribute the Program (or a work based on it,
164
under Section 2) in object code or executable form under the terms of
165
Sections 1 and 2 above provided that you also do one of the following:
166

  
167
    a) Accompany it with the complete corresponding machine-readable
168
    source code, which must be distributed under the terms of Sections
169
    1 and 2 above on a medium customarily used for software interchange; or,
170

  
171
    b) Accompany it with a written offer, valid for at least three
172
    years, to give any third party, for a charge no more than your
173
    cost of physically performing source distribution, a complete
174
    machine-readable copy of the corresponding source code, to be
175
    distributed under the terms of Sections 1 and 2 above on a medium
176
    customarily used for software interchange; or,
177

  
178
    c) Accompany it with the information you received as to the offer
179
    to distribute corresponding source code.  (This alternative is
180
    allowed only for noncommercial distribution and only if you
181
    received the program in object code or executable form with such
182
    an offer, in accord with Subsection b above.)
183

  
184
The source code for a work means the preferred form of the work for
185
making modifications to it.  For an executable work, complete source
186
code means all the source code for all modules it contains, plus any
187
associated interface definition files, plus the scripts used to
188
control compilation and installation of the executable.  However, as a
189
special exception, the source code distributed need not include
190
anything that is normally distributed (in either source or binary
191
form) with the major components (compiler, kernel, and so on) of the
192
operating system on which the executable runs, unless that component
193
itself accompanies the executable.
194

  
195
If distribution of executable or object code is made by offering
196
access to copy from a designated place, then offering equivalent
197
access to copy the source code from the same place counts as
198
distribution of the source code, even though third parties are not
199
compelled to copy the source along with the object code.
200

  
201
  4. You may not copy, modify, sublicense, or distribute the Program
202
except as expressly provided under this License.  Any attempt
203
otherwise to copy, modify, sublicense or distribute the Program is
204
void, and will automatically terminate your rights under this License.
205
However, parties who have received copies, or rights, from you under
206
this License will not have their licenses terminated so long as such
207
parties remain in full compliance.
208

  
209
  5. You are not required to accept this License, since you have not
210
signed it.  However, nothing else grants you permission to modify or
211
distribute the Program or its derivative works.  These actions are
212
prohibited by law if you do not accept this License.  Therefore, by
213
modifying or distributing the Program (or any work based on the
214
Program), you indicate your acceptance of this License to do so, and
215
all its terms and conditions for copying, distributing or modifying
216
the Program or works based on it.
217

  
218
  6. Each time you redistribute the Program (or any work based on the
219
Program), the recipient automatically receives a license from the
220
original licensor to copy, distribute or modify the Program subject to
221
these terms and conditions.  You may not impose any further
222
restrictions on the recipients' exercise of the rights granted herein.
223
You are not responsible for enforcing compliance by third parties to
224
this License.
225

  
226
  7. If, as a consequence of a court judgment or allegation of patent
227
infringement or for any other reason (not limited to patent issues),
228
conditions are imposed on you (whether by court order, agreement or
229
otherwise) that contradict the conditions of this License, they do not
230
excuse you from the conditions of this License.  If you cannot
231
distribute so as to satisfy simultaneously your obligations under this
232
License and any other pertinent obligations, then as a consequence you
233
may not distribute the Program at all.  For example, if a patent
234
license would not permit royalty-free redistribution of the Program by
235
all those who receive copies directly or indirectly through you, then
236
the only way you could satisfy both it and this License would be to
237
refrain entirely from distribution of the Program.
238

  
239
If any portion of this section is held invalid or unenforceable under
240
any particular circumstance, the balance of the section is intended to
241
apply and the section as a whole is intended to apply in other
242
circumstances.
243

  
244
It is not the purpose of this section to induce you to infringe any
245
patents or other property right claims or to contest validity of any
246
such claims; this section has the sole purpose of protecting the
247
integrity of the free software distribution system, which is
248
implemented by public license practices.  Many people have made
249
generous contributions to the wide range of software distributed
250
through that system in reliance on consistent application of that
251
system; it is up to the author/donor to decide if he or she is willing
252
to distribute software through any other system and a licensee cannot
253
impose that choice.
254

  
255
This section is intended to make thoroughly clear what is believed to
256
be a consequence of the rest of this License.
257

  
258
  8. If the distribution and/or use of the Program is restricted in
259
certain countries either by patents or by copyrighted interfaces, the
260
original copyright holder who places the Program under this License
261
may add an explicit geographical distribution limitation excluding
262
those countries, so that distribution is permitted only in or among
263
countries not thus excluded.  In such case, this License incorporates
264
the limitation as if written in the body of this License.
265

  
266
  9. The Free Software Foundation may publish revised and/or new versions
267
of the General Public License from time to time.  Such new versions will
268
be similar in spirit to the present version, but may differ in detail to
269
address new problems or concerns.
270

  
271
Each version is given a distinguishing version number.  If the Program
272
specifies a version number of this License which applies to it and "any
273
later version", you have the option of following the terms and conditions
274
either of that version or of any later version published by the Free
275
Software Foundation.  If the Program does not specify a version number of
276
this License, you may choose any version ever published by the Free Software
277
Foundation.
278

  
279
  10. If you wish to incorporate parts of the Program into other free
280
programs whose distribution conditions are different, write to the author
281
to ask for permission.  For software which is copyrighted by the Free
282
Software Foundation, write to the Free Software Foundation; we sometimes
283
make exceptions for this.  Our decision will be guided by the two goals
284
of preserving the free status of all derivatives of our free software and
285
of promoting the sharing and reuse of software generally.
286

  
287
			    NO WARRANTY
288

  
289
  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
290
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
291
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
292
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
293
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
294
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
295
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
296
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
297
REPAIR OR CORRECTION.
298

  
299
  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
300
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
301
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
302
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
303
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
304
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
305
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
306
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
307
POSSIBILITY OF SUCH DAMAGES.
308

  
309
		     END OF TERMS AND CONDITIONS
310

  
311

  
312
Appendix B: The LGPL License
313
============================
314

  
315
		  GNU LESSER GENERAL PUBLIC LICENSE
316
		       Version 2.1, February 1999
317

  
318
 Copyright (C) 1991, 1999 Free Software Foundation, Inc.
319
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
320
 Everyone is permitted to copy and distribute verbatim copies
321
 of this license document, but changing it is not allowed.
322

  
323
[This is the first released version of the Lesser GPL.  It also counts
324
 as the successor of the GNU Library Public License, version 2, hence
325
 the version number 2.1.]
326

  
327
			    Preamble
328

  
329
  The licenses for most software are designed to take away your
330
freedom to share and change it.  By contrast, the GNU General Public
331
Licenses are intended to guarantee your freedom to share and change
332
free software--to make sure the software is free for all its users.
333

  
334
  This license, the Lesser General Public License, applies to some
335
specially designated software packages--typically libraries--of the
336
Free Software Foundation and other authors who decide to use it.  You
337
can use it too, but we suggest you first think carefully about whether
338
this license or the ordinary General Public License is the better
339
strategy to use in any particular case, based on the explanations below.
340

  
341
  When we speak of free software, we are referring to freedom of use,
342
not price.  Our General Public Licenses are designed to make sure that
343
you have the freedom to distribute copies of free software (and charge
344
for this service if you wish); that you receive source code or can get
345
it if you want it; that you can change the software and use pieces of
346
it in new free programs; and that you are informed that you can do
347
these things.
348

  
349
  To protect your rights, we need to make restrictions that forbid
350
distributors to deny you these rights or to ask you to surrender these
351
rights.  These restrictions translate to certain responsibilities for
352
you if you distribute copies of the library or if you modify it.
353

  
354
  For example, if you distribute copies of the library, whether gratis
355
or for a fee, you must give the recipients all the rights that we gave
356
you.  You must make sure that they, too, receive or can get the source
357
code.  If you link other code with the library, you must provide
358
complete object files to the recipients, so that they can relink them
359
with the library after making changes to the library and recompiling
360
it.  And you must show them these terms so they know their rights.
361

  
362
  We protect your rights with a two-step method: (1) we copyright the
363
library, and (2) we offer you this license, which gives you legal
364
permission to copy, distribute and/or modify the library.
365

  
366
  To protect each distributor, we want to make it very clear that
367
there is no warranty for the free library.  Also, if the library is
368
modified by someone else and passed on, the recipients should know
369
that what they have is not the original version, so that the original
370
author's reputation will not be affected by problems that might be
371
introduced by others.
372

  
373
  Finally, software patents pose a constant threat to the existence of
374
any free program.  We wish to make sure that a company cannot
375
effectively restrict the users of a free program by obtaining a
376
restrictive license from a patent holder.  Therefore, we insist that
377
any patent license obtained for a version of the library must be
378
consistent with the full freedom of use specified in this license.
379

  
380
  Most GNU software, including some libraries, is covered by the
381
ordinary GNU General Public License.  This license, the GNU Lesser
382
General Public License, applies to certain designated libraries, and
383
is quite different from the ordinary General Public License.  We use
384
this license for certain libraries in order to permit linking those
385
libraries into non-free programs.
386

  
387
  When a program is linked with a library, whether statically or using
388
a shared library, the combination of the two is legally speaking a
389
combined work, a derivative of the original library.  The ordinary
390
General Public License therefore permits such linking only if the
391
entire combination fits its criteria of freedom.  The Lesser General
392
Public License permits more lax criteria for linking other code with
393
the library.
394

  
395
  We call this license the "Lesser" General Public License because it
396
does Less to protect the user's freedom than the ordinary General
397
Public License.  It also provides other free software developers Less
398
of an advantage over competing non-free programs.  These disadvantages
399
are the reason we use the ordinary General Public License for many
400
libraries.  However, the Lesser license provides advantages in certain
401
special circumstances.
402

  
403
  For example, on rare occasions, there may be a special need to
404
encourage the widest possible use of a certain library, so that it becomes
405
a de-facto standard.  To achieve this, non-free programs must be
406
allowed to use the library.  A more frequent case is that a free
407
library does the same job as widely used non-free libraries.  In this
408
case, there is little to gain by limiting the free library to free
409
software only, so we use the Lesser General Public License.
410

  
411
  In other cases, permission to use a particular library in non-free
412
programs enables a greater number of people to use a large body of
413
free software.  For example, permission to use the GNU C Library in
414
non-free programs enables many more people to use the whole GNU
415
operating system, as well as its variant, the GNU/Linux operating
416
system.
417

  
418
  Although the Lesser General Public License is Less protective of the
419
users' freedom, it does ensure that the user of a program that is
420
linked with the Library has the freedom and the wherewithal to run
421
that program using a modified version of the Library.
422

  
423
  The precise terms and conditions for copying, distribution and
424
modification follow.  Pay close attention to the difference between a
425
"work based on the library" and a "work that uses the library".  The
426
former contains code derived from the library, whereas the latter must
427
be combined with the library in order to run.
428

  
429
		  GNU LESSER GENERAL PUBLIC LICENSE
430
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
431

  
432
  0. This License Agreement applies to any software library or other
433
program which contains a notice placed by the copyright holder or
434
other authorized party saying it may be distributed under the terms of
435
this Lesser General Public License (also called "this License").
436
Each licensee is addressed as "you".
437

  
438
  A "library" means a collection of software functions and/or data
439
prepared so as to be conveniently linked with application programs
440
(which use some of those functions and data) to form executables.
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff