搜索
系统检测到您的用户名不符合规范:

一直在用的模板数据调用标签

浏览:1601 发布日期:2013年04月12日 分类:功能实现 关键字: 标签 TagLib 数据库调用 模板标签
请高人指正
TagLib/TagLibFront.class.php/**
* @author Meik
* @homepage http://www.xuzc.cn
* @filename TagLibFront.class.php
* @encoding UTF-8
* @datetime 2011年6月27日 14:59:38
* @version 1.0
* @Description
*/
class TagLibFront extends TagLib {

protected $tags = array(
'list' => array('attr' => 'table,where,order,limit,relation,field,result,page,purl,purlvars', 'close' => 1),
);

//获取列表数据 可关联(字段过滤无效) 可分页
public function _list($attr, $content) {
$tag = $this->parseXmlAttr($attr, 'list');
$result = !empty($tag['result']) ? $tag['result'] : 'data';
if (!empty($tag['table'])) {
$model = 'D("' . $tag['table'] . '")';
} else {
return '';
}
$key = !empty($tag['key']) ? $tag['key'] : 'i';
$mod = isset($tag['mod']) ? $tag['mod'] : '2';
//拼接SQL查询语句
$parseStr = '<?php ';
if($tag['where']!= null && $tag['where']=='$where') {
$parseStr .=$tag['where'] != null ? '$map='.$tag["where"].';' : '';
}else {
$parseStr .=$tag['where'] != null ? '$map=array(' . trim(str_replace("=", "=>", $tag["where"]),',') . ');' : '';
}

if ($tag["page"]) {
$parseStr .= '$' . $result . '_count=' . $model;
$parseStr .= $tag['where'] != null ? '->where($map)' : '';
$parseStr .='->cache(true)->count(' . $model . '->getPk());';
$parseStr .= 'import("ORG.Util.Page"); $' . $result . '_p = new Page($' . $result . '_count, ' . $tag["page"] . ');';
if($tag['purlvars']!=null) {
$parseStr .= '$' . $result . '_page = $' . $result . '_p->show("'.$tag['purl'].'",'.$tag['purlvars'].');';
}else {
$parseStr .= '$' . $result . '_page = $' . $result . '_p->show("'.$tag['purl'].'");';
}
}
$parseStr .= '$' . $result . '_result = ' . $model ;
$parseStr .= $tag['relation'] != null ? '->relation(array(' . trim($tag["relation"],',') . '))' : '';
$parseStr .= $tag['where'] != null ? '->where($map)' : '';
$parseStr .= $tag['field'] != null ? '->field("'.trim($tag["field"],',').'")' : '';
$parseStr .= $tag['order'] != null ? '->order("'.trim($tag["order"],',').'")' : '';
if ($tag["page"]) {
$parseStr .= $tag['page'] != null ? '->limit("$' . $result . '_p->firstRow , $' . $result . '_p->listRows")' : '';
}else {
$parseStr .= $tag['limit'] != null ? '->limit("'.trim($tag["limit"],',').'")' : '';
}
$parseStr .= '->select();?>';
$parseStr .= '<?php if($' . $result . '_result){ $' . $key . '=0;';
$parseStr .= 'foreach($' . $result . '_result as $key=>$' . $result . '){ ?>';
$parseStr .= '<?php ++$' . $key . ';$mod = ($' . $key . ' % ' . $mod . ');?>';
$parseStr .= $content;
$parseStr .= '<?php }};?>';
return $parseStr;
}

}
用法 :任意模板文件<Front:list table="XinwenNeirong" where="'flid'=array('eq',5)" field="bt,id" order="lrsj DESC" result="data" limit="4">
<li><a href="{:U('News/View/index',array('id'=>$data[id]))}">·{$data.bt}</a></li>
</Front:list>
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
meik
积分:1235 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /