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}
版权声明:本站部分内容来源互联网,如果文章中所涉及的图片或者文字内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!
php模板建站
dedecms织梦怎么定义属于自己的自定义标签
最新VIP资源
猜你喜欢
- 织梦dedecms当天文章标题加红色最新标记 2021-03-02
- dedecms各种数字统计SQL语句 2020-12-21
- 织梦dedecms时间调用标签大集合 2020-10-05
- Dedecms MYSQL数据库批量快速修改表前缀与表名 2021-01-19
- dedecms Error:Tag disabled:php错误的完整处理方法 2020-11-16
- dedecms列表页、文章页调用所有栏目文章的方法 2020-11-02
- 织梦dedecms首页和列表页调用动态点击次数 2021-03-02
- 织梦{dede:php}标签不能使用解决办法 2021-04-12
- DedeCMS织梦ShowMsg提示信息函数怎么用 2021-06-29
- 织梦DEDECMS软件模型编辑器不实用的修改方法 2021-08-31