)
function __construct($instanceName) {
$this->InstanceName = $instanceName;
$this->BasePath = '/fckeditor/';
$this->Width = '100%';
$this->Height = '200';
$this->ToolbarSet = 'Default';
$this->Value = '';
$this->Config = array();
}
// PHP 4 Contructor
function FCKeditor($instanceName) {
$this->__construct($instanceName);
}
function Create() {
echo $this->CreateHtml();
}
function CreateHtml() {
$HtmlValue = htmlspecialchars($this->Value);
$Html = '
';
if ($this->IsCompatible()) {
if (isset($_GET['fcksource']) && $_GET['fcksource'] == "true")
$File = 'fckeditor.original.html'; else
$File = 'fckeditor.html';
$Link = "{$this->BasePath}editor/{$File}?InstanceName={$this->InstanceName}";
if ($this->ToolbarSet != '')
$Link .= "&Toolbar={$this->ToolbarSet}";
// Render the linked hidden field.
$Html .= "InstanceName}\" name=\"{$this->InstanceName}\" value=\"{$HtmlValue}\" style=\"display:none\" />";
// Render the configurations hidden field.
$Html .= "InstanceName}___Config\" value=\"" . $this->GetConfigFieldString() . "\" style=\"display:none\" />";
// Render the editor IFRAME.
$Html .= "";
} else {
if (strpos($this->Width, '%') === false)
$WidthCSS = $this->Width . 'px'; else
$WidthCSS = $this->Width;
if (strpos($this->Height, '%') === false)
$HeightCSS = $this->Height . 'px'; else
$HeightCSS = $this->Height;
$Html .= "";
}
$Html .= '
';
return $Html;
}
function IsCompatible() {
global $HTTP_USER_AGENT;
if (isset($HTTP_USER_AGENT))
$sAgent = $HTTP_USER_AGENT; else
$sAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($sAgent, 'MSIE') !== false && strpos($sAgent, 'mac') === false && strpos($sAgent, 'Opera') === false) {
$iVersion = (float) substr($sAgent, strpos($sAgent, 'MSIE') + 5, 3);
return ($iVersion >= 5.5);
} else if (strpos($sAgent, 'Gecko/') !== false) {
$iVersion = (int) substr($sAgent, strpos($sAgent, 'Gecko/') + 6, 8);
return ($iVersion >= 20030210);
} else
return false;
}
function GetConfigFieldString() {
$sParams = '';
$bFirst = true;
foreach ($this->Config as $sKey => $sValue) {
if ($bFirst == false)
$sParams .= '&'; else
$bFirst = false;
if ($sValue === true)
$sParams .= $this->EncodeConfig($sKey) . '=true'; else if ($sValue === false)
$sParams .= $this->EncodeConfig($sKey) . '=false'; else
$sParams .= $this->EncodeConfig($sKey) . '=' . $this->EncodeConfig($sValue);
}
return $sParams;
}
function EncodeConfig($valueToEncode) {
$chars = array('&' => '%26', '=' => '%3D', '"' => '%22');
return strtr($valueToEncode, $chars);
}
}
?>