在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(); if(!count($base_arguments)) if(isset($params['BasePath'])) //这里设置默认的fck所在的目录,相对于要使用fck的程序的目录 $base_arguments['InstanceName'] = $params['InstanceName']; if(isset($params['Value'])) $base_arguments['Value'] = $params['Value']; // Use all other parameters for the config array (replace if needed) $out = ”; if($init) $out .= “n<script type=”text/javascript”>n”; foreach($base_arguments as $key => $value) foreach($config_arguments as $key => $value) $out .= “noFCKeditor.Create();n”; return $out; |
使用代码
代码如下 | 复制代码 |
{fck InstanceName=”body” BasePath=“../plugins/fckeditor/” Value=$news_info.body Width=”100%” Height=”400″} |
可以自定义参数 ToolbarSet-使用的工具栏, BasePath-fck相对于当前脚本的目录,InstanceName-要赋予的$_POST变量名, Value-默认值等