首页 > 其他分享 >thinkcmf 前台模板钩子 实现行为

thinkcmf 前台模板钩子 实现行为

时间:2024-05-21 14:41:40浏览次数:18  
标签:实现 钩子 thinkcmf BeforeHeadEnd 前台 BeforeHeadEndListener 模板

ThinkCMF中系统给前台模板内置很多钩子,但需要模板开发者在模板中正确位置增加相应钩子,插件才能在模板中正确使用。以下的所有钩子实现时都不用返回内容,都可以直接echo要显示的模板内容;示例

比如 我们要实现这个模板before_head_end行为:

首先在event.php中新增 'BeforeHeadEnd' => [ '\cmf\listener\BeforeHeadEndListener']数组, 然后在对应的地方实现BeforeHeadEndListener类就可以了。

如果是老的框架则是需要在tags.php中新增 'BeforeHeadEnd' => [ '\cmf\listener\BeforeHeadEndListener']数组, 然后在对应的地方实现BeforeHeadEndListener类就可以了。

 

标签:实现,钩子,thinkcmf,BeforeHeadEnd,前台,BeforeHeadEndListener,模板
From: https://www.cnblogs.com/hhwww/p/18203953

相关文章

  • LCA[模板]
    #include<bits/stdc++.h>#defineintlonglong#defineMAXN500010usingnamespacestd;structedge{intnxt,to;};edgee[MAXN*2];inth[MAXN],ei;voidadd(intx,inty){ei++;e[ei].to=y;e[ei].nxt=h[x];h[x]=ei;}intu[......
  • C++常用模板
    常用模板:1.组合数(注意\(N\)与\(mod\))点击查看代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstllN=1e3+10,mod=998244353;lln,a[N],jc[N],dp[N],ans;voidinit(){ jc[0]=1; for(inti=1;i<N;i++)jc[i]=jc[i-1]*i%mod;}llksm......
  • C123【模板】扩展域并查集 P1892 [BOI2003] 团伙
    视频链接:C123【模板】扩展域并查集P1892[BOI2003]团伙_哔哩哔哩_bilibili  P1892[BOI2003]团伙-洛谷|计算机科学教育新生态(luogu.com.cn)//扩展域并查集#include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;intn,m,a,b,......
  • 信息安全事件应急处理报告模板
    目录一、概述1.1应急处理服务背景1.2应急处理服务目的1.3应急处理服务范围1.4应急处理服务依据1.4.1应用处理服务委托协议1.4.2基础标准与法律文件1.4.3参考文件二、应急处理服务流程三、应急处理服务内容和方法3.1准备阶段3.1.1准备阶段工作流程3.1.2准备阶段处理过程3......
  • ide创建maven项目时,选择哪个模板
    创建新的java项目时,选择maven框架比较节省时间,因为部分文件和目录都会给你建好,免得自己再费力创建。  我们常用的三个框架为:1、cocoon-22-archetype-webapp 【如果创建带有页面的项目,可以选择这个】目录结构: 2、maven-archetype-quickstart  【......
  • mybatis底层模板模型是什么
    mybatis底层模板模型是建造者模式和模板方法模式的结合。建造者模式用于创建SqlSessionFactory和SqlSession对象。模板方法模式用于执行SQL语句和处理结果集。mybatis是对JDBC的再一次封装,不管怎么进行包装,还是会有获取连接、preparedStatement、封装参数、执行这些步骤......
  • 利用MKL实现OpenCV的模板匹配(matchTemplate)
    基于FFT实现OpenCV的模板匹配(matchTemplate)以TM_CCORR_NORMED为例,因为这个实现简单,并且效率高。先看公式\[R(x,y)=\frac{\sum_{x',y'}(T(x',y')\cdotI(x+x',y+y'))}{\sqrt{\sum_{x',y'}T(x',y')^2\cdot\sum_{x',y'}I(......
  • 扫描线模板
    #include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;constintN=1e6+5;//本模板是从左往右扫的,从下往上扫同理#definels(rt<<1)#definers(rt<<1|1)i64cover[N*8];//存放i节点对应区间覆盖情况的值i64n;i64len[N*8];i64yy[N*2];/......
  • template之变参模板学习
    转自:https://www.cnblogs.com/qicosmos/p/4325949.html,讲的很好1.介绍C++11的新特性--可变模版参数(variadictemplates)对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。 要用三个点来定义:template<class...T>voidf(T...args); 省略号的作用有两个:1.声明......
  • 低开开发笔记(七): 换引擎,点击跳转模板样式
    好家伙, 完整代码已开源https://github.com/Fattiger4399/ph-questionnaire.git 1.思路现在,我们的需求是,点击对应的模板,更换对应的模板数据   2.上代码<el-menudefault-active="2"class="el-menu-vertical-demo"@open="handleOpen"@close="handleClose"......