Ecshop 编辑器 FCKeditor更换为Kindeditor 完整替换

在Ecshop 编辑器 FCKeditor更换为Kindeditor 的时候,网上的做法,要么替换成了,数据无法保存,要么只有商品编辑能用,在无数测试下,终于是整合出了完整的替换,对,完整,就是ecshop中整个后台的编辑器都替换成Kindeditor。


前言:如果仅仅需要修改商品编辑的编辑器,只需要参考方案一;如果需要整个ecshopfck编辑器都要替换,则需要同时启用两个方案。当然,两个方案完全不冲突,方案一针对的是商品编辑那里的编辑器,没有用submit提交的,方案二针对的是用submit提交的。


方案一: 提交数据不是用submit提交的 如,编辑商品详情 那里

1,首先下载kindeitor最新版放到includes目录

修改kindeditor/php目录下面的upload_json.php里面的

//文件保存目录路径

$save_path = $php_path . '../../../images/upload/';

//文件保存目录URL

$save_url = $php_url . '../../../images/upload/';

 

kindeditor默认上传图片的路径是upload下面的image目录下面,以年月日为目录,如:image/20130401 我们把它修改为:以年月划分比较好。

upload_json.php找到$ymd = date("Ymd"); 改为:$ymd = date("Ym");就可以了。

 

修改includes/kindeditor/php/file_manager_json.php

 

//根目录路径,可以指定绝对路径,比如 /var/www/attached/

$root_path = $php_path . '../../../images/upload/';

//根目录URL,可以指定绝对路径,比如 http://www.yoursite.com/attached/

$root_url = $php_url . '../../../images/upload/';

 

2,删除或者注释 admin/goods.php 大约107行  

include_once(ROOT_PATH . 'includes/fckeditor/fckeditor.php'); // 包含 html editor 类文件

3更换 admin/goods.php 大约414行  create_html_editor('goods_desc', $goods['goods_desc']); 修改成:

 $FCKeditor = create_html_kindeditor('goods_desc', $goods['goods_desc'], 'theForm');// 最后一个参数theForm是新增的,可以指定后台包含编辑器的表单的名字。

 $smarty->assign('FCKeditor',    $FCKeditor); //这样,ecshop模版里面原有的$FCKeditor就不用再去修改了。

4. 修改 admin/includes/lib_main.php文件,找到大概 大约324行增加create_html_kindeditor行数,代码如下:

/**

 * 生成 kindeditor

 * @param   string  input_name  输入框名称

 * @param   string  input_value 输入框值

 * @param string form_name   所在表单名称

 */

function create_html_kindeditor($input_name, $input_value = '', $form_name = '')

{

    global $smarty;

    $kindeditor = "<script src='/includes/kindeditor/kindeditor-all-min.js' charset='utf-8'></script>

<script src='/includes/kindeditor/lang/zh_CN.js' charset='utf-8'></script>

<script src='/includes/kindeditor/plugins/code/prettify.js' charset='utf-8'></script>

    <script>

   

        KindEditor.ready(function(K) {

var editor1 = K.create('textarea[name=".$input_name."]', {

cssPath : '/includes/kindeditor/plugins/code/prettify.css',

uploadJson : '/includes/kindeditor/php/upload_json.php',

fileManagerJson : '/includes/kindeditor/php/file_manager_json.php',

afterBlur : function() {

                  this.sync();

                  K.ctrl(document, 13, function() {

                  K('form[name=" . $form_name . "]')[0].submit();

        });

        K.ctrl(this.edit.doc, 13, function() {

            K('form[name=" . $form_name . "]')[0].submit();

        });

}

});

 

prettyPrint();

});

    </script>

    <textarea id=\"$input_name\" name=\"$input_name\" style='width:700px;height:300px;'>$input_value</textarea>";

    return $kindeditor;

}

//***说明,这里调用的aterBlurJS函数,就可以解决ecshop更换kindeditor编辑器,提交数据不保存的原因了,因为如果没调用editorsync函数的话,编辑器里面生成的内容,没办法保存提交的。

5. kindeditor中 ./php目录下的 file_manager_json.phpupload_json.php中的

$php_path 和 $php_url 改成自己想要的就行了。

 

友情提醒:一般来说这种开源编辑器难免有漏洞公布出来,最好是把kindeditor的路径给改了。这样别人访问不到editor的路径,可以介绍风险。

 

 

方案二: 提交表单用submit提交的 如,文章、邮件、专题那里的编辑器 那里

1,首先下载kindeitor最新版放到includes目录

修改kindeditor/php目录下面的upload_json.php里面的

//文件保存目录路径

$save_path = $php_path . '../../../images/upload/';

//文件保存目录URL

$save_url = $php_url . '../../../images/upload/';

 

kindeditor默认上传图片的路径是upload下面的image目录下面,以年月日为目录,如:image/20130401 我们把它修改为:以年月划分比较好。

upload_json.php找到$ymd = date("Ymd"); 改为:$ymd = date("Ym");就可以了。

 

修改includes/kindeditor/php/file_manager_json.php

 

//根目录路径,可以指定绝对路径,比如 /var/www/attached/

$root_path = $php_path . '../../../images/upload/';

//根目录URL,可以指定绝对路径,比如 http://www.yoursite.com/attached/

$root_url = $php_url . '../../../images/upload/';

 

2,删除或者注释 admin/goods.php 大约107行  

include_once(ROOT_PATH . 'includes/fckeditor/fckeditor.php'); // 包含 html editor 类文件

3., 把admin/includes/lib_main.php 中的

function create_html_editor()这个方法注释或删除,添加下面的方法

 

/**

 * 生成 kindeditor

 * @param   string  input_name  输入框名称

 * @param   string  input_value 输入框值

 * @paramstringform_name  所在表单名称

 * 

 * 

 * submit 提交的  使用这个方法

 */

 

function create_html_editor($input_name, $input_value = '')

{

    global $smarty;

    $kindeditor="<script charset='utf-8' src='../includes/kindeditor/kindeditor-min.js'></script>

    <script>

        var editor;

            KindEditor.ready(function(K) {

                editor = K.create('textarea[name=\"$input_name\"]', {

                    allowFileManager : true,

                    width : '100%',

                    height: '600px',

                    resizeType: 0    //固定宽高

                });

            });

    </script>

    <textarea id=\"$input_name\" name=\"$input_name\" style='width:100%;height:600px;'>$input_value</textarea>

    ";

    $smarty->assign('FCKeditor', $kindeditor);  

}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值