ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ECShop 2.7.2 去版权实战:从 lib_main.php 到 common.js 的完整配置与验证

ECShop 2.7.2 去版权实战:从 lib_main.php 到 common.js 的完整配置与验证 1. ECShop 2.7.2 去版权到底难在哪ECShop 2.7.2 是一套老牌的 PHP 开源网店系统很多做二次开发或者给客户交付独立站的朋友都会碰到它。它能做什么简单说就是商品管理、订单、会员、支付、模板一套齐全适合中小型电商快速上线。适合谁适合手里有 PHP 环境、想自己掌控源码、又不想从零写商城的开发者或站长。但问题也来了前台标题栏、页脚、后台登录页到处都有 Powered by ECShop 的痕迹而且它不是单纯写死在模板里而是分散在 PHP 逻辑层、JS 文件、语言包里。你只改模板页面刷新后版权文字又冒出来甚至随机出现在某个链接上这就是很多人卡住的地方。我试过只删模板里的{$licensed}结果前台干净了两分钟换个页面又回来了。原因就是js/common.js里有一段动态检测和回填逻辑专门盯着页面上有没有版权文字没有就自己补一个。所以去版权必须按「PHP 标题层 → JS 动态层 → 模板层 → 后台层」的顺序处理漏一层都会残留。这篇就按 ECShop 2.7.2 的实际文件结构把 lib_main.php、common.js、page_footer.lbi、后台语言包这几处一次性讲清楚每段都给可复制的修改片段和验证动作。如果你在改的过程中需要临时调模型确认某段 PHP 逻辑或者正则含义可以用 TaoToken 的模型对话快速问一下省得来回翻文档。2. 动手前的环境准备与 TaoToken 前置改代码之前先把环境理清楚不然改完不知道是代码问题还是缓存问题。ECShop 2.7.2 建议用 PHP 5.6 到 7.0 之间的版本MySQL 5.5 以上编辑器用 VS Code 或者 Sublime别用记事本UTF-8 无 BOM 保存否则中文语言包会乱码。操作前必须做两件事第一整站打包备份尤其是includes/、js/、themes/、languages/这四个目录第二后台关掉缓存或者改完后手动清temp/下的编译缓存。ECShop 的模板是编译型的你改了.lbi不删缓存前台根本不生效。如果你在排查过程中需要对照某段加密 JS 的字符编码或者想确认String.fromCharCode解出来的到底是什么可以借助 TaoToken 的模型对话来辅助理解。它的入口在这里模型对话https://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel_chat需要长期做 ECShop 二次开发、经常要问代码逻辑的朋友可以看下 Coding Plan适合把模型能力接进日常编码流程Coding Planhttps://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_plan真正要调接口的时候Key 在控制台生成API Keyshttps://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys接入方式参考官方文档里面有兼容常见接口格式的说明接入文档https://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc环境准备好、备份做完再往下改。下面每一处修改我都会给「文件路径 原始代码 改后代码 验证方式」。3. 核心文件修改lib_main.php 与 common.js3.1 改 includes/lib_main.php 去掉标题版权打开ecshop根目录/includes/lib_main.php搜索Powered by ECShop你会找到初始化页面标题的那一段/* 初始化“页面标题”和“当前位置” */ $page_title $GLOBALS[_CFG][shop_title] . - . Powered by ECShop;把后面的版权串删掉改成只保留店铺名或者换成你自己的品牌后缀/* 初始化“页面标题”和“当前位置” */ $page_title $GLOBALS[_CFG][shop_title];如果你想让标题带个自定义后缀可以这样写$page_title $GLOBALS[_CFG][shop_title] . - 官方商城;保存后刷新前台首页看浏览器标签页标题。如果标题变了说明这一层生效。但这时候你会发现页面上某些位置还是冒出 Powered by ECShop别急那是 JS 在作怪。3.2 处理 js/common.js 的动态回填逻辑js/common.js里有一段从第 261 行到 353 行左右的代码用onload遍历页面所有a标签检测链接文字里有没有版权关键词没有就随机挑一个链接把版权文字塞进去。这就是为什么你删了模板它还能「复活」。最稳妥的做法是把这一整段onload function() { ... }删除或注释掉。注意它内部用了String.fromCharCode把字符拆开写就是为了防止被简单搜索替换所以不要试图只改其中几个字符直接整段移除。删除后建议在文件里留个注释方便以后维护/* 原版权检测回填逻辑已移除如需恢复请从备份取回 */保存common.js后一定要强制刷新浏览器CtrlF5因为 JS 文件缓存很顽固。刷新后检查页面上是否还有随机出现的版权文字。3.3 改模板 page_footer.lbi 去掉页脚版权找到当前模板目录下的library/page_footer.lbi默认模板路径类似themes/default/library/page_footer.lbi。搜索{foreach from$lang.p_y itempv}{$pv}{/foreach}{$licensed}这一行就是页脚版权的输出。直接删除整行或者替换成你自己的备案号和版权声明p© 2024 你的公司名 版权所有/p改完模板必须清缓存。ECShop 的编译缓存在temp/compiled/或者temp/caches/下把里面对应模板的编译文件删掉或者后台「模板管理」里点清除缓存。然后刷新前台看页脚是否干净。3.4 后台版权与语言包处理后台的版权分几块。图片类admin/images/ecshop_logo.gif和admin/images/login.png直接替换成你自己的同尺寸图片。文字类打开admin/templates/top.htm删除「关于ECSHOP」那一行lia hrefindex.php?actabout_us targetmain-frame{$lang.about}/a/li再打开languages/zh_cn/admin/common.php修改管理中心名称和版权声明$_LANG[cp_home] 商城管理中心; $_LANG[copyright] 版权所有 © 2024 你的公司名保留所有权利。;后台语言包改完退出重新登录后台看顶部和底部文字是否更新。4. 验证请求与成功结果确认改完不等于完事必须做一轮完整验证。下面是我实际用的检查清单你可以照着走一遍。第一步前台首页强制刷新看浏览器标签标题、页脚、页面任意位置是否还有 Powered by ECShop。第二步随便点进一个商品详情页和分类页因为 JS 回填是随机挑链接的单看首页不够。第三步打开浏览器开发者工具切到 Network 面板确认common.js加载的是你改过的版本不是缓存旧文件。第四步检查友情链接。后台「友情链接」里如果加了 ECShop 官网链接前台会显示这个在后台直接删掉或改掉即可。第五步检查 logo。后台「网店设置」里上传你自己的 logo替换默认的 ecshop logo 图片。如果你想把验证过程做得更自动化可以写个简单的检查脚本用 curl 抓页面然后 grep 关键词curl -s http://你的域名/ | grep -i powered by ecshop curl -s http://你的域名/ | grep -i ecshop.com两条命令都没有输出说明前台基本干净。后台再手动登录看一眼即可。5. 本篇常见错误排查改 ECShop 2.7.2 去版权踩坑集中在几个地方我按出现频率排一下。第一个坑只改模板没改 JS版权随机复活。表现是首页干净翻几页又出现。解决就是回到 3.2 把common.js那段整段删掉。第二个坑改了文件但没清缓存前台没变化。ECShop 模板编译缓存和浏览器 JS 缓存是两回事两个都要清。模板缓存删temp/compiled/浏览器用 CtrlF5。第三个坑用记事本编辑导致文件编码变成 GBK 或带 BOM页面出现乱码或者 PHP 报「headers already sent」。统一用 VS Code 保存为 UTF-8 无 BOM。第四个坑删common.js时删多了把后面的正常功能代码也删了导致购物车或下拉菜单失效。正确做法是只删onload function() { ... }这一整块删之前先看清楚起止大括号。第五个坑后台语言包改了但没退出重登看到的还是旧文字。后台语言包是登录时加载的改完必须退出重新登录。如果你在排查某段 JS 的字符编码含义时拿不准可以把代码贴到 TaoToken 的模型对话里问一下让它帮你解释String.fromCharCode解出来是什么比自己一个个数字查 ASCII 表快很多模型对话https://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel_chat6. 后续维护与接入建议去版权做完之后建议把改动过的文件单独列个清单比如includes/lib_main.php、js/common.js、themes/default/library/page_footer.lbi、languages/zh_cn/admin/common.php下次升级或者换模板时对照检查避免新版本又把版权带回来。另外ECShop 2.7.2 本身比较老如果你后续要做接口对接、订单同步或者自动化脚本建议把模型能力接进开发流程。生成 API Key 的入口在控制台控制台 / API Keyshttps://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys需要看具体接入参数和请求格式的翻官方文档接入文档https://taotoken.net/api?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc官网首页在这里想了解整体能力可以先逛一圈官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content最后提醒一句改任何线上商城代码之前先在本地或者测试环境跑通确认前台下单、后台登录、支付回调都正常再同步到生产环境。去版权只是外观层别因为删 JS 误伤了购物车逻辑那才是真的得不偿失。
返回列表