thinkphp和fckeditor编辑器的完美结合
应用步骤:
1、下载fckeditor2.x版本,将解压后的文件夹fckeditor复制到thinkphp文件夹下的vendor目录下,以便符合 thinkphp的第三方类库引入规则。
2、修改参数:
首先,用editplus等软件打开fckeditor目录下的fckeditor_php5.php文件,找到第130行。出现内容如下:
public function __construct( $instancename )
{$this->instancename = $instancename ;
$this->basepath= ‘ ‘ ;
$this->width = ‘900′;
$this->height = ‘400′;
$this->toolbarset = ‘default’ ;
$this->value = ‘ ’;
$this->config = array() ;
}
public function __construct( $instancename ){$this->instancename = $instancename ;$this->basepath = ‘/bm/thinkphp/vendor/fckeditor/’ ;$this->width = ‘900′;$this->height = ‘400′;$this->toolbarset = ‘default’ ;$this->value = ”;其中,最关键的就是将basepath设置好。里面填写的就是fckeditor_php5.php文件相对于网站文档根目录(document root)的路径。其实这就是用以表征fckeditor编辑器相对根目录的路径。比如服务器的文档根目录最下级是htdocs/或www/,项目名为 project,project项目文件夹下有thinkphp系统文件包与项目文件包myapp。而且服务器没有对该项目设置虚拟主机的话,此时的文档 根目录仍是www/或htdocs/,那么应该是$this->basepath=’/project/thinphp/vendor /fckeditor/’;
若是设置了虚拟主机,即将project变为虚拟的文档根目录,通过某一域名能够直接访问网站项目的话,那么此时,
$this->basepath=’/thinphp/vendor/fckeditor/’;
其他的参数如宽度与高度可以填或不填,若填下的话就是编辑器的默认高与宽。instancename是编辑器所在标签的id与name,此时不用理 会。其他参数也不用理会。
其次,在fckeditor\editor\filemanager\connectors\php\下面找到config.php文件,打开它, 找到30与34行。需要改写的参数如下:$config['enabled'] = true ;
$config['userfilespath'] = ‘ ’ ;
其中,第一个参数应该设为true.默认是true.第二个参数填写的是上传文件的路径,比如要显示的图片等。我们在project目录下建立一个 uploads文件夹,那么$config['userfilespath'] = ‘ /project/uploads/ ‘;路径规则与上一个basepath一样。要是project是虚拟文档根目录的话,那么$config['userfilespath'] = ‘ /uploads/ ‘;
3、应用程序:
比如在myapp项目中lib目录下indexaction.class.php控制器类中的index方法中,当访问该程序时,输出的模板网页里 有form表单,要求用户输入一篇文章,那么就可以用到编辑器.代码示例如下,只显示与fckeditor有关的代码,其他代码会略。
首先是服务器程序:
public function index()
{……//其他代码
vendor(”fckeditor.fckeditor”);//包含fckeditor类库,tp引入第三方类库的系统方法,其路径是相对于 vendor目录来说的。
$editor= new fckeditor(); //实例化fckeditor对象
$editor->width=’980′;//设置编辑器实际需要的宽度。此项省略的话,会使用默认的宽度。
$editor->height=’400′;//设置编辑器实际需要的高度。此项省略的话,会使用默认的高度。
$this->value=”;//设置编辑器初始值。也可以是修改数据时的设定值。可以置空。
$editor->instancename=’comment’;//设置编辑器所在表单内输入标签的id与name,即标签的id与name。此处假 //设为comment.此处不可省,也要保持唯一性。表单上传到服务器处理程序后,即可通过$_post['comment']来读取。
$html=$editor->createhtml();//创建在线编辑器html代码字符串,并赋值给字符串变量$html.
$this->assign(’html’,$html);//将$html的值赋给模板变量$html.在模板里通过{$html}可以直 接引用。
…….//其他代码,包括输出模板。
}
其次是对应的html模板即index 文件。只需要在需要的地方插入编辑器即可,其他代码与一般的
写法一样。…….
//action里填写表单处理程序,如’__app__/index/check’。 指的是indexaction类下的check()方法来处理提交的表单数据。
添加新评论:
……//其他表单填写项
{$html}