博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECShop替换FCKeditor编辑器为KindEditor
阅读量:5990 次
发布时间:2019-06-20

本文共 2926 字,大约阅读时间需要 9 分钟。

  hot3.png

理论上可以替换包括在内的其他任何编辑器,步骤包括:

1.上传新编辑器代码

首先下载,解压后将文件夹命名为kindeditor,删除包内的无用文件,如asp*、jsp、examples、attached等,保留*-min.js

然后进入kindeditor/php/,修改file_manager_json.php文件:

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

再修改upload_json.php第16行:

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

最后将整个kindeditor文件夹上传至/ecshop/include/目录.

2.删除FckEditor引用及原始文件

接下来进入/admin/目录,删掉所有fckeditor的引用,找到以下文件:

article.phpfilecheck.phpmagazine_list.phpgoods.phpshophelp.phpshopinfo.phpsuppliers_goods.phptopic.php

在上述文件中查找下面其中一行并删除掉:

require_once(ROOT_PATH."includes/fckeditor/fckeditor.php");include_once(ROOT_PATH.'includes/fckeditor/fckeditor.php');

然后可以删除掉整个fckeditor文件夹,即/includes/fckeditor/

3.修改编辑器兼容性功能及样式

  • 首先找到/admin/includes/lib_main.php,将整个create_html_editor函数重写(第311行):
/** * 生成编辑器 * @param   string  input_name  输入框名称 * @param   string  input_value 输入框值 * @param   string  params      额外参数 */function create_html_editor($input_name, $input_value = '', $params = ''){    global $smarty;	$kindeditor="	            ";    $smarty->assign('FCKeditor', $kindeditor);}

lib_main.php是后台的基本类库,很多功能都会自导加载这个文件,而上面这个函数将会以下其他地方引用到。

  • 然后打开/admin/order.php第2469行,从include_once..到“$smarty->assign('fckeditor', $fckeditor)

该功能用于订单打印模板修改,如果没找到以上代码,直接搜索fckeditor即可。将该段内容删除后再插入以下代码:

create_html_editor('FCKeditor1', $file_content, ",fullscreenMode:true,width:'100%'");

(注意这里我加了参数使页面打开时编辑器自动全屏。)

  • 再修改/admin/mail_template.php,将第27行“include_once..fckeditor.php..”删除,

然后将第65行创建html editor的部分(同上面订单打印)替换为:

create_html_editor('content', $content['template_content']);

在这块代码下面第83行找到“载入指定模版”将elif中的全部内容删除并替换为以下代码:

elseif ($_REQUEST['act'] == 'loat_template') {    $tpl = intval($_GET['tpl']);    $content = load_template($tpl);    make_json_result($content);}

这里是用于加载邮件模板的JSON请求,但是ecshop写的实在太蹩脚了简直无法直视…关键是不兼容kindeditor,只好做了修改。

  • 以上内容改完后,还需要修改部分htm模板,首先是订单模板页order_templates.htm

将“{$fckeditor}”改为“{$FCKeditor}”即可,原因是公共函数中变量名改变了。然后是goods_info.htm

将第429行的button改为submit,否则商品详情可能无法保存。

最后是邮件模板页mail_template.htm将整个文件替换为如下代码

{if $full_page}{include file="pageheader.htm"}{insert_scripts files="../js/utils.js,listtable.js"}
{/if}
{$lang.select_template}
{$lang.mail_subject}:
{$FCKeditor}
{if $full_page}
{include file="pagefooter.htm"}{/if}

P.S.

后台无法读取cookie,原因是/ecshop/admin/templates/menu.htm中第380行调用了一个不存在的函数t_eval(),

其实这个函数在/ecshop/admin/js/menu.js中定义了只是从未引用而已,将其修改为以下代码:

this.SourceObject = eval("("+ document.getCookie(this.CookieName) +")");

转载于:https://my.oschina.net/cwalet/blog/333314

你可能感兴趣的文章
研究人员发明可穿戴型弹性光纤,可精准测量到人们的每一次呼吸
查看>>
如何通过idea连接mysql实现简单的CRUD
查看>>
孔晓泉:自然语言处理应用和前沿技术回顾 | 分享总结
查看>>
胡振波:我的芯片之路
查看>>
Java基础-一个java文件多个类的问题
查看>>
「深度」国内云服务格局初定但机会犹在,中小玩家的空间更多在“特色云”...
查看>>
你应该这个姿势学习PHP(4)
查看>>
华为联手阿里移动推出全球首个导航产品
查看>>
亚马逊防劫机专利“新鲜出炉”,无人机送货不再是问题
查看>>
从千奇百怪的相变现象说起
查看>>
EMR Druid 探索(一)
查看>>
大朋头盔:低延迟造就逼真的虚拟现实体验
查看>>
解读 V8 GC Log(一): Node.js 应用背景与 GC 基础知识
查看>>
包含Html文件的几种方法
查看>>
ie和firefox浏览器对透明flash的兼容性问题
查看>>
日积月累--exception记录
查看>>
麦当劳的silverlight
查看>>
jdk
查看>>
nginx反向代理websocket
查看>>
简单的jquery点击弹出背景变暗遮罩效果
查看>>