dedecms 自定义标签的方法
2024-10-18 23:33:48
function lib_demotest(&$ctag,&$refObj)
{
global $dsql,$envs;
//属性处理
$attlist="row|12,titlelen|24";
FillAttsDefault($ctag->CAttribute->Items,$attlist);
extract($ctag->CAttribute->Items, EXTR_SKIP);
$revalue = '';
$innertext = $ctag->GetInnerText();
$ctp = new DedeTagParse();
$ctp->SetNameSpace('field', '[', ']');
$sql = "SELECT * FROM dede_archives WHERE 1=1 limit 0, $row";
$dsql->Execute('me',$sql);
while($rs = $dsql->GetArray('me'))
{
//根据属性处理查询变量
$rs['title'] = cn_substr($rs['title'], $titlelen);
//获取底层模板
$ctp->LoadSource($innertext);
foreach($ctp->CTags as $tagid=>$ctag) {
if(!empty($rs[strtolower($ctag->GetName())])) {
$ctp->Assign($tagid,$rs[$ctag->GetName()]);
}
}
//根据底层模板及查询变量得到处理结果
$revalue .= $ctp->GetResult();
}
return $revalue;
}
在include/taglib/建一个demotest.lib.php 文件
然在需要的模板文件里加入
{dede:demotest row='10' titlelen='36'}
[field:title/]
{/dede:demotest}
最新文章
- Atitit 2016年attilax事业成就表
- 响应式疑惑? CSS单位研究
- 【Oracle】oracle利用正则表达式拆分IP地址
- WinForm 窗体应用程序(进阶)之一
- HTML标记之a标签
- Java学习笔记(一)——HelloWorld
- 关于31天App教程示例中一些因SDK版本而出现的问题(转)
- Tested work with China Digiprog 3 4.94 mileage programmer
- gcc编译出现的问题
- Spark SQL源代码分析之核心流程
- 用OpenSSL生成自签名证书在IIS上搭建Https站点(用于iOS的https访问)
- poj 1321 棋盘问题 简单DFS
- PHP电商订单自动确认收货redis队列
- php 数组变成树状型结构
- Dynamics CRM2013 sub grid中数据翻页问题
- Android FrameWork浅识
- 一键部署office的工具——OTool
- git&;github入门使用
- java Builder模式创建不可变类
- Brup Suite 渗透测试笔记(五)