= 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; }