方案是 X1框架及各种频道、插件、钩子、风格的组装产品,你也可以理解为他就是一个可以独立安装的系统。 本质上就是把你当前的系统打包发布。 步骤如下: 1、删除多余的附件或网站数据,以保持尽可能的干净清爽。演示数据可以保留。 2、进后台备份数据,把备份出来的数据sql文件改名为 `install.sql` ,然后替换这个目录的相应文件 `\application\install\sql\install.sql` 3、打开此网址 [https://x1.php168.com/appstore/index/getid.html](https://x1.php168.com/appstore/index/getid.html) ,把里边显示的SQL语句, ~~~ INSERT INTO `qb_config` (`c_value`,`title`, `type`, `c_key`, `form_type`, `ifsys`) VALUES('336','方案ID', 1, 'typeid', 'hidden', 1); ~~~ 复制出来,放在 `\application\install\sql\install.sql` 的最后一行 4、把此文件`\application\install\install.lock`删除 最后把文件打包,类似频道模块或风格那样在根目录压缩成zip文件,上传到应用平台的 方案产品 分类里边即可 这里的关键点,其实就是增加了一个方案ID参数,有这个参数以后,方案就不会跟随X1框架升级了。就只会跟着你的方案升级。 压缩包请控制在30M以内。如果太大的话,就把附件删除。 免费的大家都可以下载,收费的话,就不能下载。 发布到云市场的主要目的是为了能让安装的用户同步升级,你每次更新后,用户都会跟着你升级。 注意:方案ID中的SQL语句你查看后要尽快发布,不然别人抢占了这个ID你就失效了。336就是当前的ID ~~~ INSERT INTO `qb_config` (`c_value`,`title`, `type`, `c_key`, `form_type`, `ifsys`) VALUES('336','方案ID', 1, 'typeid', 'hidden', 1); ~~~ 这个SQL语句我们推荐放在安装包里而不是直接在你的开发环境执行插进去,如果你当前调试的系统要运行插进去也是可以的,对你来说是更省事,但 这样有一个不好的地方,就是你开发环境不好跟X1的升级做对比。因为你的开发环境插入这个方案ID后,就不能跟随X1升级了。如果你不考虑升级的话,那无所谓。 也就是说当前系统数据库若存在方案ID参数的话,就不会再跟随X1框架升级。 最后还有一个很关键的地方,你的组装方案里边如果有其它频道的话,并且那些频道也不想跟随开发者升级的话,就把对应的ID删除。比如 `qb_module` `qb_plugin` `qb_market` `qb_hook_plugin`找到这4个表,哪些频道插件钩子不想跟随开发者升级的话,就把相应的 `version_id` 的这项值改为0 这样他就不会再跟着开发者升级了,而只跟着你的方案升级。 我们建议方案组装的模块插件都不要跟随开发者升级,防止意外的升级有可能会影响到方案。所以你可以在安装文件`\application\install\sql\install.sql`最后加上如下代码 ~~~ UPDATE qb_module SET version_id=0; UPDATE qb_plugin SET version_id=0; UPDATE qb_market SET version_id=0; UPDATE qb_hook_plugin SET version_id=0; ~~~ 你本机的开发环境可以跟随模块开发者升级,你觉得有必要的才升级。到时再同步到方案里边去。 如果用户后来安装的插件就会跟着那个开发者升级的。