马上注册,免费下载更多dz插件网资源。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、X3.5 与 X5.0:目录与架构的关键差异
X3.5 目录索引:「入口 PHP + /source 分层 + /data + /template」架构。
对比官方 X5.0 文档和 MitFrame 分支的源码,大致有几个结构层面的变化:
1. MitFrame 的核心变化
/source/module/* → 被并入各个 App 的子目录
- X3.5:
/source/module/forum/*、/source/module/home/*
- X5.0:统一到
/source/app/app/forum/module/*、/source/app/app/home/module/* 等。
/source/include/* → 拆分为全局 child 与 App child
- 全局子文件:
/source/child/*
- 各 App 子文件:
/source/app/app/<app>/child/*
- 管理后台入口与路由:
- X3.5:
admin.php?action=xxx → /source/admincp/admincp_xxx.php
- X5.0:
admin.php?action=app&operation=xxx:yyy → /source/app/admin/child/xxx/yyy.php 对应的总调度在:/source/app/admin/admin.php
- 首页和插件访问:
- X3.5:
forum.php/portal.php/plugin.php?id=sample:foo
- X5.0:统一为
index.php?app=forum、index.php?app=portal,当 /source/app 中无对应 app 时,plugin.php?id=xxx:yyy 等价于 index.php?app=xxx&module=yyy
2. 云应用 / 云平台相关文件的位置变化
X5.0 源码包里查找到云应用相关文件的「旧 → 新」对应关系大致如下:
| X3.5 文件(原补丁覆盖对象) |
X5.0 对应位置 / 职责 |
source/admincp/admincp_cloudaddons.php |
source/app/admin/module/cloudaddons.php+source/app/admin/child/cloudaddons/* |
source/admincp/admincp_index.php |
管理后台总入口逻辑:source/app/admin/admin.php+source/app/admin/child/index/* |
source/admincp/admincp_main.php |
后台首页/概览、站点信息:集中在 source/app/admin/child/index/function.php等 |
source/admincp/admincp_menu.php |
菜单构造转移到 source/function/function_admincp.php+source/i18n/*/lang_admincp_menu.php+source/function/cache/cache_admincp_menu.php |
source/admincp/admincp_plugins.php |
插件管理拆成多个子模块:source/app/admin/child/plugins/* |
source/admincp/admincp_styles.php |
模板与风格管理:source/app/admin/child/styles/*+source/app/admin/child/setting/styles.php |
source/function/function_cloudaddons.php |
X5.0 仍然存在,继续负责云应用下载、md5 校验、写入 /data/addonmd5/*.xml等逻辑 |
特别是云应用部分,在 X5.0 中已经确认存在如下云控化文件:
source/app/admin/module/cloudaddons.php
source/app/admin/child/cloudaddons/ 目录下若干子操作: download.php / location.php / witframe.php / index.htm
source/function/function_cloudaddons.php(仍然包含 cloudaddons_open、cloudaddons_getmd5、dmkdir(DISCUZ_DATA.'./addonmd5') 等逻辑)
这说明: X5.0 并没有完全云应用,而是在 MitFrame 架构下重组为一套 App + child 模块体系,核心函数仍由 function_cloudaddons.php 提供。
二、对照 X3.5 补丁:逐文件的语义映射
原 X3.5 越狱补丁的所有核心功能,已经完全可以逐条PJ到 X5.0 的对应模块上。
1. admincp_cloudaddons.php → X5.0 cloudaddons 模块
X3.5 补丁的主要作用:
- 去掉错误 102 / 105 日志上报和云端依赖,避免因为访问应用中心慢/失败导致后台异常。
- 删除
cloudaddons_deltree($tmpdir);、@rmdir($dir); 等自删除临时目录逻辑,保留本地缓存包。
- 不允许
@unlink($entrydir.'/'.$pluginarray['installfile']); / upgradefile 等删除安装、升级脚本的行为。
在 X5.0 中:
- 这些行为拆到:
source/app/admin/module/cloudaddons.php(统一入口、调度)
source/app/admin/child/cloudaddons/*.php(具体操作:下载、定位、WitFrame 云插件等)
- 底层文件/目录处理仍然通过
function_cloudaddons.php 提供的工具函数,以及本地 dir_clear() 辅助。
映射策略:
- 在
module/cloudaddons.php 与 child 脚本中:
- 屏蔽/改写所有调用
cloudaddons_open() 向远端上报 site 信息、check/update 的分支。
- 精简/短路 102/105 等错误分支,改为仅本地提示,不回连云。
- 在
function_cloudaddons.php 中:
- 保留
dmkdir(DISCUZ_DATA.'./addonmd5/') 与 file_put_contents(...addonmd5/$md5file.xml),保证本地 md5 XML 完整留存。
- 将所有
@unlink(...) / cloudaddons_cleardir(...) / 删除 data/addonmd5 下 XML 的逻辑改为「仅清理确实不再使用的临时目录」,绝不自动删除 md5 XML 和已经下载好的安装包。
- 保证所有远程调用(
cloudaddons_open)都可以被「本地模式」短路,最多输出调试信息,不对外发起 HTTP。
这样能保持本地化核心去云控:**本地留痕、禁止自杀、禁止回流云平台**。
2. admincp_index.php / admincp_main.php → X5.0 后台首页
X3.5 补丁中:
$newversion 相关代码被注释,取消云端新版本检测,避免后台首页出「有更新」提示。
$filecheckresult 强制设成 0,不在首页提示文件校验异常(做了大量二开的情况下避免也被强制检测)。
- 一些到云平台的链接(包括应用中心)被改为本地页,或直接干掉。
在 X5.0:
- 后台总入口逻辑在
source/app/admin/admin.php;
- 首页相关逻辑在
source/app/admin/child/index/function.php 等。
映射策略:
- 在
admin.php 中:
- 关闭任何通过
cloudaddons 或远端接口获取新版本信息的调用。
- 将所有直接指向应用中心 / WitFrame 云商店的链接,统一改指向本地介绍页或直接移除。
- 在
child/index/function.php 中:
$newversion、$upgradeurl、$filecheckresult 类字段全部本地化:
filecheckresult 固定为 0。
- 版本更新信息可显示「本地版本号」但不从云拉取。
- 所有「去云端检测更新/安全」的统计链接都加上
rel="noreferrer",并改指本地说明页或隐藏。
3. admincp_menu.php → X5.0 管理菜单
X3.5 补丁中:
- 去掉顶部「应用中心」独立菜单。
- 禁止云端推荐菜单项注入(
$recommendaddon 等)。
- 修正所有指向应用中心的菜单项到本地页面。
X5.0 中:
- 管理菜单定义主要在:
source/function/function_admincp.php
- 语言与缓存:
source/i18n/SC_UTF8/lang_admincp_menu.php + source/function/cache/cache_admincp_menu.php
映射策略:
- 在
function_admincp.php 中:
- 从菜单注册数组中移除/屏蔽与「云应用中心」「WitFrame 市场」相关的一级菜单项。
- 确保不会动态从远端注入菜单(如果有相关逻辑)。
- 在语言文件和缓存中:
- 可选:保留语言项,但菜单项不再使用这些 key。
- 首次构建菜单缓存(
cache_admincp_menu.php)时确保这些菜单项不会被写入。
4. admincp_plugins.php / admincp_styles.php → X5.0 插件 & 模板管理
X3.5 补丁中两点尤其关键:
- 禁止插件 / 模板列表中的「云检测」「云推荐」「云升级」:
addoncheck_plugin、plugins_validator
cloudaddons_getmd5、cloudaddons_upgradecheck
- 允许在「插件设计模式」下导出**带语言包的完整 XML**(
langexists 相关逻辑调整),方便本地开发者打完全包。
X5.0 中对应模块:
- 插件管理:
source/app/admin/child/plugins/*
- 模板/风格管理:
source/app/admin/child/styles/*、source/app/admin/child/setting/styles.php
映射策略:
- 在
child/plugins/* 中:
- 注释/短路
upgradecheck.php、plugininstall_upgrade.php 的所有云检查逻辑,改为仅本地校验文件完整性。
- 保留「导出插件」时的 language 打包增强逻辑(依原 X3.5 补丁中的行为,继续支持导出带语言包 XML)。
- 去掉所有指向云平台的 URL 和
cloudaddons_* 相关调用。
- 在
child/styles/* 中:
- 取消从云端拉取推荐模板、云升级检测(
upgradecheck)等。
- 如果 X5.0 中继续使用
cloudaddons_getmd5 管理模板升级 md5,完全屏蔽远端交互,仅保留本地 md5 记录。
5. function_cloudaddons.php → 核心引擎延续
原X3.5 补丁在这里干了三件大事:
- siteuniqueid 改成本地的
$uniqueid(不再从云端获取),避免站点特征被上传。
- 所有涉及「上报」「回连」「校验正版」的函数统一返回「本地模式」,例如
cloudaddons_open 不再向云平台发起 HTTP。
- 禁止任何形式的 md5 XML 和临时应用文件自删除,保证
/data/addonmd5/*.xml 永久保留。
在 X5.0 中的 function_cloudaddons.php,已经确认:
- 仍然存在
$addonsource、download_url、check_url 等字段,默认指向 [url]https://addon.dismall.com[/url] 系列地址;
- 仍然有
dmkdir(DISCUZ_DATA.'./addonmd5/') 与 file_put_contents(DISCUZ_DATA.'./addonmd5/'.$md5file.'.xml', ...) 的逻辑,用于本地 md5 记录。
映射策略:
- 依照原 X3.5 补丁中的思路,新版架构「X5.0 版 function_cloudaddons 本地化补丁」:
cloudaddons_getuniqueid() → 完全本地生成/缓存,不与云端交互。
cloudaddons_open() → 兼容参数但在本地模式下直接返回「空结构」或仅用于本地调试,不实际 HTTP 请求。
- 不再删除
/data/addonmd5/*.xml 与下载的 zip/app 目录,只允许按定义的规则清理真正的临时缓存。
- 保留/增强 md5 XML 的写入逻辑,保证每次安装/升级的元数据都完整记录。
三、最终「X5.0 本地化去云补丁」的整体设计原则
综合上面的全局校对,X5.0 版补丁最小化不影响核心原则:
-
严格对齐 X5.0 官方架构
- 所有改动只落在:
/source/app/admin/admin.php
/source/app/admin/child/index/*
/source/app/admin/child/plugins/*
/source/app/admin/child/styles/*
/source/app/admin/module/cloudaddons.php
/source/app/admin/child/cloudaddons/*
/source/function/function_cloudaddons.php
/source/function/function_admincp.php(菜单)
- 不新增任何不符合 MitFrame 规范的新入口或目录。
-
保持 X3.5 补丁语义 1:1 继承
- 不上报、不回连、不自毁,所有「去云」行为在 X5.0 中都有对应的一条逻辑路径。
- 所有对开发者友好的增强(如带语言包的导出)在 X5.0 中继续保留或重写。
-
补丁形态
- 和原有的 X3.5 补丁一样:录结构以 X5.0 根目录为基准,如:
source/app/admin/admin.php
source/app/admin/child/index/function.php
source/app/admin/child/plugins/*.php
source/app/admin/child/styles/*.php
source/app/admin/module/cloudaddons.php
source/app/admin/child/cloudaddons/*.php
source/function/function_cloudaddons.php
source/function/function_admincp.php
- 每个文件内以中文注释标明「X5.0 补丁功能点」与「本地化防云处理逻辑」。
已经独家贡献到DZ插件网换取了VIP见:https://www.dz-x.net/t/3098/1/1.html
©DZ插件网所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。 本站内容为站长个人技术研究记录或网络,不提供用户交互功能,所有内容版权归原作者所有。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,得到更好的正版服务。 您在本站任何的赞助购买、下载、查阅、回复等行为等均表示接受并同意签订《DZ插件网免责声明协议》。 如有侵权请邮件与我们联系处理: discuzaddons@vip.qq.com 并出示相关证明以便删除。敬请谅解!
|