= 4.3.0
* -------------------------------------------------------------
* Type: block
* Name: ckeditor
* Version: 1.0
* Author: gazoot (gazoot care of gmail dot com)
* Purpose: Creates a CKeditor, a very powerful textarea replacement.
* -------------------------------------------------------------
* @param InstanceName Editor instance name (form field name)
* @param BasePath optional Path to the CKeditor directory. Need only be set once on page. Default: /ckeditor/
* @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
*
* Default values for optional parameters (except BasePath) are taken from ckeditor.js.
*
* All other parameters used in the function will be put into the configuration section,
* CustomConfigurationsPath is useful for example.
* See http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Setting_Configurations for more configuration info.
*/
function smarty_block_ckeditor($params, $content, &$smarty)
{
if (isset($content)) {
if(!isset($params["name"]) || empty($params["name"]))
{
$smarty->trigger_error('ckeditor: required parameter "name" missing');
}
static $base_arguments = [];
static $config_arguments = [];
// Test if editor has been loaded before
if(!count($base_arguments)) $init = TRUE;
else $init = FALSE;
// BasePath must be specified once.
if(isset($params["BasePath"]))
{
$base_arguments["BasePath"] = $params["BasePath"];
}
else if(empty($base_arguments["BasePath"]))
{
$base_arguments["BasePath"] = "/ckeditor/jscripts/";
}
$base_arguments["InstanceName"] = $params["name"];
$base_arguments["Value"] = $content;
/* Text Area Compatibility */
if(isset($params["width"])) $base_arguments["Width"] = $params["width"];
if(isset($params["height"])) $base_arguments["Height"] = $params["height"];
else $base_arguments["Height"] = 300;
/* TODO: Allow setting of these in the admin page */
if(isset($params["ToolbarSet"])) $base_arguments["ToolbarSet"] = $params["ToolbarSet"];
else
$base_arguments["ToolbarSet"] = "Bitweaver";
if(isset($params["CheckBrowser"])) $base_arguments["CheckBrowser"] = $params["CheckBrowser"];
if(isset($params["DisplayErrors"])) $base_arguments["DisplayErrors"] = $params["DisplayErrors"];
// Use all other parameters for the config array (replace if needed)
$other_arguments = array_diff_assoc($params, $base_arguments);
$config_arguments = array_merge($config_arguments, $other_arguments);
unset($config_arguments["name"]);
$out = "";
if($init)
{
$out .= '';
}
$out .= "\n\n";
}
return $out;
}