亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ThinkPHP標(biāo)簽制作教程

 更新時(shí)間:2014年07月10日 11:34:44   投稿:shichen2014  
這篇文章主要介紹了ThinkPHP標(biāo)簽制作方法,需要的朋友可以參考下

本文以實(shí)例講解了ThinkPHP標(biāo)簽的制作方法,對于ThinkPHP的初學(xué)者或者開發(fā)人員都有一定的借鑒價(jià)值。

一般來說,ThinkPHP的默認(rèn)標(biāo)簽解析器在Lib/Template/TagLib/TagLibCx.class(2.1版本位于ThinkPHP/Lib/Think/Template/TagLib/TagLibCx.class.php)中,里面定義了常用的如volist php 等常用ThinkPHP的標(biāo)簽

這里我們就在這個(gè)類中添加一個(gè)<category>的標(biāo)簽解析。
 
一、標(biāo)簽格式:

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

二、標(biāo)簽作用:

循環(huán)輸出父類id是parentid的欄目

三、操作步驟:

1.在tagLibCx.class 的私有屬性中添加:

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

其中attr:標(biāo)簽的屬性 level標(biāo)簽的嵌套層次
 
2.添加解析函數(shù)

標(biāo)簽的解析原理就是通過讀取xml文件得到相應(yīng)的信息,然后再拼湊成所需要的php源代碼,最后通過echo 在頁面上輸出。

具體代碼如下:

public function _category($attr,$content)
{
//把標(biāo)簽的所有屬性解析到$tag數(shù)組里面
$tag = $this->parseXmlAttr($attr,'category');
//得到標(biāo)簽里面的屬性
$parentid= $tag['parentid'];
//定義頁面解析的變量
$result = !empty($tag['result'])?$tag['result']:'cat'; //定義數(shù)據(jù)查詢的結(jié)果存放變量
$key = !empty($tag['key'])?$tag['key']:'i';
$mod = isset($tag['mod'])?$tag['mod']:'2';
//拼湊數(shù)據(jù)庫查詢語句 這里直接用了CategoryModel封裝好的函數(shù)
$sql = "D('Category')->";
$sql .= "getCategorys(".$parentid.')';
//拼湊輸出字符
$parsestr = '<?php $_result='.$sql.'; if ($_result): $'.$key.'=0;';
$parsestr .= 'foreach($_result as $key=>$'.$result.'):';
$parsestr .= '++$'.$key.';$mod = ($'.$key.' % '.$mod.' );?>';
$parsestr .= $content;//解析在category標(biāo)簽中的內(nèi)容
$parsestr .= '<?php endforeach; endif;?>';
return $parsestr;
}

CategoryModel中的getCategorys方法:

/*
* 根據(jù)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.頁面上的引用:

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

這樣一個(gè)標(biāo)簽就做好了??!就可以甩掉那個(gè)volist在頁面上動態(tài)輸出我們想要的東西了!

相關(guān)文章

  • CodeIgniter配置之config.php用法實(shí)例分析

    CodeIgniter配置之config.php用法實(shí)例分析

    這篇文章主要介紹了CodeIgniter配置之config.php用法,結(jié)合實(shí)例形式詳細(xì)的分析了CodeIgniter中配置文件config.php的參數(shù)含義及具體使用技巧,需要的朋友可以參考下
    2016-01-01
  • php使用goto實(shí)現(xiàn)自動重啟swoole、reactphp、workerman服務(wù)的代碼

    php使用goto實(shí)現(xiàn)自動重啟swoole、reactphp、workerman服務(wù)的代碼

    這篇文章主要介紹了php使用goto實(shí)現(xiàn)自動重啟swoole、reactphp、workerman服務(wù)的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-04-04
  • PHP MVC框架路由學(xué)習(xí)筆記

    PHP MVC框架路由學(xué)習(xí)筆記

    這篇文章主要介紹了PHP MVC框架路由學(xué)習(xí)筆記的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Nginx下ThinkPHP5的配置方法詳解

    Nginx下ThinkPHP5的配置方法詳解

    今天有個(gè)朋友詢問tp5支持pathinfo的nginx配置怎么寫的問題,所以想著自己總結(jié)分享下,下面這篇文章主要給大家介紹了關(guān)于在Nginx下ThinkPHP5的配置方法,需要的朋友可以參考借鑒,下面話不多說,來一起看看吧。
    2017-08-08
  • 從零開始學(xué)YII2框架(一)通過Composer安裝Yii2框架

    從零開始學(xué)YII2框架(一)通過Composer安裝Yii2框架

    今天終于搞明白怎么安裝Yii2了。對于我這種小白來說真是費(fèi)盡周折。下面來介紹下如何安裝Composer和如何使用Composer安裝Yii2。
    2014-08-08
  • laravel 數(shù)據(jù)遷移與 Eloquent ORM的實(shí)現(xiàn)方法

    laravel 數(shù)據(jù)遷移與 Eloquent ORM的實(shí)現(xiàn)方法

    laravel 提供了很實(shí)用的 Eloquent ORM 模型類,簡單、直觀的與數(shù)據(jù)庫進(jìn)行交互。同時(shí)使用數(shù)據(jù)遷移管理數(shù)據(jù)庫,可以與團(tuán)隊(duì)進(jìn)行共享以及編輯,本文詳細(xì)的介紹了laravel 數(shù)據(jù)遷移與 Eloquent ORM的實(shí)現(xiàn)方法,感興趣的可以了解一下
    2019-04-04
  • php使用百度翻譯api示例分享

    php使用百度翻譯api示例分享

    這篇文章主要介紹了php使用百度翻譯api示例,需要的朋友可以參考下
    2014-01-01
  • php實(shí)現(xiàn)socket推送技術(shù)的示例

    php實(shí)現(xiàn)socket推送技術(shù)的示例

    下面小編就為大家分享一篇php實(shí)現(xiàn)socket推送技術(shù)的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Zend Framework教程之Resource Autoloading用法實(shí)例

    Zend Framework教程之Resource Autoloading用法實(shí)例

    這篇文章主要介紹了Zend Framework教程之Resource Autoloading用法,結(jié)合實(shí)例形式分析了Resource Autoloading實(shí)現(xiàn)自動加載的原理及具體使用方法,需要的朋友可以參考下
    2016-03-03
  • Yii2中SqlDataProvider用法示例

    Yii2中SqlDataProvider用法示例

    這篇文章主要介紹了Yii2中SqlDataProvider用法,結(jié)合實(shí)例形式分析了Yii2框架中使用SqlDataProvider類操作數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下
    2016-09-09

最新評論