1、在include/taglib文件夹中新建文件diy.lib.php,其中diy也就是你标签的名字。function的名字也必须跟文件名对应,固定格式lib_标签名,如lib_diy,本例子以调取文章为例。 ?php function lib_diy($c
1、在include/taglib文件夹中新建文件diy.lib.php,其中diy也就是你标签的名字。function的名字也必须跟文件名对应,固定格式lib_标签名,如lib_diy,本例子以调取文章为例。
<?php
function lib_diy(&$ctag,&$refObj)
{
global $dsql,$envs;
/***
* &$ctag 获取标签信息类
* &$refObj 数据库信息类
* $dsql 数据库操作类
* $envs 栏目助手,记录着栏目的部分信息
* 前台标签
*/
/**默认属性定义*/
$attlist="row|12,titlelen|24";
/**给前台没有给出的属性变量值,前台有标明的不变*/
FillAttsDefault($ctag->CAttribute->Items,$attlist);
/**绑定默认参数$ctag->CAttribute->Items 是前台模板标签传来的值array (size=2)
'row' => string '2' (length=1)
'titlelen' => string '36' (length=2)
获取参数 row='2' titlelen='36'*/
extract($ctag->CAttribute->Items, EXTR_SKIP);
$revalue = ''; /** 定义空字符串用于返回数据*/
/**获取标签内的值 <span>[field:title/]</span>*/
$innertext = $ctag->GetInnerText();
$ctp = new DedeTagParse(); /** 声明Dede织梦模板类*/
$ctp->SetNameSpace('field', '[', ']'); /** 设置标记的命名空间,默认为dede*/
$sql = "SELECT * FROM `wmd_archives` WHERE 1=1 limit 0, $row"; /** 编写sql语句*/
$dsql->Execute('me',$sql); /** 执行一个带返回结果的函数*/
while($rs = $dsql->GetArray('me'))
{
/**根据属性处理查询变量*/
$rs['title'] = cn_substr($rs['title'], $titlelen);
/**获取底层模板,将模板设置到CTags变量中*/
$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;
}
?>
前台标签调用方法:
{dede:diy row='2' titlelen='36'}
<span>[field:title/]</span>
{/dede:diy}
网站源码网
dedecms织梦怎么定义属于自己的自定义标签
最新VIP资源
猜你喜欢
- dedecms实现友情链接在首页、内页分别显示 2021-05-17
- 织梦dedecms robots优化设置的具体方法 2021-03-16
- 织梦dedecms怎么更改会员中心目录member 2020-10-26
- 织梦dedecms数据库的常用操作方法 2021-06-29
- 织梦导航channelartlist标签不显示外部链接的解决办法 2021-07-13
- dedecms修改likearticle让其支持limit从第几条开始 2021-03-31
- DEDECMS织梦复制https链接网站图片无法本地化的解决办法 2022-06-15
- dedecms织梦列表中单独显示共有多少条数据的办法 2021-04-06
- dedecms织梦sql模板标签调用代码大全 2020-10-05
- 织梦cms自动获取当前系统时间代码 2021-05-15