Home  >  Article  >  Backend Development  >  ThinkPHP tag making tutorial, thinkphp tag tutorial_PHP tutorial

ThinkPHP tag making tutorial, thinkphp tag tutorial_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:23:221033browse

ThinkPHP tag making tutorial, thinkphp tag tutorial

This article explains how to make ThinkPHP tags with examples, which has certain reference value for ThinkPHP beginners or developers.

Generally speaking, ThinkPHP’s default tag parser is in Lib/Template/TagLib/TagLibCx.class (version 2.1 is located in ThinkPHP/Lib/Think/Template/TagLib/TagLibCx.class.php), which defines commonly used tag parsers. Commonly used ThinkPHP tags such as volist php

Here we will add a c58a1130350e5f417b7f5c3a9765ab7e tag parsing to this class.

1. Tag format:

<category parentid='0' ><{$cat.catname}></category>

2. Tag function:

Loop and output the column whose parent ID is parentid

3. Operation steps:

1. Add in the private attribute of tagLibCx.class:

'category'=array('attr'=>'parentid',level=>3)

where attr: attribute of the tag level nesting level of the tag

2. Add analytical function

The parsing principle of the

tag is to obtain the corresponding information by reading the xml file, and then piece it together into the required php source code, and finally output it on the page through echo.

The specific code is as follows:

public function _category($attr,$content)
{
//把标签的所有属性解析到$tag数组里面
$tag = $this->parseXmlAttr($attr,'category');
//得到标签里面的属性
$parentid= $tag['parentid'];
//定义页面解析的变量
$result = !empty($tag['result'])&#63;$tag['result']:'cat'; //定义数据查询的结果存放变量
$key = !empty($tag['key'])&#63;$tag['key']:'i';
$mod = isset($tag['mod'])&#63;$tag['mod']:'2';
//拼凑数据库查询语句 这里直接用了CategoryModel封装好的函数
$sql = "D('Category')->";
$sql .= "getCategorys(".$parentid.')';
//拼凑输出字符
$parsestr = '<&#63;php $_result='.$sql.'; if ($_result): $'.$key.'=0;';
$parsestr .= 'foreach($_result as $key=>$'.$result.'):';
$parsestr .= '++$'.$key.';$mod = ($'.$key.' % '.$mod.' );&#63;>';
$parsestr .= $content;//解析在category标签中的内容
$parsestr .= '<&#63;php endforeach; endif;&#63;>';
return $parsestr;
}

getCategorys method in CategoryModel:

/*
* 根据parentid得到栏目信息
* $parentid 父id
* $withSelf 是否包含自己
*/
public function getCategorys($parentid,$withSelf=0)
{
$parentid=intval($parentid);
$categorys=$this->where(array('parentid'=>$parentid,'ismenu'=>1))->order('listorder ASC')->select();
//包含自己
if($withSelf)
{
$categorys2=$this->where(array('id'=>$parentid,'ismenu'=>1))->limit(1)->select();
$category=array_merge($categorys,$categorys2);
}
return $categorys;
}

3. Quote on the page:

<category parentid='0'>
<{$cat.catname}>
</category>

Such a label is ready! ! We can get rid of the volist and dynamically output what we want on the page!

Using ThinkPHP to create a simple MVC-BLOG tutorial

There is a complete example in the example on the official website. Please read the manual and go through the example

How to use thinkphp framework? Tutorial

thinkphp is a small framework. Generally, if you know the mvc working mode, you will soon be able to handle thinkphp

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/840741.htmlTechArticleThinkPHP tag making tutorial, thinkphp tag tutorial This article explains how to make ThinkPHP tags with examples, for beginners of ThinkPHP Or developers may have some reference value. ...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn