用户
 找回密码
 入住 CI 中国社区
搜索
查看: 7592|回复: 9
收起左侧

dilicms扩展ckeditor(fckeditor)编辑器

[复制链接]
发表于 2011-8-9 10:30:43 | 显示全部楼层 |阅读模式
本帖最后由 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;
   }

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

实现效果如下:







评分

参与人数 1威望 +9 收起 理由
jeongee + 9 赞一个!

查看全部评分

发表于 2011-8-9 10:54:59 | 显示全部楼层

添加的不错,不过那个js引用不用放在sys_entry里,放content_form.php和category_content_form.php里面吧
 楼主| 发表于 2011-8-9 10:57:18 | 显示全部楼层
jeongee 发表于 2011-8-9 10:54
添加的不错,不过那个js引用不用放在sys_entry里,放content_form.php和category_content_form.php里 ...

哦!呵呵!这样是不是还要增加一个判断呢?要不无效加载,增加服务器负担的!那这个判断在实现的时候估计很复杂!
 楼主| 发表于 2011-8-9 10:58:32 | 显示全部楼层
哈哈哈哈哈哈哈哈哈!威望直接增加超过5分!
发表于 2011-8-9 16:57:37 | 显示全部楼层
不错,收藏了。  
发表于 2011-8-11 10:09:08 | 显示全部楼层
你把文件打包吧,我直接可以下载
发表于 2011-8-11 13:03:12 | 显示全部楼层
发表于 2011-8-11 13:03:35 | 显示全部楼层
kuailewang 发表于 2011-8-11 10:09
你把文件打包吧,我直接可以下载

我写了个插件,支持所有基于js编辑器
http://codeigniter.org.cn/forums ... hread&tid=10172
 楼主| 发表于 2011-8-12 09:18:33 | 显示全部楼层
jeongee 发表于 2011-8-11 13:03
我写了个插件,支持所有基于js编辑器
http://codeigniter.org.cn/forums/forum.php?mod=viewthread&tid=1 ...

呵呵,不错啦 我正在弄dilicms的新插件!我只是打酱油 信不信由你,反正我是信得
发表于 2011-8-12 09:23:22 | 显示全部楼层
mvc999 发表于 2011-8-12 09:18
呵呵,不错啦 我正在弄dilicms的新插件!我只是打酱油 信不信由你,反正我是信得  ...

欢迎开发更多实用性插件,呵呵

本版积分规则