浅谈dedecms模板引擎工作原理及自定义标签【深度研究DEDECMS模板引擎】

本文详细探讨了DEDECMS模板引擎的工作原理,包括解析式引擎的运作,介绍了如何自定义标签。通过示例解析了模板引擎的Hello World程序,解释了标签的解析过程和自定义标签的定义方法。此外,文章还强调了理解模板引擎对PHP开发的重要性,并提供了实践操作的建议。
摘要由CSDN通过智能技术生成

理解织梦模板引擎有什么意义?一方面可以更好地自定义标签。更多在于了解织梦系统,理解模板引擎是理解织梦工作原理的第一步。理解织梦会使我们写php代码时更顺手,同时能学习一些php代码的组织方式。

这似乎不是那么简单,如果你只想学习自定义标签,可以看一下“是否需要自定义标签”和““扩展标签””就够了。

一解析式引擎

如果你还没用过dedecms的标签,先用一下,也可以看一下“dedecms网页模板编写”。熟悉一下memberlist这个标签,下面会以这个标签为例。

织梦提供的模板分析引擎有解析式和编译式两种,由于现在主要使用前者,这里也只讨论前者。

 

先来写个模板解析的hello world 程序

***root/test.php  封面php(root指的是根目录,以下都假设dedecms被放在了网站的根目录)

<?php
    require_once (dirname(__file__).'/include/common.inc.php');
    //利用解析式模板所需的文件
    require_once (dirname(__file__).'/include/dedetag.class.php');

//生成解析模板引擎类对象
$dtp=new DedeTagParse();
//设置命名空间,由于下面的标签用tianya命名空间,所以要设置一下。
$dtp->SetNameSpace('tianya');
$dtp->LoadTemplate(dirname(__file__).'\test.tpl.htm ');

//把标签替换成具体的值
foreach ($dtp->CTags as $id=>$tag)
{
    if($tag->GetName()=='my')
        //把id为$id的tag翻译成这是my标签<br/>
        $dtp->Assign($id,'这是my标签<br/>');    
    else if($tag->GetName()=='test')
        $dtp->Assign($id,'这是test标签<br/>');
}

//把解析好的html文本echo出来
$dtp->Display(); 
?>

***root/test.tpl.htm 网页模板

{tianya:my att1=1 att2='2'}
        [field:my/]
    {/tianya:my}
    {tianya:test att1=1 att2='2'}
        [field:test/]
    {/tianya:test}

执行root/test.php就能查看结果

由上面的例子可以看出解析式模板运作的套路

1php文件调用网页模板,并显示。

2htm文件提供网页的大体框架,等待数据来完善网页的具体内容,称为网页模板。

上面的代码就是把第一个标签(my标签)显示为这是my标签<br/>;第二个标签显示为这是test标签<br/>。

 

上面的代码是怎么办妥的

更改***root/test.php如下

<?php
    require_once (dirname(__file__).&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值