mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-06 17:48:25 +01:00
96 lines
3.6 KiB
PHP
96 lines
3.6 KiB
PHP
<?php
|
|
/**
|
|
* Smarty plugin
|
|
* @package Smarty
|
|
* @subpackage plugins
|
|
*/
|
|
|
|
/**
|
|
* Smarty function plugin
|
|
* Requires PHP >= 4.3.0
|
|
* -------------------------------------------------------------
|
|
* Type: function
|
|
* Name: fckeditor
|
|
* Version: 1.0
|
|
* Author: Auguria info@auguria.net
|
|
* Purpose: Creates a FCKeditor, a very powerful textarea replacement.
|
|
* -------------------------------------------------------------
|
|
* @param InstanceName Editor instance name (form field name)
|
|
* @param Value optional data that control will start with, default is taken from the javascript file
|
|
* @param Width optional width (css units)
|
|
* @param Height optional height (css units)
|
|
* @param ToolbarSet optional what toolbar to use from configuration
|
|
* @param CheckBrowser optional check the browser compatibility when rendering the editor
|
|
* @param DisplayErrors optional show error messages on errors while rendering the editor
|
|
* @param DocumentRoot document root of application
|
|
* @param DocumentURLRoot document url root of application
|
|
*
|
|
* Default values for optional parameters (except BasePath) are taken from fckeditor.js.
|
|
*
|
|
* All other parameters used in the function will be put into the configuration section,
|
|
* CustomConfigurationsPath is useful for example.
|
|
* See http://wiki.fckeditor.net/Developer%27s_Guide/Configuration/Configurations_File for more configuration info.
|
|
*/
|
|
|
|
|
|
function smarty_function_fckeditor($params, &$smarty)
|
|
{
|
|
if(!isset($params['InstanceName']) || empty($params['InstanceName']))
|
|
{
|
|
$smarty->trigger_error('fckeditor: required parameter "InstanceName" missing');
|
|
}
|
|
|
|
static $base_arguments = array();
|
|
static $config_arguments = array();
|
|
|
|
// Test if editor has been loaded before
|
|
if(!count($base_arguments)) $init = TRUE;
|
|
else $init = FALSE;
|
|
|
|
// BasePath must be specified once.
|
|
if(isset($params['DocumentRoot']))
|
|
{
|
|
$base_arguments['DocumentRoot'] = $params['DocumentRoot'];
|
|
}
|
|
else if(empty($base_arguments['DocumentRoot']))
|
|
{
|
|
$base_arguments['DocumentRoot'] = '';
|
|
}
|
|
|
|
$base_arguments['InstanceName'] = $params['InstanceName'];
|
|
|
|
|
|
if(isset($params['CheckBrowser'])) $base_arguments['CheckBrowser'] = $params['CheckBrowser'];
|
|
if(isset($params['DisplayErrors'])) $base_arguments['DisplayErrors'] = $params['DisplayErrors'];
|
|
|
|
require_once($params['DocumentRoot']."/includes/fckeditor/fckeditor.php");
|
|
$editor = new FCKeditor( $params['InstanceName']);
|
|
$editor->BasePath = $params['DocumentUrlRoot'].'/includes/fckeditor/' ;
|
|
$editor->Value = $params['Value'];
|
|
$editor->Height = $params['Height'];
|
|
$editor->ToolbarSet = $params['ToolbarSet'];
|
|
$editor->Config['AutoDetectLanguage'] = 'true';
|
|
$editor->Config['ToolbarLocation'] = $params['ToolbarLocation'] ? $params['ToolbarLocation'] : 'In';
|
|
$editor->Config['ToolbarStartExpanded'] = $params['ToolbarStartExpanded'];
|
|
|
|
// Use all other parameters for the config array (replace if needed)
|
|
$modulepart='fckeditor';
|
|
$editor->Config['UserFilesPath'] = '/viewimage.php?modulepart='.$modulepart.'&file=';
|
|
$editor->Config['UserFilesAbsolutePath'] = $params['DocumentUrlRoot'].'/'.$modulepart.'/' ;
|
|
|
|
$editor->Config['LinkBrowser']=($params['LinkBrowser']?'true':'false');
|
|
$editor->Config['ImageBrowser']=($params['ImageBrowser']?'true':'false');
|
|
|
|
if ($params['Theme'] && file_exists($params['DocumentRoot'].'/theme/'.$params['Theme']))
|
|
{
|
|
$editor->Config['CustomConfigurationsPath'] = $params['DocumentUrlRoot'].'/theme/'.$params['Theme'].'/fckeditor/fckconfig.js';
|
|
$editor->Config['SkinPath'] = $params['DocumentUrlRoot'].'/theme/'.$params['Theme'].'/fckeditor/';
|
|
}
|
|
|
|
$editor->Create();
|
|
return "";
|
|
}
|
|
|
|
/* vim: set expandtab: */
|
|
|
|
?>
|