smarty模板中怎么使用fckeditor

在Smarty中调用FCKeditor的文件

 代码如下 复制代码

//FCKeditor in smarty
 //Rossy.cn@gmail.com
 //2007-09-12 13:14
 
require_once("conn.php");
 require_once("class/Smarty.class.php");
 
$smarty = new Smarty();
 $smarty->template_dir = "../templates";
 $smarty->compile_dir  = "../templates_c";
 $smarty->left_delimiter = "<{";
 $smarty->right_delimiter = "}>";
 
$editor = new FCKeditor("Content") ;
 $editor->BasePath   = "../FCKeditor/";
 $editor->ToolbarSet = "Basic";
 $editor->Value      = "";
 $FCKeditor = $editor->CreateHtml();
 
$smarty->assign('Title',"Rossy is here waiting for you");
 $smarty->assign('FCKeditor',$FCKeditor);  
 $smarty->display('template.tpl');

但,运用这一种方法在编辑资料的时候竟然FCKeditor传不了值,只是生成了一个空值的编辑器,所以只能换一种方法:

 代码如下 复制代码

//FCKeditor in smarty
 //Rossy.cn@gmail.com
 //2007-09-12 13:18
 
require_once("conn.php");
 require_once("class/Smarty.class.php");
 
$smarty = new Smarty();
 $smarty->template_dir = "../templates";
 $smarty->compile_dir  = "../templates_c";
 $smarty->left_delimiter = "<{";
 $smarty->right_delimiter = "}>";
 
$editor = new FCKeditor("Content") ;
 $editor->BasePath   = "../FCKeditor/";
 $editor->ToolbarSet = "Basic";
 $editor->Value      = "Here is a example of smarty and FCKeditor";
 
$smarty->assign('Title',"Rossy is here waiting for you");
 $smartyl->assign_by_ref("FCKeditor",$editor);
 $smarty->display('template.tpl');

调用

 代码如下 复制代码

<htm>
<head>
<title>example of smarty use fckeditor</title>
</head>
 
<body>
<P>Example</p>
<p>title:<{$Title}></p>
<p></p>
<p>content:</p>
<p><{$FCKeditor}></p>
</body>
</html>

例2

这里我通过smarty的插件机制,可以更方便的在smarty中集成fckeditor,在smarty的plugin目录中新建文件function.fck.php

内容如下

 代码如下 复制代码

<?php
function smarty_function_fck($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();

 if(!count($base_arguments))
  $init = TRUE;
 else
  $init = FALSE;

 if(isset($params['BasePath']))
 {
  $base_arguments['BasePath'] = $params['BasePath'];
 }
 else if(empty($base_arguments['BasePath']))
 {

//这里设置默认的fck所在的目录,相对于要使用fck的程序的目录
  $base_arguments['BasePath'] = ‘../plugins/fckeditor/’;
 }

 $base_arguments['InstanceName'] = $params['InstanceName'];

 if(isset($params['Value'])) $base_arguments['Value'] = $params['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(“/[rn]+/”, ‘” + $0″‘, addslashes($value)) . ‘”‘;
  }
  $out .= “oFCKeditor.$key = $value; “;
 }

 foreach($config_arguments as $key => $value)
 {
  if(!is_bool($value))
  {
   $value = ‘”‘ . preg_replace(“/[rn]+/”, ‘” + $0″‘, addslashes($value)) . ‘”‘;
  }
  $out .= “oFCKeditor.Config["$key"] = $value; “;
 }

 $out .= “noFCKeditor.Create();n”;
 $out .= “</script>n”;

 return $out;
}
?>

使用代码

 代码如下 复制代码
{fck InstanceName=”body”  BasePath=“../plugins/fckeditor/” Value=$news_info.body Width=”100%” Height=”400″}

可以自定义参数 ToolbarSet-使用的工具栏, BasePath-fck相对于当前脚本的目录,InstanceName-要赋予的$_POST变量名, Value-默认值等

