ThinkPHP3.2.3 自定义标签库的使用
自定义 标签 使用
2023-09-11 14:17:03 时间
ThinkPHP 3.2.3 手册中标签库驱动的地址是: http://www.kancloud.cn/manual/thinkphp/1859
标签库的地址是:http://www.kancloud.cn/manual/thinkphp/1799
每一个标签库是一个独立的标签库文件,标签库中的每一个标签完成某个功能。
例如:可以通过创建自定义标签进行导航栏(nav)的数据调用。
在创建自定义标签之前可以先参考 ThinkPHP 自身的标签库驱动 ./ThinkPHP/Library/Think/Template/TagLib 下的 Cx.class.php 和 Html.class.php。
首先在 Home 应用下创建 TagLib 目录:./Application/Home/TagLib,在目录中新建 Cate.class.php:
<?php /* * 自定义标签库 */ namespace Home\TagLib; use Think\Template\TagLib; class Cate extends TagLib{ //自定义标签的属性 protected $tags = array( 'nav' => array( 'attr' => 'limit,order', 'close' => 1 //闭合标签 ) ); public function _nav($attr,$content) { $str = <<<str <?php \$cate = M('cate')->order("{$attr['order']}")->limit({$attr['limit']})->select(); use Admin\Common\Category; //载入递归无限级分类 \$cate = Category::level_layer(\$cate);//多维数组 foreach(\$cate as \$cate_v): extract(\$cate_v); ?> str; $str .= $content; $str .= '<?php endforeach;?>'; return $str; } }
自定义标签库 Cate 类定了 nav 标签,包含的属性有 limit 和 order,同时定义该标签为闭合标签,也就是在视图中引用的格式是<nav></nav>,并把查询出数据以字符串的形式返回。
在配置文件 ./Application/Home/Conf/config.php 中添加:
<?php return array( //'配置项'=>'配置值' //标签库 'TAGLIB_BUILD_IN' => 'Cx,Home\TagLib\Cate', //Cx代表核心标签库 'TAGLIB_PRE_LOAD' => 'Home\TagLib\Cate', );
使得自定义标签库驱动能够自动加载。
最后在需要引入标签库的视图文件 ./Application/Home/View/Common/nav.html 中调用:
<!--自定义标签库--> <nav order='sort ASC'> <li> <a href="">{$name}</a> <ul> <foreach name="child" item="v"> <li><a href="">{$v.name}</a></li> </foreach> </ul> </li> </nav> <!--自定义标签库-->
相关文章
- 第四讲 自定义Realm来实现身份认证
- activiti自定义流程之整合(五):启动流程时获取自定义表单
- 权限管理(java+struts2(自定义标签)实现)--------->全代码演示
- java:jsp: 一个简单的自定义标签 tld
- 自定义抽象类计算计算圆面积
- [WCF] Restful 自定义宿主
- 【COCOS2DX-LUA 脚本开发之四】使用TOLUA++编译PKG,从而创建自定义类让LUA脚本使用
- 转--Android中自定义字体的实现方法
- 【目标检测】YOLOv5:标签中文显示/自定义颜色
- Qt编写自定义控件54-时钟仪表盘
- MySQL自定义函数示例
- 88. SAP UI5 Mock 服务器如何实现自定义 Function Import
- 【分享】博客美化(2)自定义博客样式细节
- 如何实现Docker应用的自定义弹性伸缩
- (八十)c#Winform自定义控件-分割线标签-HZHControls
- Dubbo源码-Dubbo是如何随心所欲自定义XML标签的
- thinkphp自定义标签库
- Win10 钉钉工作台自定义应用跳转浏览器错误,windows找不到文件......
- Flutter AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换
- python工具方法 31 通过导入自定义dll实现显存释放
- Chemex3.4 打印标签如何更改代码自定义
- WPF 自定义DataGrid控件样式模板5个