首页 > 软件开发 > 一招教您如何快速解决微擎二次开发

快速发布【软件开发】相关需求,专业顾问为您服务 快速发布

用此手机号发布,您还可以点击 更换

发布需求
请输入正确的手机号
请输入正确的验证码

您是不是要找:

  • 专家问诊,提供专业建议
  • 急速响应,体验省心
  • 根据需求灵活定制解决方案

一招教您如何快速解决微擎二次开发

标签:- 2017-7-25 作者:Lfdhjbsufvycn

微擎是微信公众平台自助引擎,是一款免费开源的微信公众平台管理系统。目前,微擎的云升级方案,控制了所有核心文件,不光是PHP修改,哪怕是改个图片,也会被云平台的升级覆盖,但总有自定义修改的时候。究竟该怎么办呢?小编就带您看看。


1.能随时增加新修改的文件


在 /framework/model/cloud.mod.php 中增加一个函数

function change_file_list(){

$list= array(

'/framework/model/cloud.mod.php',

'/web/source/cloud/dock.ctrl.php',

'/web/themes/default/cloud/upgrade.html',

);

return $list;

}

中间的数组就是咱们改过的文件名字和路径,你的每增加一个文件,都要在这里增加记录文件名字


2.同样这个/framework/model/cloud.mod.php 这文件。


找到在把本地文件的 md5 值上传给服务器时,选择备份的源代码目录里的没有改过的文件。

为了方便比对,我在这里设置了父目录 /../source 目录。如果你想放根目录,就用 /source

if(!empty($ret['files'])) {

$ignore = change_file_list();

foreach($ret['files'] as $file) {

if(in_array($file['path'],$ignore)){

$entry = IA_ROOT .'/../source'.$file['path'];

}else{

$entry = IA_ROOT . $file['path'];

}

if(!is_file($entry) || md5_file($entry) != $file['checksum']) {

$files[] = $file['path'];

}

}

}


3.dock.ctrl.php 是远程下载文件,找到 download action 判断一下,当文件是属于这个列表中时,把文件放到另一个目录中,注意dirname 是父目录路径函数。


if (in_array($ret['path'], change_file_list())) {

$path = dirname(IA_ROOT).'/source'.$ret['path'];

}


4.在升级时,把这些改过的文件特别标识出来。完成升级后,比对升级的内容,把新升级的补充到文件中。


/web/themes/default/cloud/upgrade.html

{php $change_file_lists = change_file_list('application');}

{loop $upgrade['files'] $line}

{if in_array($line,$change_file_lists)}*{/if}{if is_file(IA_ROOT . $line)}M{else}A{/if}{$line}

{/loop}


5.用比较软件比较两个目录就好了,只需要操作之间列表里打红星的文件就行了


以上小编提供的方法是不是很简单?快试试吧!

最新文章推荐

软件开发暂无最新文章查看全部推荐文章>

推荐人才