##### # FCKeditor - The text editor for internet # Copyright (C) 2003-2004 Frederico Caldeira Knabben # # Licensed under the terms of the GNU Lesser General Public License: # http://www.opensource.org/licenses/lgpl-license.php # # For further information visit: # http://www.fckeditor.net/ # # File Name: fckeditor.pl # This is the integration file for Perl. # # Version: 2.0 RC3 # Modified: 2005-02-28 15:50:35 # # File Authors: # Takashi Yamaguchi (jack@omakase.net) ##### #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; # > return($ch); } sub CreateHtml { $HtmlValue = &specialchar_cnv($Value); $Html = '
' ; if(&IsCompatible()) { $Link = $BasePath . "editor/fckeditor.html?InstanceName=$InstanceName"; if($ToolbarSet ne '') { $Link .= "&Toolbar=$ToolbarSet"; } #// Render the linked hidden field. $Html .= "" ; #// Render the configurations hidden field. $cfgstr = &GetConfigFieldString(); $wk = $InstanceName."___Config"; $Html .= "" ; #// Render the editor IFRAME. $wk = $InstanceName."___Frame"; $Html .= ""; } else { if($Width =~ /\%/g){ $WidthCSS = $Width; } else { $WidthCSS = $Width . 'px'; } if($Height =~ /\%/g){ $HeightCSS = $Height; } else { $HeightCSS = $Height . 'px'; } $Html .= ""; } $Html .= '
'; 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(1); } } 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;