牛骨文教育服务平台(让学习变的简单)
博文笔记

thinkphp中 taglib标签应用

创建时间:2014-07-27 投稿人: 浏览次数:3249

1、配置文件中加上:

"APP_AUTOLOAD_PATH"         =>  "@.TagLib",


2、在项目的/Lib/下新建 TagLib文件夹 复制TagLibHtml.class.php到该目录下面

也可以自己定义格式Tag大驼峰命名.class.php

实例:TagLibCms.class.php代码下面;

3、模版

<tagLib name="html" />

<html:imageBtn name="add" value="新增" />

<cms:article name="content" limit="10" cid="1">
<h1><a href="/{$article.ename}/{$article.id}.html">hhh</a></h1>


</cms:article>



TagLibCms.class.php的代码:

[code]

<?php
import("TagLib");
 
class TagLibCms extends TagLib{
private   $CategoryArr = array();
private   $SubString = "";
protected $tags = array(
"article"=>array("attr"=>"name,field,limit,order,cid,where,sql,key,mod","level"=>3),
);
  
public function _article($attr,$content){
$tag = $this->parseXmlAttr($attr,"article");
$result = !empty($tag["result"])?$tag["result"]:"article"; //定义数据查询的结果存放变量
$key = !empty($tag["key"])?$tag["key"]:"i";
$mod = isset($tag["mod"])?$tag["mod"]:"2";
//print_r($tag["name"]);die();
if ($tag["name"]){
$sql = "M("{$tag["name"]}")->";
$sql .= ($tag["field"])?"field({$tag["field"]})->":"";
$sql .= ($tag["order"])?"order({$tag["order"]})->":"";
if($tag["cid"]){
$cidarr = explode(",",$tag["cid"]);
foreach($cidarr AS $k=>$v){
$this->getSubCategory($v);
}
$cidstr = implode(",",$this->SubString);
$tag["where"] = "cid IN(".$cidstr.")";
$sql .= ($tag["where"])?"where("{$tag["where"]}")->":"";
}else{
$sql .= ($tag["where"])?"where("{$tag["where"]}")->":"";   //被重新处理过了
}
$sql .= "select()";
echo $sql;die();
  }
  //下面拼接输出语句
  $parsestr = "<?php $_result=".$sql."; if ($_result): $".$key."=0;";
  $parsestr .= "foreach($_result as $key=>$".$result."):";
  $parsestr .= "++$".$key.";$mod = ($".$key." % ".$mod." );?>";
  $parsestr .= $content;//解析在article标签中的内容
  $parsestr .= "<?php endforeach; endif;?>";
  return $parsestr;
}
}

[/code]

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。