首先,我从官网上分别下载了 ckeditor 和 ckfinder ,
我用的版本是:CKEditor 3.6.4-released on 17 July 2012, ckfinder 2.3 - updated 24.08.2012
在CI的library目录中我是这样写的:
<?php # CI 的 library 目录 require_once $_SERVER['DOCUMENT_ROOT'] . '/js/ckeditor/ckeditor.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/js/ckfinder/ckfinder.php'; class Create_ckeditor { function create_ckeditor_and_ckfinder($config = array()) { $js_url = base_url() . '/js/'; $editor = new CKEditor(); $editor->basePath = $js_url . 'ckeditor/'; $editor->returnOutput = TRUE; $editor->config = $config; $editor->config['value'] = isset($config['value']) ? $config['value'] : ''; $editor->config['name'] = (isset($config['name'])&&$config['name']!='') ? $config['name'] : 'myeditor'; $editor->config['language'] = isset($config['language']) ? $config['language'] : 'en'; $editor->config['width'] = isset($config['width']) ? $config['width'] : '100%'; $editor->config['height'] = isset($config['height']) ? $config['height'] : '200'; $editor->config['filebrowserBrowseUrl'] = $js_url . 'ckfinder/ckfinder.html'; $editor->config['filebrowserImageBrowseUrl'] = $js_url . 'ckfinder/ckfinder.html?Tylpe=Images'; $editor->config['filebrowserFlashBrowseUrl'] = $js_url . 'ckfinder/ckfinder.html?Tylpe=Flash'; $editor->config['filebrowserUploadUrl'] = $js_url . 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files'; $editor->config['filebrowserImageUploadUrl'] = $js_url . 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Images'; $editor->config['filebrowserFlashUploadUrl'] = $js_url . 'ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Flash'; CKFinder::SetupCKEditor($editor, $js_url .'ckfinder/'); $str_editor = $editor->editor($editor->config['name'], $editor->config['value'] ); return $str_editor; } }
在 CI的控制器中我是这样引用的:
<?php class Contents extents Controller{ function __construct(){ parent::__construct(); } function index(){ $this->load->library('create_ckeditor'); $data['my_editor'] = $this->create_ckeditor->create_ckeditor_and_ckfinder(); $this->load->view('contents/index',$data); } }
在视图中的相应位置直接输出 <?php echo $my_editor; ?> 即可显示 CKeditor在线编辑器。
后来我发现在页面中编辑的时候,验证不好用,我又加了段 javascript:
<script type="text/javascript"> //<![CDATA[ $(document).ready(function(){ // CKEDITOR 的验证功能 $("#content_form").submit(function(){ var contents = CKEDITOR.instances.meditor.getData(); $("textarea[name=meditor]").html(contents); if( contents.length>0 ){ $("#content_error").hide(); if(valdater.valid()){ return true; } } else { $("#content_error").show(); } return false; }); // 修改CKEDITOR默认的保存按钮事件 为 提交页面中的form.submit() CKEDITOR.instances.meditor.on("beforeCommandExec",function(event){ if(event.data.name === "save"){ event.cancel(); $("#content_form").submit(); } }); }); //]]> </script>
至此,终于完成了。