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)则是可以显示的各种保留模式图形对象 ...
随机推荐
- 异步async、await和Future的使用技巧
由于前面的HTTP请求用到了异步操作,不少小伙伴都被这个问题折了下腰,今天总结分享下实战成果.Dart是一个单线程的语言,遇到有延迟的运算(比如IO操作.延时执行)时,线程中按顺序执行的运算就会阻塞, ...
- iOS报错总结
1. new Date('2018-07-18 14:58:32').getTime(); //在ios上拿报Invalid Date 无法转化 Safari 正确解析new Date ...
- BZOJ5487: [Usaco2018 Dec]Cowpatibility
Description 研究证明,有一个因素在两头奶牛能否作为朋友和谐共处这方面比其他任何因素都来得重要--她们是不是喜欢同 一种口味的冰激凌!Farmer John的N头奶牛(2≤N≤50,000) ...
- Linux——入门命令
授课内容: 0.linux系统由来 linux各种常用命令以及对命令参数选项的熟悉: 1.目录操作命令([跳转:查看自己当下的位置-绝对路径:查看任何路径下的目录内容]pwd(Print Workin ...
- js同步、异步、回调的执行顺序以及闭包的理解
首先,记住同步第一.异步第二.回调最末的口诀 公式表达:同步=>异步=>回调 看一道经典的面试题: for (var i = 0; i < 5; i++) { setTimeout( ...
- vs2015调试iisexpress无法启动的问题解决方案整理
我上传的项目代码被同事下载之后使用iisexpress调试一直报错,iisexpress无法启动只能用自己本地的iis,我本地的代码却没问题,试了两种解决办法,问题解决了,在此记录一下也总结一下 方法 ...
- php向mariaDB插入数据时乱码问题解决 --- mysqli_set_charset(设置默认字符编码)
参考文章: https://www.w3schools.com/php/func_mysqli_set_charset.asp http://php.net/manual/zh/mysqli.set- ...
- SpingBoot全局异常处理器被覆盖的解决办法
@controllerAdvice()注解 @ControllerAdvice()注解可以定义一个统一的异常处理类,我们可以定义多个统一异常处理类, 但这里我们需要注意一点,默认的@Controlle ...
- SQLLITE HELPER
using System;using System.Data.SQLite; namespace SQLiteSamples{ class Program { //数据库连接 ...
- port 执行命令的封装和参数详解
下面代码摘自rebar_utils.erl -module(tt7). %-export([start/0]). -compile(export_all). -define(FAIL, abort() ...