Your Ad Here

Home » Smarty »

5

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"}

 


You may like these posts

    Events calendar implementation in oscommerce using php codeHow to add stylesheets and javascript in smartyWhat is smarty and uses of smarty?PHP Charts with using Google API

 
Tags: ,

5 Comments

  1. jagoanweb says:

    mmm…
    do you know about create captcha using PHP?
    actually i have to apply it to my toko online :)

  2. Jim Li says:

    @anil2u nice post!
    @jagoanweb checkout http://www.phpcaptcha.org/, i used it on several occasions, pretty configurable and easy to use.

  3. How to integrate fckeditor in smarty application

  4. 0x99 says:

    waw, amazing , nice tuts, i want to try it :D :-bd

Leave a Reply