mvc999 发表于 2011-8-9 10:30:43

dilicms扩展ckeditor(fckeditor)编辑器

本帖最后由 mvc999 于 2011-8-9 10:35 编辑

dilicms扩展ckeditor(fckeditor)编辑器,本人不才哪里有不对请及时拍砖啊!{:soso_e113:}
第一步:下载ckeditor

下载官方地址:http://ckeditor.com/download

第二步:ckeditor基本配置

解压ckeditor包,放到dilicms根目录下admincp\default\js\文件夹

为后dilicms后台框架文件 admincp\default\sys_entry.php 增加ckeditor的js引用

(根据自己的存放ckeditor的目录引用)

<script language="javascript" src="js/ckeditor/ckeditor.js"></script>

第三步:后台配置程序修改

修改settings\fieldtypes.php文件增加一项字段配置"FCK" => "CK编辑器(FCK)",
例如:
$setting['fieldtypes'] = array(
         "int"   => "整形(INT)",
         "float" => "浮点型(FLOAT)",
         "input" => "单行文本框(VARCHAR)",
         "textarea" => "文本区域(VARCHAR)",
         "select" => "下拉菜单(VARCHAR)",
         "select_from_model"   => "下拉菜单(模型数据)(INT)",
         "linked_menu" => "联动下拉菜单(VARCHAR)",
         "radio" => "单选按钮(VARCHAR)",
         "checkbox" => "复选框(VARCHAR)",
         "wysiwyg" => "编辑器(TEXT)",
         "wysiwyg_basic" => "编辑器(简)(TEXT)",
       "FCK" => "CK编辑器(FCK)",//增加fck字段选项
         "datetime" => "日期时间(VARCHAR)",
         "colorpicker" => "颜色选择器(VARCHAR)"
         );

第四步:核心类库application\libraries\dili\Form.php修改

在合适的地方增加一个新方法

function _FCK($field, $default)
{
$style = 'style="';
$style .= 'width:'. ($field['width'] ? $field['width'] : '400') .'px;';
$style .= 'height:'. ($field['height'] ? $field['height'] : '200').'px;';
$style .= '"';
return '<textarea name="'. $field['name'] .'" id="'. $field['name'] .'" >'.$default.'</textarea><script type="text/javascript">CKEDITOR.replace("'. $field
['name'] .'", {extraPlugins :"autogrow",autoGrow_maxHeight : 400,removePlugins :"resize"});</script>';   
}

第五步:模型文件application\models\dili\column_mdl.php修改


switch($data['type'])
   {
    case 'select_from_model' :
    case 'int'    : $field = array(
            'type' => 'INT',
                                                 'constraint' => $data['length'] ? $data['length'] : 10 ,
            ) ;
      break;
    case 'float' : $field = array(
            'type' => 'FLOAT',
                                                 'constraint' => $data['length'] ? $data['length'] : 10,
            ) ;
      break;
    case 'input' :
    case 'select':
    case 'radio' :
    case 'checkbox':
    case 'datetime':
    case 'colorpicker':
    case 'linked_menu':
    case 'textarea' :
      $field = array(
            'type' => 'VARCHAR',
                                                 'constraint' => $data['length'] ? $data['length'] : 100 ,
            ) ;
      break;
    case 'wysiwyg' :
    case 'FCK' ://这里返回TEXT设置//根据自己情况,为了明了可以重新case,我偷懒直接利用
    case 'wysiwyg_basic':
      $field = array(
            'type' => 'TEXT',
            ) ;
      break;
   }

第六步:彻底更新缓存,成功!

实现效果如下:


http://codeigniter.org.cn/forums/data/attachment/album/201108/09/102919gdzccw30c93hwdhw.png

http://codeigniter.org.cn/forums/data/attachment/album/201108/09/102907cqc5htiq8q28ie72.png


jeongee 发表于 2011-8-9 10:54:59

:hug:
添加的不错,不过那个js引用不用放在sys_entry里,放content_form.php和category_content_form.php里面吧

mvc999 发表于 2011-8-9 10:57:18

jeongee 发表于 2011-8-9 10:54 static/image/common/back.gif
添加的不错,不过那个js引用不用放在sys_entry里,放content_form.php和category_content_form.php里 ...

:lol哦!呵呵!这样是不是还要增加一个判断呢?要不无效加载,增加服务器负担的!那这个判断在实现的时候估计很复杂!

mvc999 发表于 2011-8-9 10:58:32

哈哈哈哈哈哈哈哈哈!威望直接增加超过5分!

leiqing97 发表于 2011-8-9 16:57:37

不错,收藏了。:P:P:P:P

kuailewang 发表于 2011-8-11 10:09:08

你把文件打包吧,我直接可以下载

jeongee 发表于 2011-8-11 13:03:12

我发布了新的解决方案
http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=10172

jeongee 发表于 2011-8-11 13:03:35

kuailewang 发表于 2011-8-11 10:09 static/image/common/back.gif
你把文件打包吧,我直接可以下载

我写了个插件,支持所有基于js编辑器
http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=10172

mvc999 发表于 2011-8-12 09:18:33

jeongee 发表于 2011-8-11 13:03 static/image/common/back.gif
我写了个插件,支持所有基于js编辑器
http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=1 ...

呵呵,不错啦 我正在弄dilicms的新插件!我只是打酱油 信不信由你,反正我是信得 :lol:lol:lol

jeongee 发表于 2011-8-12 09:23:22

mvc999 发表于 2011-8-12 09:18 static/image/common/back.gif
呵呵,不错啦 我正在弄dilicms的新插件!我只是打酱油 信不信由你,反正我是信得...

欢迎开发更多实用性插件,呵呵
页: [1]
查看完整版本: dilicms扩展ckeditor(fckeditor)编辑器