官网
教程
文档
官网文档
小程序集群与uniapp
小程序app接口教程
冰蓝世界版
阿赖耶识与随风版
网站首页
齐博X1教程专栏
文章列表
推荐
齐博首创钩子的使用方法
超级蜘蛛查
2024-02-28 16:28:56
50
齐博X1有两套钩子体系,第一套是基于TP思路设计的。跟外面的大同小异。现在重点讲一下第二套我们首创的使用方法。 首先说一下如何埋钩子,这个跟TP思路的钩子类似,就是在页面的任何地方加入如下代码即可 如下图 ![](https://box.kancloud.cn/dfa3dea891673320b9027d4d3b3ff9a8_897x692.jpg) `$this->get_hook('index_begin',$data=[],$this->user);` 它其实有5个参数, 第一个参数就是钩子标志,必须要唯一的, 第二个是参数`$data`是可以改变其值的,一般用在POST表单的变量,比如发表的时候,你可以中途篡改其中的某项值 第三个`$info`一般指从数据库取出的资料, 第四个`$array` 是综合项,比如里边有id fid之类的值, 第五项只能设置 `true` 或 `false` 默认是true 即同时调用 公共的文件 否则只能调用本频道插件的文件。 建议大家在开发频道或应用的时候,尽可能的多预留接口,埋好钩子,方便别人扩展二开。这个不会影响网站整体速度,因为这个不是预加载的,是访问到此页面的时候,才加载的。 ***** 下面再讲解一下如何使用? 如上图的文件`\application\common\controller\IndexBase.php` 里边加了一个`index_begin` 标志的钩子,那么就可以 创建目录` \application\common\ext\index_begin\` 在里边随便创建一个PHP文件,就可以实现钩子的调用了。 php的文件名必须是字母或数字或下画线或横杠线即负号 如下图 ![](https://box.kancloud.cn/58c6809f0943218a24b907fe4a0fbf01_692x282.jpg) 这种是把文件放在common目录是全站都能公用的。如果你的钩子文件只为具体某个频道考虑的话,就可以不要占用公共目录的资源,而只放在自己所在频道或插件目录即可。比如你只针对商城的钩子,就可以只在商城里边创建目录,如下所示: `\application\shop\ext\index_begin\` 如下图 ![](https://box.kancloud.cn/4e1c414fe97f26f471645bc31112f99c_775x276.jpg) 也就是说钩子文件即可以放在频道插件目录,也可以放在公共区域的common目录下。 放进去就立即生效,不用做任何设置。要停用,就只能手工把文件删除。 频道目录与公共目录,如果存在同名的钩子文件, 那么公共目录的那个钩子就不生效。频道目录的优先级最高。 并且频道目录的所有钩子执行完毕以后,再执行公共目录的钩子文件。 对于当前目录的钩子文件执行顺序如下: 数值越小,越先执行,也即数字最先,其次是字母。如果有带符号的情况下。横杠线即负号开头的最先。然后就数字,然后才是下画线开头,最后才是字母。字母的话,a比z的优先级高。大家的钩子如果有逻辑顺序的话,要注意文件的命名规则。 钩子里边的代码如果出现 ~~~ return true; return false; return []; return ''; return '这是内容'; ~~~ 就会直接把后面的所有钩子终止掉,也就是后面的钩子不会再执行。 一般情况,不要return 任何东西。实在要return 的话,你可使用 ~~~ return ; return null; ~~~ 这两种就不会终止后面的其它钩子执行。 包括第一种基于TP思路设计的钩子也是跟这个一样的情况。 在控制器里边用钩子,你可以直接使用当前类里边的属性及所有方法。因为本质上就相当于包含进来的代码。 而基于TP思路的钩子是不能 使用当前类的属性与方法的,因为它是执行引用外面的类。 如果不在控制器里边用钩子,比如在模型里边或者在模板里边用钩子的话,就用函数,而不能使用`$this->get_hook` 如下图 ![](https://box.kancloud.cn/84892577a1b20d5174ee278b972ae6d8_1122x565.jpg) ~~~ get_hook('cms_model_agree_begin',$data=[],$info,['id'=>$id],true); ~~~ 这里用的是函数 参数跟上面的一样的。 在模板中的话就这样使用 ~~~ {:get_hook('layout_body_head',$info,$userdb)} ~~~ 如下图 ![](https://box.kancloud.cn/a903b2dc4f0afdbc88c675a93ac3ef79_750x415.jpg) 在模型或模板中就不能使用当前的类的属性了,就跟TP思路的钩子差不多了。
本文链接:https://x1.wanxiangsucai.com/read/49.html
上一篇:
下一篇:齐博x1云标签插件-一件提取关键词无法使用的解决办法
相关文章推荐
1.
V系列如果发现被黑的排查方法附修复办法
2.
几个重要的方法函数
3.
万能数据统计调用方法
4.
小程序关注公众号的方法
5.
后台打不开,空间不支持pathinfo的解决方法
6.
隐藏index.php的方法
7.
小程序与公众号长期永久订阅消息的申请方法
8.
URL美化伪静态设置方法
9.
任意位置调用万能表单的方法 顺便借楼说下purl的作用
10.
018-栏目的终极方法get_sort
齐博X1教程专栏最新文章
1.
通过随机二次元壁纸接口向齐博x1 bbs系统发布信息
2.
齐博x1云标签插件-一件提取关键词无法使用的解决办法..
3.
关于thinkphp5
4.
齐博X1更新记录
5.
解决Web部署 svg/woff/woff2字体 404错误
6.
云市场注意事项
7.
如何调取当前模块ID
8.
URL伪静态设置
9.
QQ登录接口配置
10.
邮箱接口设置之QQ企业邮箱
齐博X1教程专栏文章推荐
1.
007-用{block}标记来分割布局模板
2.
任意位置调用万能表单的方法 顺便借楼说下purl的作用..
3.
如何给内容页自定义个性模板
4.
APP配置教程及签名工具下载
5.
使用宝塔面板php7.3的用户如果无法安装应用的解决办法..
6.
万能通用短信接口的配置
7.
视频直播接口设置
8.
直播录制为点播的配置
9.
论坛的内容调取与修改发布点赞接口
10.
再强调严禁用记事本改任何文件
建站工具推荐
您可能感兴趣的文章
通过随机二次元壁纸接口向齐博x1 bbs系统发布信息
齐博x1云标签插件-一件提取关键词无法使用的解决办法
关于thinkphp5
齐博X1更新记录
解决Web部署 svg/woff/woff2字体 404错误
云市场注意事项
如何调取当前模块ID
URL伪静态设置
QQ登录接口配置
邮箱接口设置之QQ企业邮箱