Файл: public/fck/fckeditor.pl
Строк: 96
<?php
#####
# 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; # <
$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">" ;
#// Render the configurations hidden field.
$cfgstr = &GetConfigFieldString();
$wk = $InstanceName."___Config";
$Html .= "<input type="hidden" id="$wk" value="$cfgstr">" ;
#// Render the editor IFRAME.
$wk = $InstanceName."___Frame";
$Html .= "<iframe id="$wk" src="$Link" width="$Width" height="$Height" frameborder="no" 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" wrap="virtual">$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(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;
?>