正在加载...

首先我要先BS一下我自己。有两个原因。

  • 第一个就是学了ThinkPHP这么久,对于ThinkPHP一些内置的路径还是很不熟,对于__WEBROOT__或者__PUBLIC__这种路径还是很不了解!
  • 第二个,就是我弄了半天,才将FCKeditor给集成到ThinkPHP中,问题是,原先就可以很简单集成进去的,被我无限复杂化了~


算了,还是来说一下什么样子的情况吧。
准备接一个政府性质的信息发布平台。个人准备使用TP作为框架,以LAMP来完成这个东东~
考虑到ZF机关的人大多数比较白痴,估计让他们用手写页面是完全不可能了。算了,还是用号称在Web中的word的FCKeditor来解决吧~
于是问题出现了!
FCKeditor如何调用?看了一下,大多数都是使用PHP生成一个对象,然后使用Create()方法来完成。
但是这里这个是行不通的!为什么呢?
路径问题!TP会将所有的路径经过路由来处理一下,加上其近RoR的性质,全篇是看不到require这种东西的!就算有,最后的FCKeditor的路径也同样是很大的问题!!
难道就这样子放弃?No~
仔细查阅了一下,发现有两个办法可以解决!

  • 第一个就是使用PHP。具体方法比较麻烦,只能通过新建一个CommonAction.class.php,在这里面require一个FCKeditor需要的PHP文件,以后所有的Action都继承这个~这个有一个最大的问题是什么呢?那就是路径的混乱!!非常之混乱,毕竟一个框架近RoR,本身就不应该还需要包含这个包含那个!一大忌讳!
  • 那只有第二个办法可以解决了,就是利用JS的调用,在页面中调用FCKeditor

查看了官方示例的Blog后台,发现在ThinkTemplate中已经有这样子的解决办法了~

OK,我们模板的事情已经做完了~~
但是,我们的事情还没有做完~剩下的事情还有一件!那就是将FCKEditor拷贝到公共目录中的Js目录中去!
另外在说一下FCKeditor简单的配置。如果需要FCK支持上传文件什么的,还需要对Public\Js\FCKeditor\editor\filemanager\connectors\php\中的config.php文件进行配置

$Config['Enabled'] = true ;
$Config['UserFilesPath'] = ‘/Examples/Public/userpic’ ;
$Config['UserFilesAbsolutePath'] = ” ;

最简单的就需要改动上面三行,或者说两行,最后一个都可以不用修改~
解释一下~原先config.php中$Config['Enabled']默认的是false,也就是不支持上传文件,我们需要把它改成true让其支持。$Config['UserFilesPath']这个是决定了上传文件的相对路径。这个路径是相对路网站根目录而言的路径~这个一定要切记~~最后一个是文件的绝对路径~我以前弄错了,以为可以不用谢,FCK会自己判断~可惜,我错了~我有罪!这个地方是一定要写上的,这个三个缺一不可的!!其实config.php还有很多别的配置,但是一般都保持默认设置就OK了。
这里我还要解释一下什么是公共目录~
TP中公共目录有两种,名称都是Public,但是分为两种;第一个就是项目间的公共目录,就是两个不同项目间共享的东西都可以放到这里来!另一个就是项目内部的公共目录,这个一般都是模板间使用的公共的头文件,CSS或者JS文件等等!项目间的公共目录放在和项目平级的Public中,而项目内部的公共目录放在每个项目的tpl/default/Public目录中~
Public目录一般都要包括Css目录、Images目录和Js目录(目录首字母大写,Tp的默认),项目间的公共目录一般还包含一个Upload目录,方便项目中上传文件
另外再说一个TP中的路径问题
__URL__这个指的是当前模块地址
../Public项目内部的共享目录
__APP__当前项目地址
__WEBROOT__网站根目录
__ACTION__当前操作地址
__SELF__当前页面地址
其中__APP__和__WEBROOT__可能比较容易混淆。简单的说,前者是后者的一个部分,如果后者是http://www.asdf.com的话,前者就可能是http://www.asdf.com/front这种形式~~而__PUBLIC__的地址就应该是http://www.asdf.com/__PUBLIC__这样子

: http://www.breestealth.com/136/intergrate_fckeditor_in_thinkphp.html

本文相关评论 - 1条评论都没有呢

还没有任何评论。