热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

thinkphp自定义标签

有了模板标签让网站前台开发更加快速和简单,更能节省时间原本由程序员来完成的工作,现在只要懂得html代码就能自己建设出属于自己的网站,接触过dedecms、phpcms等内容管理系统的人都知道.

有了模板标签让网站前台开发更加快速和简单,更能节省时间原本由程序员来完成的工作,现在只要懂得html代码就能自己建设出属于自己的网站,接触过dedecms、phpcms等内容管理系统的人都知道,cms的前台都是使用模板标签来调用数据,例如调用文章列表

dedecms:

    •  
    • {dede:arclist row='10' orderby='id desc' titlelen=''
    •           
    • [field:title]
    •  
    • {/dede:arclist} 
     
  1. phpcms: 
    •  
    • {pc:content action="hits" catid="6" num="10" order="views DESC"
    •      {loop $data $r
    •        
    • {$r[title]}
    •  
    •      {/loop} 
    • {/pc} 
     

这就是它们强大之处,接下来介绍一下THINKPHP强大的TAG扩展库,thinkphp自带以个tag扩展库只要我们继承TagLib就能随心所遇的定义属于自己的标签.

命名规范:

TagLib+标签库名称.class.php

例子下面的例子是实现调用导航,文件名称TagLibNav.class.php

  1. class TagLibNav extends TagLib { 
  2.     //attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次 
  3.     // 标签定义 
  4.     protected $tags = array
  5.         
  6.         'nav' => array('attr' => 'limit,order''level' => 3,'close'=>1), 
  7.     ); 
  8.  
  9.     //定义查询数据库标签 
  10.     //attr是属性列表,$content是存储标签之间的内容的 
  11.     public function _nav($attr$content) { 
  12.         $tag=$this->parseXmlAttr($attr,$content); 
  13.         $cate=M('Channel'); 
  14.         $tb=$cate->order($tag['order'])->limit($tag['limit'])->select(); 
  15.         $str=''
  16.         for($i=0;$i<count($tb);$i++) 
  17.         { 
  18.           $c=str_replace(array("[filed:id]","[filed:name]"),array($tb[$i][&#39;id&#39;],$tb[$i][&#39;name&#39;]),$content); 
  19.           $str.=$c
  20.         } 
  21.        return $str
  22.     } 
  23. ?> 

html 调用方式:

  1. <tagLib name="nav" />  //必须在头部进行引用否则会出错 
  2. <html> 
  3. <head> 
  4.  <title>tablisttitle> 
  5. head> 
  6. <body> 
  7.     <div class="nav"> 
  8.      <ul> 
  9.        <li>首页li> 
  10.        <nav:nav limit=&#39;4&#39; order=&#39;id asc&#39;> 
  11.          <li><a href="[filed:id]">[filed:name]a>li> 
  12.        nav:nav> 
  13.      ul> 
  14.   div> 
  15.  body> 
  16. html> 

配置文件

&#39;APP_AUTOLOAD_PATH&#39;=>&#39;@.TagLib&#39;, //TagLib的位置   @.表示当前文件夹下

&#39;TAGLIB_BUILD_IN&#39;=>&#39;Cx,Nav&#39;,  //Cx是thinkphp基础类库的名称必须引用否则volist等标签就无法使用,Nav是自己定义的标签名称

控制器:

  1. class IndexAction extends Action{ 
  2.     public function index() { 
  3.         $this->display(); 
  4.     } 
  5. ?> 

这样在控制器中就不用写很多的代码咯,是不是很轻松?


推荐阅读
  • 本文探讨了如何在JavaScript中调用PHP函数及实现两者之间的有效交互,包括通过AJAX请求、动态生成JavaScript代码等方法。 ... [详细]
  • CGroups: 资源管理和控制
    CGroups(Control Groups)是Linux内核提供的一个功能,旨在限制、记录和隔离进程组使用的物理资源,如CPU、内存和I/O等。它通过精细的资源管理,支持现代容器技术如Docker的资源限制需求。 ... [详细]
  • 深入解析Java中的锁类型及其应用场景
    本文详细介绍了Java中常见的锁类型,包括乐观锁与悲观锁、独占锁与共享锁、互斥锁与读写锁、可重入锁、公平锁与非公平锁、分段锁、偏向锁、轻量级锁、重量级锁以及自旋锁。每种锁的特性、作用及适用场景均有所涉及。 ... [详细]
  • 本文探讨了HDU 4035的问题,涉及一个由n个房间组成的迷宫,这些房间通过n-1条隧道相互连接,形成一棵树结构。任务是从起点1号房间出发,计算到达出口所需经过的平均隧道数量,考虑了在每个房间中可能发生的三种情况及其相应概率。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • 下面根据配置文件,来说明一些底层与webservices的关系:回顾一下servlet的映射模式。我们知道,servlet是从javax.servlet.http.HttpServ ... [详细]
  • 一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ... [详细]
  • 本文详细介绍了如何通过Percona插件监控MySQL 5.7数据库,包括环境准备、插件安装、配置调整及数据测试等步骤,旨在为用户提供一个高效且稳定的监控解决方案。 ... [详细]
  • 本文介绍了如何通过安装 VirtualBox 和 Vagrant 来快速搭建和管理虚拟机环境。我们将详细探讨如何选择合适的 Box 镜像,以及如何高效地下载、添加和管理这些镜像。 ... [详细]
  • HTML中用于创建表单的标签是什么
    本文将详细介绍HTML中用于创建表单的标签及其基本用法,包括表单的主要特性和常用的属性设置。如果您正在学习HTML或需要了解如何在网页中添加表单,这将是一个很好的起点。 ... [详细]
  • SQL注入实验:SqliLabs第38至45关解析
    本文深入探讨了SqliLabs项目中的第38至45关,重点讲解了堆叠注入(Stacked Queries)的应用技巧及防御策略。通过实际案例分析,帮助读者理解如何利用和防范此类SQL注入攻击。 ... [详细]
  • 如何将Redis配置为后台服务
    本文介绍了在安装Redis后,如何通过修改配置文件使其以守护进程模式在后台运行,避免因控制台被占用而无法进行其他操作的问题。 ... [详细]
  • Linux 文件系统结构详解
    本文详细介绍了Linux操作系统的文件系统结构,包括其独特的树状目录体系、根目录的作用、目录与磁盘分区的关系等,并对各主要目录的功能进行了深入解析。 ... [详细]
  • KKCMS代码审计初探
    本文主要介绍了KKCMS的安装过程及其基本功能,重点分析了该系统中存在的验证码重用、SQL注入及XSS等安全问题。适合初学者作为入门指南。 ... [详细]
author-avatar
潇洒看不惯_185
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有