From a29030a6314995ff07bc9773b3df924664538d96 Mon Sep 17 00:00:00 2001 From: cdelambert <cdelambert> Date: Fri, 14 Mar 2008 12:01:43 +0000 Subject: [PATCH] Tag Smarty for FCKEditor --- .../libs/plugins/function.fckeditor.php | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 external-libs/smarty/libs/plugins/function.fckeditor.php diff --git a/external-libs/smarty/libs/plugins/function.fckeditor.php b/external-libs/smarty/libs/plugins/function.fckeditor.php new file mode 100644 index 00000000000..0dbaa07a7bf --- /dev/null +++ b/external-libs/smarty/libs/plugins/function.fckeditor.php @@ -0,0 +1,96 @@ +<?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: */ + +?> \ No newline at end of file -- GitLab