Qware_core/lib/package/wysi/summernote.php

246 lines
6.2 KiB
PHP
Executable File

<?php
/**
*<BR>
/**-----------------------------------------------
*
* Rooty, 2020 <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 summernote.php
*
*Ce fichier contient la classe summernote
*
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @since 2020/11/22
* @link www.rooty.me
* @version 0.1
* @package package
* @subpackage summernote
* @copyright Copyright &copy; 2020, Rooty
*/
if ( !defined('SYSTEM_IN') )
{
die("Hacking attempt");
}
/**
* Classe summernote
*
* Permet la gestion du wyziwig de phpSummerNote.
* @package package
* @subpackage summernote
*/
class SummerNote
{
/**
* @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 nom du formulaire
*/
var $lang = null;
/**
* @var chaine
* @desc valeur de la chaine html
*/
var $string = null;
/**
* @var chaine
* @desc valeur de la chaine html
*/
var $width = null;
/**
* @var chaine
* @desc valeur de la chaine html
*/
var $height = null;
/**
* @var chaine
* @desc valeur de la chaine html
*/
var $toolbar = null;
/**#@-*/
//
// Constructor
//
/**
* Constructeur de la classe summernote
*
* @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 summernote($name, $form, $lang, $string, $width, $height, $toolbar)
{
global $CONF_LIB_PATH;
$this->name =$name;
$this->form =$form;
$this->lang =$lang;
$this->string =$string;
$this->width =$width;
$this->height =$height;
$this->toolbar =$toolbar;
}
/**
* Display retourne la chaine d'affichage du wizi wig
*/
function SetContent($src)
{
global $CONF_DATA_PATH;
$this->string =$src;
return true;
}
/**
* Display retourne la chaine d'affichage du wizi wig
*/
function Display()
{
global $CONF_DATA_PATH;
$name =$this->name;
$form =$this->form;
$lang =$this->lang;
$string =$this->string;
$width =$this->width;
$height =$this->height;
$toolbar =$this->toolbar;
$element=$form.".".$name;
$html='<textarea class="form p-0 m-0" id="'.$name.'" name="'.$name.'" rows="12">'.$string.'</textarea>';
return $html;
}
/**
* ReturnData : retourne les données à partir de la chaine postée
* @return chaine au format html
*/
function ReturnContent()
{
global $_POST, $CONF_LIB_PATH;
$name =$this->name;
$form =$this->form;
$lang =$this->lang;
$message =$this->string;
/* require PEAR and the parser */
require_once('PEAR.php');
require_once('HTML/SummerNoteCodeParser.php');
/* get options from the ini file */
$config = parse_ini_file($CONF_LIB_PATH.'lib/package/wysi/summernote/summernotecodeparser.ini', true);
$options = &PEAR::getStaticProperty('HTML_SummerNoteCodeParser', '_options');
$options = $config['HTML_SummerNoteCodeParser'];
unset($options);
/* do yer stuff! */
$parser = new HTML_SummerNoteCodeParser();
$parser->setText($message);
$parser->parse();
$parsed = $parser->getParsed();
$parsed = str_replace(chr(10), "<br/>", $parsed);
return $parsed;
}
/**
* includeDependancy : retourne la chaine d'appel aux javascript indispensable
*
*<p>Retourne la chaine Javascript Avec le bon chemin (en fonction de SYSTEM_PATH)</p>
* @return chaine chaine d'appel javascript
*/
function includeDependancy()
{
$name =$this->name;
$form =$this->form;
$lang =$this->lang;
$string =$this->string;
$width =$this->width;
$height =$this->height;
$toolbar =$this->toolbar;
$element=$form.".".$name;
$arrayCallCss = array();
$arrayCallCss[] = "data/javascript/summernote-current/summernote-bs4.min.css";
mxCallCss($arrayCallCss);
$arrayCallJs = array();
$arrayCallJs[] = "data/javascript/summernote-current/summernote-bs4.min.js";
// $arrayCallJs[] = "data/javascript/summernote/plugins/file/201910/summernote-file.js";
$arrayCallJs[] = "data/javascript/summernote-current/lang/summernote-fr-FR.min.js";
mxCallJs($arrayCallJs);
$arrayRawJs[] = "\$(document).ready( function(){\$('#".$name."').summernote({lang: '".$lang."',toolbar: [['style', ['style','fontsize']],['font', ['bold', 'underline', 'clear']],['fontname', ['fontname']],['color',['backcolor','color']],['para', ['style','ul', 'ol', 'paragraph']],['table', ['table']],['hr', ['hr']],/* File plugin not enabled */ /* ['insert', ['file','link', 'picture', 'video']], */ ['insert', ['link', 'picture', 'video']],['view', ['fullscreen', 'codeview']],['misc', ['undo', 'redo']],],height: ".$height.",disableResizeEditor: true, /* disable resizing editor */ airMode: false,});});";
mxRawJs($arrayRawJs);
return true;
}
/**
* includeDependancy : retourne la chaine d'appel aux javascript indispensable
*
*<p>Retourne la chaine Javascript Avec le bon chemin (en fonction de SYSTEM_PATH)</p>
* @return chaine chaine d'appel javascript
*/
function includeRawJs()
{
$name =$this->name;
// $form =$this->form;
$lang =$this->lang;
// $string =$this->string;
$width =$this->width;
$height =$this->height;
// $toolbar =$this->toolbar;
$arrayRawJs[] = "\$(document).ready( function(){\$('#".$name."').summernote({lang: '".$lang."',toolbar: [['style', ['style','fontsize']],['font', ['bold', 'underline', 'clear']],['fontname', ['fontname']],['color',['backcolor','color']],['para', ['style','ul', 'ol', 'paragraph']],['table', ['table']],['hr', ['hr']],/* File plugin not enabled */ /* ['insert', ['file','link', 'picture', 'video']], */ ['insert', ['link', 'picture', 'video']],['view', ['fullscreen', 'codeview']],['misc', ['undo', 'redo']],],height: ".$height.",disableResizeEditor: true, /* disable resizing editor */ airMode: false,});});";
mxRawJs($arrayRawJs);
return true;
}
/**
* 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;';
}
}
?>