ThinkPHP ラベル制作_PHP チュートリアル

WBOY
リリース: 2016-07-13 17:47:31
オリジナル
989 人が閲覧しました

thinkphp のデフォルトのタグパーサーは Lib/Template/TagLib/TagLibCx.class にあります

一般的に使用される volist php とその他の一般的に使用される thinkphp タグを定義します

ここで、作成者はこのクラスに タグの解析を追加します。

タグ形式:

<{$cat.catname}>

タグ機能:

親クラス ID がparentidである列をループアウトします

1.tagLibCx.classのprivate属性に

を追加

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

その中に attr: タグの属性レベルとタグのネストレベル

2.解析機能を追加

タグ解析の原理は、XML ファイルを読み取ることで対応する情報を取得し、それを必要なものに結合することです

php ソース コード、最終的に echo を通じてページに出力されます

具体的なコードは次のとおりです:

パブリック関数 _category($attr,$content)

{

//タグのすべての属性を $tag 配列に解析します

$tag = $this->parseXmlAttr($attr,'category');

//タグ内の属性を取得します

$parentid= $tag['parentid'];

//ページ解析用の変数を定義します

$result = !empty($tag['result'])?$tag['result']:'cat' //データクエリ結果の保存変数を定義します

;

$key = !empty($tag['key'])?$tag['key']:'i';

$mod = isset($tag['mod'])?$tag['mod']:'2';

//データベースクエリステートメントを結合します。ここでは、CategoryModel

によってカプセル化された関数を直接使用します。

$sql = "D('カテゴリ')->";

$sql .= "getCategorys(".$parentid.')';

//出力文字をつなぎ合わせます

$parsestr = '

$parsestr .= 'foreach($_result as $key=>$'.$result.'):';

$parsestr .= '++$'.$key.';$mod = ($'.$key.' % '.$mod.' );?>';

$parsestr .= $content;// カテゴリタグ内のコンテンツを解析します

$parsestr .= '';

$parsestr;

を返します

}

カテゴリモデルの getCategorys メソッド

/*

* 親IDに基づいて列情報を取得します

* $parentid 親 ID

* $withSelf に self が含まれるかどうか

*/

パブリック関数 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);

}

$カテゴリを返します;

}

3. ページ上の引用

<カテゴリ親id='0'>

<{$cat.catname}>

このようなラベルが完成しました^_^!ボリストを取り除き、ページ上に必要なものを動的に出力できます

!

中華鍋

より抜粋

http://www.bkjia.com/PHPjc/478508.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478508.html技術記事 thinkphp のデフォルトのタグ パーサーは、Lib/Template/TagLib/TagLibCx.class で一般的に使用される volist php およびその他の一般的に使用される thinkphp タグを定義します。ここで、作成者はこのクラスにカテゴリを追加します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート