258 lines
7.2 KiB
PHP
Executable File

<?php
/**-----------------------------------------------
*
* Rooty, 2018 <rooty@rooty.me>
*
*
* 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 <www.initiance.com|olivier@initiance.com|martial@initiance.com>
* @since 2005/03/09
* @link www.rooty.me
* @version 0.3
* @package package
* @subpackage FCK
* @copyright Copyright &copy; 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 <www.initiance.com|martial@initiance.com>
* 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 <www.nh-systeme.fr|t.champomier@nh-systeme.fr>
* 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 <www.initiance.com|martial@initiance.com>
* 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
*
*<p>Retourne la chaine Javascript Avec le bon chemin (en fonction de SYSTEM_PATH)</p>
*
* @return chaine chaine d'appel javascript
*/
function ReturnDependency()
{
return '';
}
/**
* IsVideJs :permet de savoir en javascript si le champ est vide
*
*<p>donne le nom de la fonction ou l'appel permettant de determiner si vide en js</p>
*
* @return chaine chaine d'appel javascript
*/
function IsVideJs()
{
return '(document.'.$this->form.'.'.$this->name.'.value=="")?true:false;';
}
}
?>