* * * This software is protected by copyright, please * read the file COPYRIGHT. * This program is distributed in the hope that it * will be useful, but without any warranty; without * even the implied warranty of merchantability or * fitness for a particular purpose. Please * read the file LICENCE. * *Fichier fck.php * *Ce fichier contient la classe fck * * @author Initiance * @since 2005/03/09 * @link www.rooty.me * @version 0.3 * @package package * @subpackage FCK * @copyright Copyright © 2004-2005, Initiance */ if ( !defined('SYSTEM_IN') ) { die("Hacking attempt"); } /** * Classe FCK * * Permet la gestion du wyziwig FCKeditor. * @package package * @subpackage fck */ class fck { /**#@+ * @access private */ /** * @var chaine * @desc nom de l'élément du formulaire */ var $name = null; /** * @var chaine * @desc nom du formulaire */ var $form = null; /** * @var chaine * @desc valeur de la chaine html */ var $string = null; /** * @var booleen * @desc affichage des smiles oui/non */ var $smile = null; /**#@-*/ // // Constructor // /** * Constructeur de la classe fck * * @param chaine nom du champ * @param chaine nom du formulaire * @param chaine valeur de la chaine à afficher * @param chaine vrai ou faux pour l'utilisation des icones */ function fck($name, $form, $string, $smile=true, $width, $height, $toolbar) { global $CONF_LIB_PATH; require_once($CONF_LIB_PATH."lib/package/wysi/fck/fckeditor.php"); if (strtolower($toolbar)=="default") $toolbar="Default"; if (strtolower($toolbar)=="basic") $toolbar="Basic"; // if ( $toolbar!="Default" && $toolbar!="Basic") // $toolbar="Default"; $this->name =$name; $this->form =$form; $this->string =$string; $this->smile =$smile; $this->width =$width; $this->height =$height; $this->toolbar =$toolbar; } /** * Display retourne la chaine d'affichage du wizi wig */ function Display() { global $SYSTEM_LIB_PATH; $fckeditor=new FCKeditor($this->name); $fckeditor->Value=$this->string; $fckeditor->ToolbarSet=$this->toolbar; $fckeditor->BasePath=$SYSTEM_LIB_PATH."lib/package/wysi/fck/"; $fckeditor->InstanceName = $this->name; $fckeditor->Width = $this->width; $fckeditor->Height = $this->height; /** * @author Initiance * Modification d'août 2005 du script d'origine * teste l'adresse du serveur afin de reconstituer l'arbo pour les liens des styles et css */ // if (function_exists("checkdnsrr") && checkdnsrr($_SERVER['HTTP_HOST'])) // { // $name_server = "http://".$_SERVER['SERVER_NAME']; // } // else // { // $name_server = "http://".$_SERVER['HTTP_HOST']; // } /** * @author NH Systeme * Les lignes commentées ci dessus ne peut pas fonctionner lorsque l'hôte local * ne peut pas interroger un serveur DNS (checkdnsrr()). De plus ces lignes ne * prennent pas en compte la cas où l'hôte héberge des espaces de publications * basés sur des hôtes virtuels nommés (à contrario des hôtes virtuels par IP) * @ TODO Implémenter la construction de l'url absolue en tenat compte du pro- * tocole utilisé (http/https). */ //var_dump($_SERVER["SCRIPT_URI"]); // if( is_null($_SERVER["SCRIPT_URI"]) ){ // $protocolHTTP = "http"; // } else { // if (strpos($_SERVER["SCRIPT_URI"],'https://')===False) { // $protocolHTTP = "http"; // } else { // $protocolHTTP = "https"; // } // } // $name_server = $protocolHTTP."://".$_SERVER['SERVER_NAME']; $name_server = "http://".$_SERVER['SERVER_NAME']; $tabParseUrl = parse_url($name_server.$_SERVER["SCRIPT_NAME"]); $urlServer = $name_server . substr( $tabParseUrl["path"], 0, (strrpos($tabParseUrl["path"],"/"))); /* * @author Initiance * Modification d'août 2005 du script d'origine * * Redéfinition et dynamisation de la configuration de FCKeditor ("fckconfig.js") * -> définition des styles pour la template courante * -> définition de la feuille de style associée * -> définition du manager d'image avec passage en paramètre du noeud d'entrée de l'utilisateur * -> définition du fichier de configuration FCK personnalisé (hors dossier du package = facilite l'évolution et la mise à jour FCKeditor) */ /*Tests sur la présence des fichiers*/ $boolCss = false; #Fichier css des styles de la template Granilim if (file_exists( $GLOBALS['SYSTEM_TEMPLATE_PATH'] . $GLOBALS['SYSTEM_USER_SESSION']->getCurrentTemplate()."/css/fck.css")) { $cssFCK = $GLOBALS['SYSTEM_TEMPLATE_PATH'] . $GLOBALS['SYSTEM_USER_SESSION']->getCurrentTemplate()."/css/fck.css"; $cssFCK = $urlServer . substr($cssFCK, 1, strlen($cssFCK)); $boolCss = true; } else { $cssFCK = $GLOBALS['SYSTEM_TEMPLATE_PATH'] . $GLOBALS['SYSTEM_TEMPLATE_DEFAULT_DIR']."/style.css"; $cssFCK = $urlServer . substr($cssFCK, 1, strlen($cssFCK)); } #Fichier xml FCK des styles if (file_exists( $GLOBALS['SYSTEM_TEMPLATE_PATH'] . $GLOBALS['SYSTEM_USER_SESSION']->getCurrentTemplate()."/css/fckstyles.xml") && $boolCss == true) { $stylesFCK = $GLOBALS['SYSTEM_TEMPLATE_PATH'] . $GLOBALS['SYSTEM_USER_SESSION']->getCurrentTemplate()."/css/fckstyles.xml"; $stylesFCK = $urlServer . substr($stylesFCK, 1, strlen($stylesFCK)); } else { $stylesFCK = $GLOBALS['SYSTEM_TEMPLATE_PATH'] .$GLOBALS['SYSTEM_TEMPLATE_DEFAULT_DIR']."/css/fckstyles.xml"; $stylesFCK = $urlServer . substr($stylesFCK, 1, strlen($stylesFCK)); } /*Configurations définies*/ $fckeditor->Config["EditorAreaCSS"] = $cssFCK; $fckeditor->Config["StylesXmlPath"] = $stylesFCK; $fckeditor->Config["LinkBrowser"] = "true" ; //Désactive l'option des liens $fckeditor->Config["ImageUpload"] = "true"; //Désactive l'option d'upload FCK $fckeditor->Config["ImageBrowser"] = "true"; //$fckeditor->Config["ImageBrowserURL"] = $SYSTEM_LIB_PATH . '../../browser/manager.php?imgDirectory='.$GLOBALS["SYSTEM_USER_SESSION"]->entryNodeId; //$fckeditor->Config["ImageBrowserURL"] = '../filemanager/browser/manager.php?imgDirectory='.$GLOBALS["SYSTEM_USER_SESSION"]->entryNodeId; $fckeditor->Config['CustomConfigurationsPath'] = $SYSTEM_LIB_PATH."../../" .'configgranilimfck.js' ; /* * FIN DES MODIFICATIONS */ $html=$fckeditor->CreateHtml(); return $html; } /** * ReturnData : retourne les données à partir de la chaine postée * @return chaine au format html */ function ReturnData() { global $_POST; $message=$_POST[$this->name]; return $message; } /** * ReturnDependancy : retourne la chaine d'appel aux javascript indispenssable * *

Retourne la chaine Javascript Avec le bon chemin (en fonction de SYSTEM_PATH)

* * @return chaine chaine d'appel javascript */ function ReturnDependency() { return ''; } /** * IsVideJs :permet de savoir en javascript si le champ est vide * *

donne le nom de la fonction ou l'appel permettant de determiner si vide en js

* * @return chaine chaine d'appel javascript */ function IsVideJs() { return '(document.'.$this->form.'.'.$this->name.'.value=="")?true:false;'; } } ?>