CI 框架使用 FCK
CodeIgniter(1.6.3)安装FCKeditor插件 不指定文章分类:PHP编程1. 下载解压FCKeditor 2.6.3,我是放在system/application/plugins/fckeditor/ 下。
2.根据你的php版本,将fckeditor_php4.php或fckeditor_php5.php复制到 /system/application/libraries/ 下,并更名为 fckeditor.php
3. 打开此文件,将类名更改为 Fckeditor,并修改你的构造器
// PHP 5
function __construct( $instanceName )
{
$this->InstanceName = $instanceName ;
$this->BasePath = '/fckeditor/' ;
$this->Width = '100%' ;
$this->Height = '200' ;
$this->ToolbarSet = 'Default' ;
$this->Value = '' ;
$this->Config = array() ;
}
// PHP 4
function Fckeditor( $instanceName )
{
$this->__construct( $instanceName ) ;
}
4. 打开 ./system/application/libraries/下的 fckeditor.php,复制FCKeditor_IsCompatibleBrowser()函数里的所有内容,替换到IsCompatible()函数里的所有内容
5. 修改 ./system/application/libraries/fckeditor.php 的 constructor 里的 basepath 定义
$this->BasePath = base_url().'system/application/plugins/fckeditor/' ;
6.如果你使用了.htaccess文件,需要做如下修改
RewriteCond $1 !^(index\.php|images|system/application/plugins/fckeditor)
7. 基本设置完毕,在控制器中调用:
$this->load->library('fckeditor','content');
$this->fckeditor->ToolbarSet = 'Basic';
$data['fckeditor']=$this->fckeditor->CreateHtml();
在view里用 就可以了
8.如果要在一个页面显示多个fckeditor
$this->load->library('fckeditor', 'FCKEDITOR1');
$this->fckeditor->BasePath = 'system/plugins/FCKeditor/';
$this->fckeditor->ToolbarSet = 'Basic';
$data['fck1'] = $this->fckeditor->CreateHtml();
$this->fckeditor->InstanceName = 'FCKEDITOR2';
$data['fck2'] = $this->fckeditor->CreateHtml();
$this->load->view('mypage', $data);
在服务器端,可以这样:
$first_box = $this->input->post('FCKEDITOR1');
$second_box = $this->input->post('FCKEDITOR2');
其他的一些配置,你可以在fckconfig.js中自己修改
OK!生活就是这样美好。。
时代在发展,Codeigniter1.7.0安装新版本fck会遇到一些麻烦
CI 1.7.0安装FCKeditor2.6.x bug修复方法
如果你使用的是CodeIgniter1.7.0,常规方法可能会产生如下警告
1.
Severity: Warning
Message: Missing argument 1 for Fckeditor::__construct(), called in systemlibrariesLoader.php on line 931 and defined
Filename: libraries/fckeditor.php
Line Number: 130
2.
Severity: Notice
Message: Undefined variable: instanceName
Filename: libraries/fckeditor.php
Line Number: 132
解决办法:
1) 在控制器中,按照如下方法加载fckeditor,并传给其构造函数一个数组参数:
$this->load->library('fckeditor',array('instanceName' => 'content'));
2) 我使用的是PHP5,在fckeditor.php中,需要作如下修改:
function __construct( $array )
{
$this->InstanceName = $array['instanceName'] ;
.....
.....
}
接下来,就可以使用了
$content = $this->input->post('content');

浙公网安备 33010602011771号