fckeditor集成到php zend framework框架中
时间:2010-02-01 来源:myjiushizhe
我们要做的是把Fckeditor写成一个Zend Framework 插件形式..这样就可以让整个站点调用到FCK... 这样无论是前台和后台都行 1.获得fckeditor 编辑器。我用的是2.6.3版本,解压后放在public/scripts目录下 很多文件我们不需要放到我们的程序中,可以删除: editor目录 、fckconfig.js、 fckeditor.php、fckeditor_php5.php、fckpackager.xml、fckeditor.js、 fckstyles.xml、 fcktemplates.xml、license.txt这几个保 留,其余的全部去除; 子目录下:editor\filemanager\connectors目录中 把php目录留下(上传用什么方法就留下什么),其余的方法目录删 除(注意留下test.html 和 uploadtest.html) editor\lang语言 把 en.js 、 zh.js 、 zh-cn.js 留下,其余全部删除
2.修改 fckeditor/fckconfig.js ①确认以下两值为php(fckeditor 2.6.3下已默认为php):
var _FileBrowserLanguage = 'php' var _QuickUploadLanguage = 'php'
②修改变量以下值:
FCKConfig.AutoDetectLanguage = true ; //如果你的用户是多语言环境,请设为true,如果只是中文用户,改为false FCKConfig.DefaultLanguage = 'zh-cn' ; //添加中文字体 FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana' ; FCKConfig.FontSizes = '9px;10px;11px;12px;13px;14px;16px;18px;24px;36px' ;
③在IE中直接回车是产生一个p标签,这样两行间距太大,如果用SHIFT+ENTER这样就是产生BR标签.间距不大,不过这样太麻烦了,那么我们把他们替换下。
FCKConfig.EnterMode = 'br' ; // p | div | br FCKConfig.ShiftEnterMode = 'p' ; // p | div | br
3.把fckeditor与zf整合 把Fckeditor里面的fckeditor_php5.php这个文件写成如下插件形式,将其放在application/models/下,命名为Fckeditor.php
/**此代码为类代码*/ class Model_Fckeditor extends Zend_Controller_Plugin_Abstract //要继承这个类 { /** * Name of the FCKeditor instance. * * @access protected * @var string */ public $InstanceName ; /** * Path to FCKeditor relative to the document root. * * @var string */ public $BasePath ; /** * Width of the FCKeditor. * Examples: 100%, 600 ……………… //后面的代码是和FCK里fckeditor_php5.php文件一样的.
4.把/Scripts/目录下关闭重写,建立.htaccess文件内容:RewriteEngine off(不关闭重写会导至调不到FCK文件,发生Zend_Controller_Dispatcher_Exception异常)
5.在控制层文件中对调用fckeditor
public function indexAction() { // action body //Zend_Loader::loadClass('Model_Fckeditor'); //实例化这个类 $oFCKeditor = new Model_Fckeditor('content'); //这里是您放置FCK文件的路径.您要根据您自己的作改动啊 $oFCKeditor->BasePath = $this->view->baseUrl().'/scripts/fckeditor/'; //FCK皮肤 $oFCKeditor->Config['SkinPath'] =$this->view->baseUrl().'/scripts/fckeditor/editor/skins/office2003/'; $oFCKeditor->Width = '100%'; $oFCKeditor->Height = '300'; $oFCKeditor->Value = ' '; $this->view->fckeditor = $oFCKeditor; }
6.在视图中显示
<table cellpadding="0" cellspacing="0" width=100%><tr><td> 标题:</td><td><input type='text' name='title'/></td></tr> <tr><td>内容:</td><td> <?php $this->fckeditor->Create(); ?> </td></tr></table>
7.Fckedotor 上传文件(file flash image media)调试
- 打开/fckeditor/editor/filemanager/connectors/php/config.php找到:
$Config['Enabled'] = false 改成: $Config['Enabled'] = true 设置上传存放目录: 找到: $Config['UserFilesPath'] = '/userfiles/' 改成: $Config['UserFilesPath'] = '/uploads/' //此时文件路径在public下,这个文件夹得自己建!别忘了放一个.htaccess
- 使用当前时间戳做为文件名
打开fckeditor/editor/filemanager/connectors/php/commands.php 找到 $sFileName = $oFile['name'] ; 改为 $sFileName = time().".".strtolower(array_pop(explode(".",$oFile['name'])));
- 指定不同类型的文件上传到不同的目录中(图片在uploads/image/下,文件在uploads/file/下,flash在uploads/flash/下,视频在uploads/media/下)
打开fckeditor\editor\filemanager\connectors\php\config.php,重置以下项 $Config['QuickUploadPath']['File']= $Config['UserFilesPath'] .'file/'; $Config['QuickUploadPath']['Image'] = $Config['UserFilesPath'] .'image/' ; $Config['QuickUploadPath']['Flash'] = $Config['UserFilesPath'] .'flash/'; $Config['QuickUploadPath']['Media'] = $Config['UserFilesPath'] .'media/';
8.备注
用$_POST['content']得到fckeditor的值。上传图片不能超过两兆!
还有很多可以自定义,大多是修改fckconfig.js!补充一下:上传目录和fck目录下都加个.htaccess文件
相关阅读 更多 +