taglib
原文出处:http://blog.csdn.net/a11085013/article/details/38172653
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]
taglib的更多相关文章
- [JSP]自定义标签库taglib
自定义标签的步骤 自定义标签的步骤大概有三步: 1.继承javax.servlet.jsp.tagext.*下提供的几个标签类,如Tag.TagSupport.BodyTagSupport.Simpl ...
- 杂谈 Taglib、EL、OGNL
本篇主要是自己对 JavaWeb中 EL.OGNL.Taglib 个人理解. 因为以上内容都是在 JSP 的基础下产生的概念, 首先得说说我眼中的 JSP. 她自由的.奔放的,就像辽阔的大海,跨越任何 ...
- Tomcat7.0启动报错:java.lang.illegalargumentexception:taglib definition not consisten with specification version
Tomcat7.0启动报错:java.lang.illegalargumentexception:taglib definition not consisten with specification ...
- jsp调用java方法 function taglib
1.新建tld文件: my-functions.tld: <?xml version="1.0" encoding="UTF-8"?> <ta ...
- JSF2 下 taglib 的问题
在jsf1使用 taglib 定义 标签出现 The absolute uri: http://java.sun.com/jsf/core cannot be resolved in either w ...
- jsp中自定义Taglib案例
一.使用TagSupport类案例解析 1.自定义Tag使用jdbc连接mysql数据库 1.1定义标签处理器类 package com.able.tag; import java.sql.Conne ...
- taglib指令
taglib:用来引用标签库并设置标签库的前缀,(允许JSP页面使用用户自定义标签) 语法:<%@ taglib uri="tagLibraryURI" prefix=&qu ...
- taglib 自定义标签
自定义<%@ taglib prefix="cf" uri="http://training.bmcc.com.cn/tld/functions"%> ...
- taglib例子
jsp中的taglib有点类似asp.net中的customer control.自定义标签. 一个最简单的taglib使用例子:检查用户是否已经被登陆. 新建一个class: CheckLoginT ...
随机推荐
- pyenv的使用
开始想使用virtual实现不同的版本的py隔离,然后发现不太方便,然后发现了这货. pyenv安装(ubuntu环境 ➜ ~ git clone git://github.com/yyuu/pyen ...
- 屠蛟之路_蛟灵岛战役(下)_SeventhDay
蛟灵山,蛟灵洞,beta蛟. 终极决斗的时刻,这又是一场不是你死就是我亡的战争! beta怪蛟法力虽然没有alpha恶龙强,但是它依仗着地利,对屠蛟少年们发起了一次次极具威胁性地攻击!少年们的身上添了 ...
- RBM Formula Deduction
Energy based Model the probability distribution (softmax function): \[p(x)=\frac{\exp(-E(x))}{\sum\l ...
- MYSQL入门(三)
索引简介 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构.如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息 ...
- PCA 主成分分析(Principal components analysis )
问题 1. 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余. 2. 拿到一个数学系的本科生期末考试成绩单,里面有三列, ...
- 之前总结的今天给大分享一下iOS
退回输入键盘 苹果 ios 开发一年的工作笔记 - (BOOL) textFieldShouldReturn:(id)textField{ [textField resignFirstResponde ...
- Java-IO之DeflaterOutputStream和InflaterOutputStream
此类为使用 "deflate" 压缩格式压缩数据实现输出流过滤器 example import java.io.File; import java.io.FileInputStre ...
- sql编程小结
对照mysql5.1手册,对这几天学的sql编程进行小结,主要涉及触发器.存储过程.权限管理.主从分离等,权当抛砖引玉,高手请略过. 一.触发器 通俗的说就是在指定的数据表增删改的前或后触发执行特定的 ...
- 按照网上方法js删除指定cookie,却怎么也删除不了,解决如下
网上方法: 查找原因说是没有指定Path,记得系统里以前也没指定还是可以的,就查了一下现在的系统Path,猜测是系统Path由以前的/改为/E7-Planning 就改了前端删除方法 测试一下OK了, ...
- 跟我一起玩转Sencha Touch 移动 WebApp 开发(一)
1.目录 移动框架简介,为什么选择Sencha Touch? 环境搭建 创建项目框架,框架文件简介 创建简单Tabpanel案例 自定义图标的方式 WebApp产品测试和发布 HTML5离线缓存 发布 ...