This post explains how to integrate fckeditor in smarty application.
Integration of fckeditor in smarty application
1 . in libs\plugins write the foolowing file called function.fckeditor.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <?php /** * Smarty plugin * @package Smarty * @subpackage plugins */ /** * Smarty function plugin * Requires PHP >= 4.3.0 * ————————————————————- * Type: function * Name: fckeditor * Version: 1.0 * Author: gazoot (gazoot care of gmail dot com) * Purpose: Creates a FCKeditor, a very powerful textarea replacement. * ————————————————————- * @param InstanceName Editor instance name (form field name) * @param BasePath optional Path to the FCKeditor directory. Need only be set once on page. Default: /FCKeditor/ * @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 * * 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['BasePath'])) { $base_arguments['BasePath'] = $params['BasePath']; } else if(empty($base_arguments['BasePath'])) { $base_arguments['BasePath'] = '/FCKeditor/'; } $base_arguments['InstanceName'] = $params['InstanceName']; if(isset($params['Value'])) $base_arguments['Value'] = $params['Value']; else $base_arguments['Value'] = "; if(isset($params['Width'])) $base_arguments['Width'] = $params['Width']; if(isset($params['Height'])) $base_arguments['Height'] = $params['Height']; if(isset($params['ToolbarSet'])) $base_arguments['ToolbarSet'] = $params['ToolbarSet']; 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); $out = "; if($init) { $out .= '<script type="text/javascript" src="' . $base_arguments['BasePath'] . 'fckeditor.js"></script>'; } $out .= "\n<script type="text/javascript">\n"; $out .= "var oFCKeditor = new FCKeditor('" . $base_arguments['InstanceName'] . "');\n"; foreach($base_arguments as $key => $value) { if(!is_bool($value)) { // Fix newlines, javascript cannot handle multiple line strings very well. $value = '"' . preg_replace("/[\r\n]+/", '" + $0?', addslashes($value)) . '"'; } $out .= "oFCKeditor.$key = $value; "; } foreach($config_arguments as $key => $value) { if(!is_bool($value)) { $value = '"' . preg_replace("/[\r\n]+/", '" + $0?', addslashes($value)) . '"'; } $out .= "oFCKeditor.Config["$key"] = $value; "; } $out .= "\noFCKeditor.Create();\n"; $out .= "</script>\n"; return $out; } /* vim: set expandtab: */ ?> |
2 download the fckeditor from the http://www.fckeditor.net/ and save it in the smarty folder
3 in the php file we include the fckeditor.php file
4 in the tpl file we write the following code
1 | {fckeditor BasePath="../includes/fckeditor/" InstanceName="news_desc" Width="650px" Height="300px" Value="$news_desc"} |
6 Comments
jagoanweb · December 23, 2009 at 8:18 am
mmm…
do you know about create captcha using PHP?
actually i have to apply it to my toko online 🙂
Jim Li · February 1, 2010 at 4:23 am
@anil2u nice post!
@jagoanweb checkout http://www.phpcaptcha.org/, i used it on several occasions, pretty configurable and easy to use.
toufeeq ahmad · July 16, 2010 at 5:21 am
How to integrate fckeditor in smarty application
0x99 · December 9, 2011 at 10:49 am
waw, amazing , nice tuts, i want to try it 😀 :-bd
Engneird · January 11, 2013 at 2:07 pm
Working very well.Nice one!!!
How to integrate fckeditor in smarty application? « ANIL KUMAR … Scripts Rss · November 27, 2009 at 3:03 am
[…] posted here: How to integrate fckeditor in smarty application? « ANIL KUMAR … By admin | category: Object, Smarty | tags: file-called, foolowing, integrate-fckeditor, […]