) 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); } } ?>