底层模板处理

2024-03-01 14:54 小编

一般的标签会涉及到底层模板,例如:arclist 、channel 等,我们来扩展下我们上面标签的功能:

html
{dede:test  name='dedecms'/}	我的名字叫:[field:name/]{dede:test}
1
2
3

这里 我的名字叫:[field:name/] 则为我们要处理的底层模板,[field:name/] 为我们标签属性中的 name 。

这里我们需要了解 lib_test(&$ctag,&$refObj) 函数中 $ctag 参数,这个参数就是我们解析式模板引擎获取的当前标签内容,其中这个对象下有一个 GetInnerText() 方法能够获取当前标签的底层模板。

php
<?phpif(!defined('DEDEINC'))  exit("Request Error!");function  lib_test(&$ctag,&$refObj){	global  $dsql,$envs;	//属性处理	$attlist="name|";	FillAttsDefault($ctag->CAttribute->Items,$attlist);	extract($ctag->CAttribute->Items, EXTR_SKIP);	// 获取底层模板	$innertext=  $ctag->GetInnerText();	// 对标签进行解析	$revalue =  str_replace("[field:name/]", $name, $innertext);	return  $revalue;}?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

这样我们就完成了一个简单的对底层模板解析的处理。

image-20220328221858319

标签其他一些开发技巧可参考 /include/taglib 其他标签文件。


Tag: 模板
在线咨询 拨打电话

电话

13363039260

微信二维码

微信二维码