时间: 2024-09-19 09:35:12

smarty模板中怎么使用fckeditor的相关文章

smarty模板中拼接字符串的方法

 这篇文章主要介绍了smarty模板中拼接字符串的方法,需要的朋友可以参考下 PHP页面传到Smarty模板上的变量(这里用,在Smarty上创建两个变量代替)   代码如下: {assign var="name" value='Richard.Lee'} {assign var="age" value='27'}     1.想要在Smarty模板的某个位置输出(Richard.Lee---27) 拼接方法:{$name|cat:"---"|c

smarty模板中怎么使用urlencode()函数

解决方法一 直接在php中使用  代码如下 复制代码 $a = urlencode($str); 方法二 在smarty模板中如下操作  代码如下 复制代码 ad_title=<{$vo.ad_title|escape:"url"}> 就是了

在smarty模板中使用PHP函数的方法

sample1 复制代码 代码如下:<{$colname|trim}> 那如果使用像iconv这样的有三个参数的函数该怎么写呢?如果写成: sample 2 复制代码 代码如下:<{$colname|iconv:'utf-8':'gbk'}> 一执行就会发现显示error信息. 因此研究一下就会发现,起始在smarty模板页的套用函数用法中,以smaple 1来说,trim的前面$Row->colname其实就是trim的第一个参数,中间用|这个符号串接: 那假设要使用像ic

如何在smarty模板中定义变量与常量

  定义常量非常的简单 方法是:  代码如下   {$smarty.const.你定义的常量名} 定义变量如何做呢? smarty中定义变量 . {*下面的这一段相当于在模板内部定义一个变量UserName*}  代码如下   {assign var="UserName" value="myz"} 这里将显示模板内部定义的一个变量:UserName = {$UserName} 例子  代码如下   <*assign var="i" valu

在smarty模板中使用PHP函数的方法_php模板

sample1 复制代码 代码如下: <{$colname|trim}> 那如果使用像iconv这样的有三个参数的函数该怎么写呢?如果写成: sample 2 复制代码 代码如下: <{$colname|iconv:'utf-8':'gbk'}> 一执行就会发现显示error信息. 因此研究一下就会发现,起始在smarty模板页的套用函数用法中,以smaple 1来说,trim的前面$Row->colname其实就是trim的第一个参数,中间用|这个符号串接: 那假设要使用像

smarty模板中拼接字符串的方法_php实例

PHP页面传到Smarty模板上的变量(这里用,在Smarty上创建两个变量代替) 复制代码 代码如下: {assign var="name" value='Richard.Lee'}{assign var="age" value='27'} 1.想要在Smarty模板的某个位置输出(Richard.Lee---27)拼接方法:{$name|cat:"---"|cat:$age}解释:将变量$name."---".$age 拼

如何在smarty模板中定义变量与常量?

定义常量非常的简单 方法是:  代码如下 复制代码 {$smarty.const.你定义的常量名} 定义变量如何做呢? smarty中定义变量 . {*下面的这一段相当于在模板内部定义一个变量UserName*}  代码如下 复制代码 {assign var="UserName" value="myz"} 这里将显示模板内部定义的一个变量:UserName = {$UserName}  例子  代码如下 复制代码 <*assign var="i&qu

smarty模板中调用fckeditor编辑器方法

 代码如下 复制代码 <script type="text/javascript" src="fckeditor/fckeditor.js"></script> <form method="POST"> <script type="text/javascript"> var oFCKeditor = new FCKeditor( 'content' ) ; oFCKeditor.

smarty模板中html_options用法介绍

先看看html_option函数参数表: 属性 类型 是否必须 缺省值 描述 values array 是,除非使用option属性 n/a 包含下拉列表各元素值的数组 output array 是,除非使用option属性 n/a 包含下拉列表各元素显示值的数组 selected string/array 否 empty 已选定的元素或元素数组 options associative array 是,除非使用value和output n/a 包含值和显示的关联数组 name string 否