【必看】微擎应用模块二次开发文档和初级教程手册
01.微擎的应用模块文件夹是addons,所有微擎应用模块都在这个文件夹里面。
02.运行环境推荐PHP版本5.6以上,mysql5.6,操作系统最好是Linux(centos)。
03.微擎允许对外公开访问的文件,就三个,分别是根目录api.php(微信开发者URL地址),/web/index.php(电脑端),/app/index.php(手机端)。
04.微擎的数据库等配置信息,放置在:/data/config.php文件中。
05.在微擎的manifest.xml配置文件中,direct的属性值要设置为0,比如:<entry * direct='0'>,如果设置成1,有可能出现不经过身份权限验证,就可以直接访问。
06.微信开发者URL地址那里接收到微信推送过来的数据,主要用processor.php文件来响应。
07.addons/zhiwu55com/template/*,这个文件夹下面都是电脑端的模块文件。
08.addons/zhiwu55com/template/mobile/*,这个文件夹下面都是手机端的模块文件,比如:链接应用入口的那些页面模块文件,都在这个文件夹下面。
09.微擎的数据表,默认以ims_开头。
10.常量:IA_ROOT,微擎程序安装目录,示例值:D:/wwwroot/wwwzhiwu55cn,注意:返回的值最后没有斜杠。
11.常量:ATTACHMENT_ROOT,微擎程序附件目录,示例值:D:/wwwroot/wwwzhiwu55cn/attachment
12.常量:MODULE_ROOT,当前模块目录,示例值:D:/wwwroot/wwwzhiwu55cn/addons/hzw_zhiwu
13.当需要引入include文件的时候,尽量以IA_ROOT为基准路径引入,比如:include_once IA_ROOT .'/addons/wwwzhiwu55cn/inc/hzw.class.php'
14.$_W(大写W),是系统中最为重要的全局变量,微擎系统中很多常用的数据都存储在这个变量之中
15.$_GPC,全局请求变量,获取 $_GET,$_POST,$_COOKIES 中的变量,即$_GPC=array_merge($_GET,$_POST,$_COOKIES);
16.$_W[‘siteroot’],网站URL根目录,示例值:http://www.zhiwu55.com/
17.$_W[‘siteurl’],原始链接,示例值:http://www.zhiwu55.com/web/index.php?m=xxx&c=yyyy&do=hzw,即当前浏览器地址栏那里的地址。
18.$_W[‘page’][‘title’],当前页面标题,在doWebZhiwu55**()函数中,通过设置这个变量,可以改变当前微擎网页的<title>$_W[‘page’][‘title’]</title>数值。
19.$_W[‘uniacid’],当前平台账号Uniacid,这个变量很重要,微擎可以多开,让无数的公众号可以接入进来,主要就是用$_W[‘uniacid’]来区分不同的公众号。
20.$_W[‘container’],App手机端平台终端设备,取值范围: wechat, android, ipad, iphone, ipod, unknown。
21.$_W[‘os’],App手机端平台操作系统,取值范围: windows (pc端), mobile(手机端), unknown。
22.可以通过$_W[‘container’]==“wechat” && $_W[‘os’]==“mobile”,来严格判断是否在微信环境中。
23.$_W[‘openid’],当前粉丝用户标识符,这个是重要的变量,一般认证通过的服务号可以无感获取得到,在很多功能场景中,都需要$_W[‘openid’]数值。
24.$_W[‘fans’],当前粉丝用户信息,城市信息,性别,关注公众号时间,取消关注公众号时间,等都可以从这个变量中获取得到。
25.$_W['jssdkconfig'],在App端分享转发的时候,需要用到的jssdk变量都在这里。
26.获取公众号其它粉丝的信息,不是当前粉丝,用mc_fansinfo($openid),其中$openid这个变量是公众号其它粉丝的openid
27.微擎电脑端PC后台的文件site.php,凡是以doWeb开头定义的函数都是电脑端的函数。
28.微擎App手机端的文件site.php,凡是以doMobile开头定义的函数都是App手机端的函数。
29.微擎是MVC结构,用$this->createMobileUrl()和$this->createWebUrl()来调用访问site.php中用doWeb**和doMobile定义的函数
30.在App手机微信端,转发分享朋友圈的时候,需要用到以http开头的完整URL路径,用murl('entry',array('m'=>$this->modulename,'do'=>'zhiwu55_function_name'),true,true)
31.微擎的数据库操作,都是以pdo_*为前缀,pdo_get('zhiwu55com', array('id >' => '55')),获取id大于55的数据,请注意:id和>之前,有一个英文空格,这个是必需的空格,不能省略。
32.数据库操作函数一共有:pdo_get,pdo_getcolumn,pdo_getall,pdo_getslice,pdo_fetch,pdo_fetchcolumn,pdo_fetchall,pdo_insert,pdo_update,pdo_delete,pdo_query,pdo_run,pdo_fieldexists,pdo_indexexists,pdo_tableexists,pdo_fieldmatch,pdo_debug
33.在微擎打开“控制台-站点设置-日志开关”,微信推送到微擎api.php的数据内容都可以在 /data/logs/ 日志文件中查看到。
34.在微擎模板文件*.html中,可以直接写入PHP源代码,输出花括号和变量不会被转义,用{##string##}
35.isetcookie()写入cookie值,写入后可以使用 $_GPC 来获取,同时也可以用igetcookie()来获取。
36.authcode()字符串加密或解密函数,这是一个神奇的函数。不同于base64_encode()和base64_decode()函数。
37.电脑PC端的顶部加上{template 'common/header'},底部加上{template 'common/footer'}
38.在电脑PC端使用tpl_form_field_audio()或者tpl_form_field_video()进行多媒体文件上传的时候,需要在“站点管理 - 附件设置 - 音频视频附件设置”那里添加相应的支持文件后缀文件类型才可以。
39.如果想调试SQL的语句,可以用pdo_debug();exit;会打印出所有执行的SQL语句出来给你分析研究。
40.当用$_W不能获取到用户信息的时候,可以用mc_oauth_userinfo()会弹出用户同意授权获取信息的弹框。
41.$_W['fans']['follow']用于判断是否关注了公众号,如果等于1表示关注了公众号。
42.在site.php的文件中,可以用$settings=$this->module['config'];$settings['xxxx']='yyyyy';$this->saveSettings($settings);的方式来修改“参数设置”那里的数值。
43.获取当前公众号在微擎中的配置信息用:pdo_get('uni_account', array('uniacid' => $_W['uniacid']))。
44.获取公众号的appid用:$_W['account']['key'],获取相对应的密钥用:$_W['account']['secret']。
45.如果$_W['account']['level']的数值是4,表示当前的公众号是认证通过的服务号。
46.在引入微信的jssdk地址的时候,建议不要加http协议名,直接用二个斜杠//开头,因为如果是https的页面,不允许加载http文件。