这篇文章主要介绍了
thinkphp模板自定义标签使用方法,需要的朋友可以参考下
使用模板标签可以让网站前台开发更加快速和简单,使用过dedecms、phpcms等内容管理系统的人应该都知道,cms的前台都是使用模板标签来调用数据。以调用文章列表为例:
dedecms可以写成:
<ul>
{dede:arclist row='10' orderby='id desc' titlelen=''}
<li>[field:title]</li>
{/dede:arclist}
</ul>
phpcms可以写成:
<ul>
{pc:content action="hits" catid="6" num="10" order="views DESC"}
{loop $data $r}
<li>{$r[title]}</li>
{/loop}
{/pc}
</ul>
ThinkPHP的自定义标签同样能够实现这样强大的功能。ThinkPHP自定义标签通过TAG扩展库来实现。而ThinkPHP本身就自带了一个tag扩展库只要我们继承TagLib就能随心所遇的定义属于自己的标签。
命名规范:
TagLib+标签库名称.class.php
下面以实现调用导航为例加以说明
文件TagLibNav.class.php如下:
<?php
class TagLibNav extends TagLib {
//attr 属性列表
//close 是否闭合(0 或者1 默认1)
//alias 标签别名
//level 嵌套层次
// 标签定义如下:
protected $tags = array(
'nav' => array('attr' => 'limit,order', 'level' => 3,'close'=>1),
);
//定义查询
数据库标签
//attr是属性列表,$content是存储标签之间的内容的
public function _nav($attr, $content) {
$tag=$this->parseXmlAttr($attr,$content);
$cate=M('Channel');
$tb=$cate->order($tag['order'])->limit($tag['limit'])->select();
$str='';
for($i=0;$i<count($tb);$i++)
{
$c=str_replace(array("[filed:id]","[filed:name]"),array($tb[$i]['id'],$tb[$i]['name']),$content);
$str.=$c;
}
return $str;
}
}
?>
HTML页面调用方式:
<tagLib name="nav" /> //必须在头部进行引用否则会出错
<html>
<head>
<title>tablist</title>
</head>
<body>
<div class="nav">
<ul>
<li>首页</li>
<nav:nav limit='4' order='id asc'>
<li><a href="[filed:id]">[filed:name]</a></li>
</nav:nav>
</ul>
</div>
</body>
</html>
配置文件:
'APP_AUTOLOAD_PATH'=>'@.TagLib', //TagLib的位置 @.表示当前文件夹下
'TAGLIB_BUILD_IN'=>'Cx,Nav', //Cx是thinkphp基础类库的名称必须引用否则volist等标签就无法使用,Nav是自己定义的标签名称
控制器:
<?php
class IndexAction extends Action{
public function index() {
$this->display();
}
}
?>
至此实现了自定义标签,在控制器中也不用写很多的代码了。
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《
smarty模板入门基础教程》及《PHP模板技术总结》。
希望本文所述对大家基于Think
PHP框架的PHP程序设计有所帮助。
原文链接:
http://www.kubiji.cn/topic-id3554.html
分享到:
相关推荐
下面将详细解释如何在ThinkPHP 3.0版本中实现自定义标签及其使用方法。 1. **自定义标签的作用** 自定义标签是ThinkPHP模板引擎的扩展,它可以将复杂的业务逻辑或重复的代码块封装起来,提高代码的可读性和复用性...
在ThinkPHP框架中,自定义标签是用于扩展模板功能的一种机制,允许开发者在模板语言中加入自定义的功能,如执行特定的逻辑、查询数据库等,而不必在模板中写入复杂的PHP代码或通过Action层传递数据。这不仅增强了...
下面将详细讲解如何在ThinkPHP模板中使用自定义函数。 首先,自定义函数必须放置在项目应用目录下的`common`文件夹中的`common.php`文件中。这是关键步骤,因为框架会自动加载这个文件,从而使定义的函数在模板中可...
********** TP自定义模板pc标签(Pctag:pc) ************ 功能类似PHPcms的pc标签功能。模板标签主动的调用数据源,获取数据后再自行组织展示。支持取模板assign的赋值变量,支持$_GET,$_SERVER等
通过对标签属性的处理和模板中标签的使用,可以看出ThinkPHP分组下自定义标签库在实际开发中的灵活性和便捷性。 综上所述,ThinkPHP框架中自定义分组标签库的创建和使用是框架高级功能的重要组成部分,它提升了开发...
如果想更深入地学习ThinkPHP5,可以查看本站专题提供的其他教程和总结,例如《ThinkPHP入门教程》、《ThinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》等,这些资源将帮助你全面掌握ThinkPHP5框架的使用。...
ThinkPHP模板自定义函数语法如下: 格式:{:function(…)} (参考官方帮助文档:http://thinkphp.cn/Manual/196) 利用这个,我们来试做加法和减法。 一、在ThinkPHP中定义函数。在项目的common文件夹下新建common....
本文将详细介绍thinkPHP2.1自定义标签库的导入方法,这包括标签库的定义、使用以及如何利用自定义标签库实现更高效的数据展示和处理。 首先,我们要了解thinkPHP的标签库系统是如何工作的。在thinkPHP框架中,标签...
本文将详细解释如何在ThinkPHP中实现这一功能,并通过实例展示具体的操作方法。 首先,我们来了解ThinkPHP中的错误处理机制。ThinkPHP框架在处理程序错误时,通常会有一个默认的错误处理流程,包括显示错误信息、...
当模板引擎遇到自定义标签时,会查找相应的标签类并执行其解析方法。开发者可以在解析方法中编写获取数据、处理数据以及生成HTML输出的代码。 5. **与PHPcms的pc标签对比** PHPcms的pc标签也是为了解决模板中调用...
在ThinkPHP模板中,有多种方式来输出变量。例如,使用`{:}`快捷输出变量,如`{:function(…)}`执行方法并输出返回值;`{~function}`执行方法但不输出;`{@var}`输出Session变量;`{#var}`输出Cookie变量;`{&var}`...
在实际应用中,ThinkPHP的模板系统支持变量输出、自定义函数、条件判断语句等多种功能,可以满足复杂的页面逻辑需求。同时,ThinkPHP也支持与其他模板引擎集成,如Smarty,提供了更多的灵活性。 总的来说,掌握...
ThinkPHP模板引擎提供了一系列标签,简化了视图层的开发。如`volist`用于遍历数组,`eq`和`neq`用于条件判断,`assign`用于变量赋值,`include`用于引入子模板等。合理利用这些标签,可以提高模板的可读性和可维护性...
`,之后就可以在模板中使用自定义标签`<mytag:example/>`。 多层嵌套是处理复杂页面结构时常用的技术。在ThinkPHP中,模板可以包含其他模板,这些被包含的模板还可以再包含其他模板,形成多级嵌套。这使得布局和...
4. 模板引擎:内置模板引擎,支持自定义模板语法,使前后端分离更加容易。 四、适用场景 这款后台源码适用于开发内容管理系统(CMS)、客户关系管理(CRM)、企业资源计划(ERP)等后台系统,尤其对于需要处理多个...
【标签】"大大按时按时"这部分信息可能是输入错误或者无关的标签,无法直接关联到ThinkPHP商城模板的知识点。在正常的上下文中,标签可能会包含与框架版本、模板风格、响应式设计、SEO优化等相关关键词。 【文件...
ThinkPHP框架内置的模板引擎名为ThinkTemplate,这是一款专为ThinkPHP设计的高性能模板引擎,它基于XML标签库技术,支持动态编译与缓存,以及自定义标签库。主要特性包括: 1. **混合标签支持**:兼容XML标签库与...
以上内容仅为ThinkPHP模板中函数使用方法的一个简单概述。在实际开发中,开发者可以根据项目需求灵活运用模板语言,结合PHP函数和自定义函数,以实现复杂的数据处理和页面呈现。对于更多ThinkPHP相关知识,可以参考...