====== 由1.4升级到1.5 ======
**注意,在线升级请谨慎操作,提前做好网站备份!!**
升级后网站崩溃一般是因为启用中的插件或者主题使用了不兼容的代码,请在升级主程序前选用默认主题及禁用非官方插件,并关注所用主题或插件是否已升级适配1.5版本。
**建议在测试站中正常升级后再更新主站。**
===== 一般升级步骤 =====
- 通过FTP等方式备份整个网站目录及数据库。
- 确认所用主题是否已有1.5兼容版本,若无法确定请切换至默认主题。
- 确认所有插件是否已有1.5兼容版本,若无法确定请先禁用所有非官方插件。(注:官方默认主题及插件均可平稳升级)
- 进入网站应用中心界面检查程序更新并升级。
- 进入网站应用中心界面检查应用更新,并升级相应主题或插件。
- 若原主题暂未更新,请尝试切换回原在用主题,若前台页面报错,则通过''/zb_system/admin/index.php?act=ThemeMng''进入主题管理切换回至其它兼容主题。
- 若原某些在用插件未更新,请尝试逐一启用,测试是否异常,若出错,则通过''/zb_system/admin/index.php?act=PluginMng''进入插件管理停用不兼容插件。
- 若更新后无法进入后台,请通过FTP删除不兼容主题或插件,或通过原备份恢复网站。
===== 主题及插件代码升级 =====
==== 主题 ====
从此版本内,应用中心放开了对jQuery的限制。所以主题可以开始自带jQuery了。
主题在把最低版本号要求设置为1.5之后,需要对以下地方进行修改,才可上架到应用中心。可以参照此条Commit对照修改: https://github.com/zblogcn/zblogphp/commit/b99d9d752c7d0d27178d8639d3c9adc00c93106b
1. 查找主题内所有引用了common.js的地方,如:
修改为
系统自带jQuery 1.8.3和2.2.4两个版本,请根据你的主题情况自行选择。当然,你也可以自带任意版本的jQuery。
2. 找到
function RevertComment(i) {
// 其它内容
}
改写为
zbp.plugin.unbind("comment.reply", "system-default");
zbp.plugin.on("comment.reply", "你的主题ID", function(i) {
//其它内容
});
3. 找到
function CommentComplete(){
// 其它内容
}
改写为
zbp.plugin.on("comment.postsuccess", "主题ID", function () {
// 其它内容
});
4. 找到
function GetComments(logid, page) {
// 内容1
$.get(bloghost + "zb_system/cmd.php?act=CommentGet&logid=" + logid + "&page=" + page, function(data) {
// 内容2
});
}
改写为
zbp.plugin.on("comment.get", "主题ID", function(postid, page) {
// 内容1
});
zbp.plugin.on("comment.got", "主题ID", function(formData, data, textStatus, jqXhr) {
// 内容2
});
5. 把【VerifyMessage】全部改为【zbp.comment.post】
6. 把【RevertComment】全部改为【zbp.comment.reply】
7. 经过以上修改后,评论是否发送成功将以json格式返回信息。如你的代码仍然在对xml进行切分,请修改。
==== 插件 ====
=== 版本号 ===
自此版本,废弃原版本号规则,转为使用新规则。见:[[zblogphp:development:features:1.5:versionrule]] 。所以,版本号获取方式也随之更改。
1. 原来的【ZC_BLOG_VERSION】【$zbp->option['ZC_BLOG_VERSION']】【$blogversion】【$zbp->version】 仍然有效,
2. 另定义以下常量,请任意使用。
define('ZC_VERSION_MAJOR', '1');
define('ZC_VERSION_MINOR', '5');
define('ZC_VERSION_BUILD', '0');
define('ZC_VERSION_COMMIT', '1400');
define('ZC_VERSION_CODENAME', 'Deeplue');
define('ZC_VERSION', ZC_VERSION_MAJOR . '.' ZC_VERSION_MINOR . '.' . ZC_VERSION_BUILD . '.' . ZC_VERSION_COMMIT);
define('ZC_VERSION_DISPLAY', ZC_VERSION_MAJOR . '.' ZC_VERSION_MINOR);
define('ZC_VERSION_FULL', ZC_VERSION . '(' . ZBP_VERSION_CODENAME . ')');
=== 模板 ===
此版本废弃【$zbp->templates】。并且,模板**只在编译前**才会进行读取。
=== 获取编译前模板内容 ===
请注意,你无法通过修改获得的内容的值修改编译前模板内容。
$templates = $zbp->LoadTemplate();
== 检测模板存在 ==
现方案检测的是【编译后】的模板是否存在,而不是【编译前】的模板。差别在于,【编译后】的模板包括了[[zblogphp:development:theme:defend_default]]。
原方案:$exists = isset($zbp->templates['TEMPLATE_NAME']);
现方案:$exists = $zbp->template->hasTemplate('TEMPLATE_NAME');
== 对待编译的模板进行修改 ==
原方案:$zbp->templates['XXX'] = 'xxx';
现方案:Add_Filter_Plugin('Filter_Plugin_Zbp_BuildTemplate', 'YOUR_FUNCTION_HERE');
function YOUR_FUNCTION_HERE(&$templates) {
$templates['XXX'] = xxx
}
===== 其它 =====
废弃$zbp内以下属性:【categorylayer】【templates】【templatetags】【replaceTags】
【CreateOptoinsOf】系列函数和接口全部改名:https://github.com/zblogcn/zblogphp/commit/95feadd931f1716d59e1045baf712f1d43c0257e