微擎的ifp ife ifpp
结论
ifp 当前用户是否有 控制器--方法 的权限 包括add edit del send view等 方法必带
ifpp 当前用户是否有 插件 的权限
ife 当前用户是否有 控制器--方法 的权限 编辑或添加 第二个参数是当前的数据数组 如果数组包含id 则验证edit方法 如果数组不包含 则验证add方法 第二个参数如果不带 完全等于ifp
ife是ifp的简化用法
下面是思路
先去搜索这几个函数的解析
$str = preg_replace('/{ifp\\s+(.+?)}/', '<?php if(cv($1)) { ?>', $str);
$str = preg_replace('/{ifpp\\s+(.+?)}/', '<?php if(cp($1)) { ?>', $str);
$str = preg_replace('/{ife\\s+(\\S+)\\s+(\\S+)}/', '<?php if( ce($1 ,$2) ) { ?>', $str);
function cv($permtypes = '') {
$perm = com_run('perm::check_perm', $permtypes);
return $perm;
}
if (!function_exists('cp')) {
function cp($pluginname = '') {
$perm = com('perm');
if ($perm) {
return $perm->check_plugin($pluginname);
}
return true;
}
}
function ce($permtype = '', $item = NULL) {
$perm = com_run('perm::check_edit', $permtype, $item);
return $perm;
}
cv为例子
com_run 的意思 com(perm) 类 执行check_perm
com(perm) = $model = EWEI_SHOPV2_CORE . 'com/' . strtolower($name) . '.php';
也就是Perm_EweiShopV2ComModel类
的check_perm 方法
这个方法 根据& 和| 来拆分参数 并调用check
check再往下看 调用了用户角色表 那应该就是校检权限
ifp和ife的区别在于check_perm和check_edit
看check_edit函数里面的一段
if (!($this->check_perm($permtype)))
{
return false;
}
if (empty($item['id']))
{
$add_perm = $permtype . '.add';
if (!($this->check($add_perm)))
{
return false;
}
return true;
}
$edit_perm = $permtype . '.edit';
if (!($this->check($edit_perm)))
{
return false;
}
核心区别是 check_edit 会自动转化为edit或add
其他就跟check_perm一样了
所以结论
ifp 当前用户是否有 控制器--方法 的权限 包括add edit del 可能有查看吧 方法必带
ifpp 当前用户是否有 插件 的权限
ife 当前用户是否有 控制器--方法 的权限 编辑或添加 第二个参数是当前的数据数组 如果数组包含id 则验证edit方法 如果数组不包含 则验证add方法
ife是ifp的简化用法
上面是跟下代码的大概推论 去验证了下
ife
比如{ife 'goods' $item} 后面的item参数 是用来验证是否要验证add还是验证edit方法
{ife 'merch.user' $item} ife的写法都是这样 控制器+model(不加add/edit/del/..方法) +当前的实际数组
ifp
{ifp 'messages.delete'}
{ifp 'meeting.live.notice.send'}
一定是 控制器+model+具体方法(add/edit/del/send..方法)
ifpp没见到用
所以猜测基本正确
转载于:https://www.cnblogs.com/dk1988/p/9116738.html
微擎的ifp ife ifpp相关推荐
- php ifp,人人商城微擎的ifp ife ifpp的作用
ifp 当前用户是否有 控制器--方法 的权限 包括add edit del send view等 方法必带 ifpp 当前用户是否有 插件 的权限 ife 当前用户是否有 控制器--方法 的权 ...
- php中{ifp}{ife}{ifpp}是什么意思、作用
ifp 当前用户是否有 控制器--方法 的权限 包括add edit del 可能有查看吧 方法必带 ifpp 当前用户是否有 插件 的权限 ife 当前用户是否有 控制器--方法 的权限 编辑 ...
- 微擎学习笔记二--模板视图中标签的if和ifp
ifp 当前用户是否有 控制器--方法 的权限 包括add edit del send view等 方法必带 ifpp 当前用户是否有 插件 的权限 ife 当前用户是否有 控制器--方法 的权限 编 ...
- 微擎学习随记_常用功能实现
微擎学习随记_常用功能实现 消息通知: 代码位置: addons/项目名/core/model/notice.php(设置微信信息通知和微信模板消息通知) 需求: 店铺得到收益之后以消息的形式通知店铺 ...
- 微擎 jssdk php文件,微擎register_jssdk分享到朋友功能无法使用的问题及解决办法
近期在做微信公众号应用开发时发现微擎register_jssdk分享到朋友功能无法使用,当前使用的微擎版本是1.8.2,通过查阅微信公众号官方的相关文档后发现jssdk的分享功能有进行调整. 引用官方 ...
- 微擎url模式解读_微擎开发文档之微擎执行主流程介绍
首先对微擎的工作原理做简单描述, 微擎使用规则和模块的机制来处理公众平台的请求数据并返回响应的结果. 执行流程描述为: 粉丝用户与公众号码进行对话或交互, 而后公众平台将粉丝用户的请求消息(当前包括: ...
- 微擎删除分类无法删除解决-select in效率低解决办法
今天朋友微擎后台微网站里的分类要删除,可是怎么删除也不能删除,同样的系统另一套却可以迅速删除. 后来查询到是查询语句的问题,朋友的平台用户量太大,数据太大,用了以下语句,造成效率太低: SELECT ...
- 微擎获取openid_微擎中使用微信之门接口,让订阅号也能直接以网页的方式获取OpenID...
开发微擎模块的时候 常会遇到一个问题: 只有服务号才能直接在网页上获取OpenID, 如果是订阅号就只能从对话消息中获取OpenID然后传到网页, 虽然微擎有个功能叫做"借用oAuth权限& ...
- [转]Linux 微擎系统搭建
本文转自:https://www.cnblogs.com/voidking/p/5296552.html 前言 时隔一年半,再次接触微信公众平台开发.相比于掌上大学.圈里.微站ABC.图灵机器人.小i ...
最新文章
- mysql服务器端的参数有很多_但是对于大多数初学者来说_mysql优化的重要参数 key_buffer_size table_cache...
- mac 黑窗口连接mysql_Mac系统Python、PyCharm安装及使用方法详解
- Git指令2 - 操作分支
- Spring Boot读取peoperties配置及@Value和@ConfigurationProperties区别和联系
- 一款免费的网络时间校准小程序
- 我在用的多功能电子书阅读器
- MyBatisPlus之逻辑删除
- Lake Shore Cernox低温温度传感器之温度探头
- 华硕重装后进入bios_华硕台式机重装系统win10按哪个键进入bios设置
- 主流加密通信应用Signal在中国“失联”
- 初学GWT-安装GWT
- Riak - 使用篇(1)
- 大话铁道部12306订票系统云架构
- 【1049】晶晶赴约会
- 工作日志:海康IPC SDK实时播放项目建立
- window安全小知识1——autorun.inf相关知识
- 输出 [2,100] 范围内所有的质数及质数的个数
- 网页设计基础笔记-11
- oracle 中文,汉字判断
- 经纬财富:日照怎么正确的加仓
热门文章
- android notification自动消失,Android开发 -- 状态栏通知Notification、NotificationManager详解...
- 招沿实业投资理财二三事教你轻松钱生钱
- 不会PS,如何在抖音制作PS教程短视频,变现方法如何?
- Allegro PCB快速调整差分对线宽与线距
- 分享10位国外网络营销怪才的网站
- 使用命令行转换 GPT 磁盘 MBR磁盘
- OpenCV之视频——将视频分割成图像
- 用matlab实现女声变男声步骤,男声变女声matlab程序
- 苹果添加无线网络连接服务器,iPhone不能连接部分WiFi网络,为什么?
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day7,java开发中常见中间件面试