diff options
Diffstat (limited to 'httemplate/elements/fckeditor/fckeditor.pl')
-rw-r--r-- | httemplate/elements/fckeditor/fckeditor.pl | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/httemplate/elements/fckeditor/fckeditor.pl b/httemplate/elements/fckeditor/fckeditor.pl new file mode 100644 index 000000000..45804318c --- /dev/null +++ b/httemplate/elements/fckeditor/fckeditor.pl @@ -0,0 +1,139 @@ +#####
+# FCKeditor - The text editor for Internet - http://www.fckeditor.net
+# Copyright (C) 2003-2007 Frederico Caldeira Knabben
+#
+# == BEGIN LICENSE ==
+#
+# Licensed under the terms of any of the following licenses at your
+# choice:
+#
+# - GNU General Public License Version 2 or later (the "GPL")
+# http://www.gnu.org/licenses/gpl.html
+#
+# - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+# http://www.gnu.org/licenses/lgpl.html
+#
+# - Mozilla Public License Version 1.1 or later (the "MPL")
+# http://www.mozilla.org/MPL/MPL-1.1.html
+#
+# == END LICENSE ==
+#
+# This is the integration file for Perl.
+#####
+
+#my $InstanceName;
+#my $BasePath;
+#my $Width;
+#my $Height;
+#my $ToolbarSet;
+#my $Value;
+#my %Config;
+
+sub FCKeditor
+{
+
+ local($instanceName) = @_;
+ $InstanceName = $instanceName;
+ $BasePath = '/fckeditor/';
+ $Width = '100%';
+ $Height = '200';
+ $ToolbarSet = 'Default';
+ $Value = '';
+}
+
+sub Create
+{
+ print &CreateHtml();
+}
+
+sub specialchar_cnv
+{
+
+ local($ch) = @_;
+
+ $ch =~ s/&/&/g; # &
+ $ch =~ s/\"/"/g; #"
+ $ch =~ s/\'/'/g; # '
+ $ch =~ s/</</g; # <
+ $ch =~ s/>/>/g; # >
+ return($ch);
+}
+
+sub CreateHtml
+{
+
+ $HtmlValue = &specialchar_cnv($Value);
+ $Html = '<div>' ;
+ if(&IsCompatible()) {
+ $Link = $BasePath . "editor/fckeditor.html?InstanceName=$InstanceName";
+ if($ToolbarSet ne '') {
+ $Link .= "&Toolbar=$ToolbarSet";
+ }
+ #// Render the linked hidden field.
+ $Html .= "<input type=\"hidden\" id=\"$InstanceName\" name=\"$InstanceName\" value=\"$HtmlValue\" style=\"display:none\" />" ;
+
+ #// Render the configurations hidden field.
+ $cfgstr = &GetConfigFieldString();
+ $wk = $InstanceName."___Config";
+ $Html .= "<input type=\"hidden\" id=\"$wk\" value=\"$cfgstr\" style=\"display:none\" />" ;
+
+ #// Render the editor IFRAME.
+ $wk = $InstanceName."___Frame";
+ $Html .= "<iframe id=\"$wk\" src=\"$Link\" width=\"$Width\" height=\"$Height\" frameborder=\"0\" scrolling=\"no\"></iframe>";
+ } else {
+ if($Width =~ /\%/g){
+ $WidthCSS = $Width;
+ } else {
+ $WidthCSS = $Width . 'px';
+ }
+ if($Height =~ /\%/g){
+ $HeightCSS = $Height;
+ } else {
+ $HeightCSS = $Height . 'px';
+ }
+ $Html .= "<textarea name=\"$InstanceName\" rows=\"4\" cols=\"40\" style=\"width: $WidthCSS; height: $HeightCSS\">$HtmlValue</textarea>";
+ }
+ $Html .= '</div>';
+ return($Html);
+}
+
+sub IsCompatible
+{
+
+ $sAgent = $ENV{'HTTP_USER_AGENT'};
+ if(($sAgent =~ /MSIE/i) && !($sAgent =~ /mac/i) && !($sAgent =~ /Opera/i)) {
+ $iVersion = substr($sAgent,index($sAgent,'MSIE') + 5,3);
+ return($iVersion >= 5.5) ;
+ } elsif($sAgent =~ /Gecko\//i) {
+ $iVersion = substr($sAgent,index($sAgent,'Gecko/') + 6,8);
+ return($iVersion >= 20030210) ;
+ } else {
+ return(0); # 2.0 PR fix
+ }
+}
+
+sub GetConfigFieldString
+{
+ $sParams = '';
+ $bFirst = 0;
+ foreach $sKey (keys %Config) {
+ $sValue = $Config{$sKey};
+ if($bFirst == 1) {
+ $sParams .= '&';
+ } else {
+ $bFirst = 1;
+ }
+ $k = &specialchar_cnv($sKey);
+ $v = &specialchar_cnv($sValue);
+ if($sValue eq "true") {
+ $sParams .= "$k=true";
+ } elsif($sValue eq "false") {
+ $sParams .= "$k=false";
+ } else {
+ $sParams .= "$k=$v";
+ }
+ }
+ return($sParams);
+}
+
+1;
|