ecmall 学习记录2
1.ecmall 自带的写入日志方法:do_log4php("函数名","类名",$param); $param是参数
在类里调用写入之日的方法 需要先加载函数工具库 import('functions.lib');
生成的日志存在于 temp/logs。
配置路径就在 log4php.properties文件中,这个文件就在项目根目录下,找不到的话可以用everything找一下。
2.ecmall 引入微信jsssdk类库 import('文件名'); ecmall 引入微信类库;ecmall生成微信签名
判断是否为微信端:
function isWeixin()
{
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) {
return true;
}
return false;
}
获取微信签名:
/*start@author:hans@date:20160718*/
//引入微信授权
if( isWeixin() ){
import('weixinsdk');
import('functions.lib');
$weixin_config = require_once('data/weixin_config.php');
$jssdk = new JSSDK($weixin_config['appId'], $weixin_config['appSecret']);
$signPackage = $jssdk->GetSignPackage();
//do_log4php("display","FrontendApp",$signPackage);
$this->assign('wxsignPackage',$signPackage);
}
/*end@author:hans@date:20160718*/
3.后台一级菜单设置有个开启伪静态,开了和不开的区别很大,测试系统上没有开,线上开了,所以店铺分享可以正常用。
4.关于JS-SSDK中获得微信签名方法的修改
//地址没有入口文件 2017615 xiaolu
if (empty($request_uri)){ //没有入口文件的时候request_uri是为空的 打印一下$_SERVER 就知道该用什么啦 $request_uri=$_SERVER['REQUEST_URI'];
}
if (strpos($_SERVER['REQUEST_URI'],"from=")){ //如果是从分享的地址进来的,会有from $request_uri=$_SERVER['REQUEST_URI'];
}
//end
$url = "$protocol$_SERVER[HTTP_HOST]$request_uri"; $timestamp = time();
$nonceStr = $this->createNonceStr();
这个是针对功能需求进行的修改。
5. 个人中心:member.app.php index() $this->_curitem('overview'); //这个方法调用了_get_member_menu() 菜单数据就是从这里拿到的
个人中心的菜单在 frontend.base.php里的 _get_member_menu()方法中以数组的形式定义的
6.$user = $this->visitor->get();获取用户信息
$this->visitor->调用的方法 在ecapp.base.php里 访问者基础类 class BaseVisitor extends Object 中,访问者基础类,集合了当前访问用户的操作。
ecmall 学习记录2的更多相关文章
- ecmall 学习记录3
1.在ecmall.php 中 336行有一个函数 function lang_file($file) { return ROOT_PATH . '/languages/' . LANG . '/' ...
- ecmall 学习记录
1. /* 载入配置项 */ $setting =& af(MODULE); Conf::load($setting->getAll()); af方法定义如下: /** * 获取数组文件 ...
- Quartz 学习记录1
原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...
- Java 静态内部类与非静态内部类 学习记录.
目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...
- Apache Shiro 学习记录4
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...
- UWP学习记录12-应用到应用的通信
UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...
- UWP学习记录11-设计和UI
UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...
- UWP学习记录10-设计和UI之控件和模式7
UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...
- UWP学习记录9-设计和UI之控件和模式6
UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...
随机推荐
- flutter控件之ExpansionPanelList
import 'package:flutter/material.dart'; class LearnExpansionPanelList extends StatefulWidget{ @overr ...
- 【Python游戏编程03--pygame事件与设备轮询】
一.pygame事件 1.pygame事件可以处理游戏中的各种事情,完整的事件列表如下: QUIT,ACTIVEEVENT,KEYDOWN,KEYDOWN,MOUSEMOTION,MOUSEBUTTO ...
- css的再深入9(更新中···)
一 单位 1.px 就是一个基本的单位 像素 2.em 也是一个单位 用父级元素的字体大小乘以em前面的数字.如果父级没有就继承上一个父级直到body,如果body没有那就默认是16px. 3.rem ...
- TASE2017
PATTERN系列之五 I. Introduction To ease the expression of real-time requirements, Dwyer, and then Konrad ...
- JavaScript形而上的策略模式
什么是策略模式? 先看代码片段1. // 代码片段1 var bonus = new Bonus(); bonus.setSalary(10000); bonus.setStrategy(new pe ...
- Js异常的处理
博客1: https://segmentfault.com/a/1190000011481099 express中的异常处理:https://blog.fundebug.com/2017/12/06 ...
- postman(五):在不同接口之间传递数据
为了更灵活地构造请求以及处理响应数据,postman提供了Pre-request-Script和Tests,在这两个标签中可以编写js代码辅助测试.之前学习了在发送请求的Tests标签如何添加断言以及 ...
- jmeter之接口测试(http接口测试)
基础知识储备 一.了解jmeter接口测试请求接口的原理 客户端--发送一个请求动作--服务器响应--返回客户端 客户端--发送一个请求动作--jmeter代理服务器---服务器--jmeter代理服 ...
- Android中使用Thread线程与AsyncTask异步任务的区别
最近和几个朋友交流Android开发中的网络下载问题时,谈到了用Thread开启下载线程时会产生的Bug,其实直接用子线程开启下载任务的确是很Low的做法,那么原因究竟如何,而比较高大上的做法是怎样? ...
- mysql linux安装教程
1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6.33,通用版,linux下64位 也可 ...