onethink 后台添加用户行为日志
来源:互联网 发布:域名备案买什么服务器 编辑:程序博客网 时间:2024/05/16 05:11
根据onethink的手册里面说的对用户行为进行设计,例如我需要记录什么时间谁下载了什么文章
什么时间和谁原来的日志中都已经提供了相应的代码,只要使用[user|get_nickname]和[time|time_format]就可以获得。
现在就是需要获得下载的文章的内容。
在Application下的Common下的Common中的function.php中写一个 action_log1函数主要是为了获得download_id和get_subject函数。
这个是对action_log1的使用,以及参数配置,重点是第一个参数,第三个参数,最后一个参数。
将这一行放在你想记录的位置,即下载的controller代码位置即可。
action_log1('download','document_download',$id,12,$uid);
下面是action_log1的定义,是基于action_log做的,主要是添加了download_id
function action_log1($action = null, $model = null,$download_id=null, $record_id = null, $user_id = null){
//参数检查
if(empty($action) || empty($model) || empty($record_id)){
return '参数不能为空';
}
if(empty($user_id)){
$user_id = is_login();
}
//查询行为,判断是否执行
$action_info = M('Action')->getByName($action);
if($action_info['status'] != 1){
return '该行为被禁用或删除';
}
//插入行为日志
$data['download_id'] = $download_id;
$data['action_id'] = $action_info['id'];
$data['user_id'] = $user_id;
$data['action_ip'] = ip2long(get_client_ip());
$data['model'] = $model;
$data['record_id'] = $record_id;
$data['create_time'] = NOW_TIME;
//解析日志规则,生成日志备注
if(!empty($action_info['log'])){
if(preg_match_all('/\[(\S+?)\]/', $action_info['log'], $match)){
$log['download_id'] = $download_id;
$log['user'] = $user_id;
$log['record'] = $record_id;
$log['model'] = $model;
$log['time'] = NOW_TIME;
$log['data'] = array('user'=>$user_id,'model'=>$model,'record'=>$record_id,'time'=>NOW_TIME);
foreach ($match[1] as $value){
$param = explode('|', $value);
if(isset($param[1])){
$replace[] = call_user_func($param[1],$log[$param[0]]);
}else{
$replace[] = $log[$param[0]];
}
}
$data['remark'] = str_replace($match[0], $replace, $action_info['log']);
}else{
$data['remark'] = $action_info['log'];
}
}else{
//未定义日志规则,记录操作url
$data['remark'] = '操作url:'.$_SERVER['REQUEST_URI'];
}
M('ActionLog')->add($data);
if(!empty($action_info['rule'])){
//解析行为
$rules = parse_action($action, $user_id);
//执行行为
$res = execute_action($rules, $action_info['id'], $user_id);
}
}
下面这个函数提供一个id,然后根据id获得数据库中Document_download这个表中相对应的题目subject
function get_subject($id = NULL){
$download=D('Document_download');
$subject=$download->where("id='$id'")->getfield('subject');
return $subject;
}
然后再后台使用这段代码就可以获得了下载文章的题目。
[download_id|get_subject]
- onethink 后台添加用户行为日志
- onethink后台添加自定义菜单不显示的解决方法(转)
- onethink后台添加自定义菜单不显示的解决方法
- weiphp2.0:关于OneThink后台添加密码重置的功能
- 用户行为日志的采集
- 用户行为日志的采集
- 用户行为日志的采集
- OneThink忘记密码 OneThink重置后台密码
- onethink 用户前台登录注册,以及后台可以控制用户权限(待更)
- onethink后台内容模板编辑器
- 【分享】互联网用户行为日志数据集
- 利用rsyslog 配置用户行为日志审计
- OneThink修改后台文档列表排序规则
- OneThink修改后台文档列表搜索规则
- Yii2 后台添加《操作日志》的功能
- 后台代码添加用户自定义控件
- 用户行为分析之--apache日志分析(一)
- 用户行为分析之--apache日志分析(二)
- 剑指offer--重构二叉树
- 自动接听电话的另一种思路(只需要root权限)
- Spring一
- android 自定义View开发实战(二) CustomCircleView
- 【机器学习】Linear least squares, Lasso,ridge regression有何本质区别?
- onethink 后台添加用户行为日志
- 负载均衡
- ACM博弈学习小结
- 课后小结面向对象
- 第一次写技术博客
- UML9种图形
- web 文件上传和下载
- 深入解析hashcode,hashMap源码
- spring MVC