首页 CMS教程 DEDECMS DEDECMS静态模板类类文件是什么

DEDECMS静态模板类类文件是什么

Dec 28, 2019 am 09:17 AM
dedecms

DEDECMS静态模板类类文件是什么

DEDECMS静态模板类类文件是什么?

静态模板类类文件织梦模板引擎是一种使用XML名字空间形式的模板解析器

  推荐学习:织梦cms

使用织梦解析器解析模板的最大好处是可以轻松的制定标记的属性,感觉上就像在用HTML一样,使模板代码十分直观灵活,新版的织梦模板引擎不单能实现模板的解析还能分析模板里错误的标记。

include/dedetag.class.php这个文件是dedecms V5.3及之前版本使用的主要的模板类,它是解析式模板类,并非编译式的(区别是前者通过获得标签位置进行内容替换,后者是直接解析式PHP代码,二次执行) 

一、模板语法 

1、织梦模板引擎的代码样式有如下几种形式: 

{dede:标记名称 属性='值'/} 

{dede:标记名称 属性='值'}{/dede:标记名称} 

{dede:标记名称 属性='值'}自定义样式模板(InnerText){/dede:标记名称} 

提示: 

如果使用带底层模板的标记,必须严格用{dede:标记名称 属性='值'}{/dede:标记名称} 这种格式,否则会报错。 

2、织梦模板引擎内置有多个系统标记,这些系统标记在任何场合都是能直接使用的。 

(1) global 标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为: 

{dede:global name='变量名称'}{/dede:global} 

或 

{dede:global name='变量名称'/} 

其中变量名称不能加 $ 符号,如变量 $cfg_cmspath ,应该写成 {dede:global name='cfg_cmspath'/} 。 

(2) foreach 用来输出一个数组,形式为: 

{dede:foreach array='数组名称'}[field:key/] [field:value/]{/dede:foreach} 

(3) include 引入一个文件,形式为: 

{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/} 

对文件的搜索路径为顺序为:绝对路径、include文件夹,CMS安装目录,CMS主模板目录 

3、织梦标记允许在任何标记中使用函数对得到的值进行处理,形式为: 

{dede:标记名称 属性='值' function='youfunction("参数一","参数二","@me")'/} 

其中 @me 用于表示当前标记的值,其它参数由你的函数决定是否存在,例如: 

{dede:field name='pubdate' function='strftime("%Y-%m-%d %H:%M:%S","@me")'/} 

4、织梦标记允许有限的编程扩展。 

格式为: 

代码如下:

{dede:tagname runphp='yes'} 
$aaa = @me; 
@me = "123456"; 
{/dede:tagname}
登录后复制

@me 表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me。

此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。

二、解析方式

在 dedetag.class.php 里面有四个类

class DedeAttribute 属性结构表述

class DedeAttributeParse 属性解析器

class DedeTag 标签结构表述

class DedeTagParse 标签解析器

使用解析类解析模板时一般经过下面的步骤

1、初始化:

$dtp = new DedeTagParse();

2、载入模板/模板字符串:

$dtp->LoadTemplate(模板文件(绝对路径)); //会生成缓存,第二次不需解析模板

$dtp->LoadSource(字符串);

3、给标签赋值

foreach($dtp->CTags as $tid=>$ctag) {

//判断ctag的名称和属性,并给赋不同的值,通常用函数处理

if($ctag->GetName=='mytag') $dtp->Assign($tid, mytagvalue($ctag) );

}

在上面例子中,直接把名称为 mytag的标签转交给 mytagvalue 函数处理,mytagvalue 里判断$ctag的各个属性,返回不同内容即可。

在 V5.3版本中,通常除了field、list等专用标签之外,凡arc.*开头的类解析的文件,标签都是对应该 include/taglib 的源码的,这个由系统进行了自动的映射。

4、显示或保存为HTML

$dtp->display();

$dtp->SaveTo(静态文件名);

对于二次开发人员而言,不大需要知道dedecms模板具体解析方式,不过应该十分清楚CTag这个类的结构,从而判断标签不同属性进行处理。

代码如下:

class DedeTag 
{ 
var $IsReplace=FALSE; //标记是否已被替代,供解析器使用 
var $TagName=""; //标记名称 
var $InnerText=""; //标记之间的文本 
var $StartPos=0; //标记起始位置 
var $EndPos=0; //标记结束位置 
var $CAttribute=""; //标记属性描述,即是class DedeAttribute 
var $TagValue=""; //标记的值 
var $TagID = 0; 
//获取标记的名称和值 
function GetName() 
{ 
return strtolower($this->TagName); 
} 
function GetValue() 
{ 
return $this->TagValue; 
} 
//下面两个成员函数仅是为了兼容旧版 
function GetTagName() 
{ 
return strtolower($this->TagName); 
} 
function GetTagValue() 
{ 
return $this->TagValue; 
} 
//获取标记的指定属性 
function IsAttribute($str) 
{ 
return $this->CAttribute->IsAttribute($str); 
} 
function GetAttribute($str) 
{ 
return $this->CAttribute->GetAtt($str); 
} 
function GetAtt($str) 
{ 
return $this->CAttribute->GetAtt($str); 
} 
function GetInnerText() 
{ 
return $this->InnerText; 
} 
}
登录后复制

以上是DEDECMS静态模板类类文件是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

帝国cms资源网模板在哪 帝国cms资源网模板在哪 Apr 17, 2024 am 10:00 AM

帝国CMS模板下载位置:官方模板下载:https://www.phome.net/template/第三方模板网站:https://www.dedecms.com/diy/https://www.0978.com.cn/https://www.jiaocheng.com/安装方式:下载模板解压模板上传模板选择模板

dedecms怎么实现模板替换 dedecms怎么实现模板替换 Apr 16, 2024 pm 12:12 PM

在 Dedecms 中实现模板替换可以通过以下步骤:修改 global.cfg 文件,设置所需的语言包。修改 taglib.inc.php 钩子文件,添加对语言后缀模板文件的支持。创建带有语言后缀的新模板文件,修改所需内容。清除 Dedecms 缓存。

dedecms都能做什么网站 dedecms都能做什么网站 Apr 16, 2024 pm 12:24 PM

Dedecms是一款开源CMS,可用于创建各种类型的网站,包括:新闻网站博客网站电商网站论坛和社区网站教育网站门户网站其他类型的网站(例如企业网站、个人网站、相册网站、视频共享网站)

dedecms怎么上传本地视频 dedecms怎么上传本地视频 Apr 16, 2024 pm 12:39 PM

如何使用 Dedecms 上传本地视频?准备视频文件,确保格式符合 Dedecms 支持的格式。登录 Dedecms 管理后台,创建新的视频分类。在视频管理页面上传视频文件,填写相关信息并选择视频分类。在编辑文章时嵌入视频,输入上传视频的文件名并调整尺寸。

dedecms怎么用 dedecms怎么用 Apr 16, 2024 pm 12:15 PM

Dedecms 是一款开源中文 CMS 系统,提供内容管理、模板系统和安全保护等功能。具体使用方法包含以下步骤:1. 安装 Dedecms。2. 配置数据库。3. 登录管理界面。4. 创建内容。5. 设置模板。6. 管理用户。7. 维护系统。

dedecms有什么漏洞 dedecms有什么漏洞 Aug 03, 2023 pm 03:56 PM

DedeCMS是一个开源的内容管理系统,会存在一些潜在的漏洞和安全风险:1、SQL注入漏洞,攻击者可以通过构造恶意的SQL查询语句来执行未经授权的操作或获取敏感数据;2、文件上传漏洞,攻击者可以上传包含恶意代码的文件到服务器上,从而执行任意代码或获取服务器权限;3、敏感信息泄露;4、未经身份验证的漏洞利用。

精准可靠的dedecms转换工具评测报告 精准可靠的dedecms转换工具评测报告 Mar 12, 2024 pm 07:03 PM

精准可靠的dedecms转换工具评测报告随着互联网时代的快速发展,网站建设已经成为许多企业和个人必备的工具之一。在网站建设中,使用内容管理系统(CMS)可以更加便捷高效地管理网站内容和功能。其中,dedecms作为一款知名的CMS系统,被广泛应用于各种网站建设项目中。然而,有时候我们会面临着需要将dedecms网站转换为其他格式的需求,这时就需要用到转换工具

dedecms怎样实现模版替换? dedecms怎样实现模版替换? Apr 16, 2024 pm 12:21 PM

在 DedecMS 中实现模版替换,需执行以下步骤:确定要替换的模版文件,常见的文件有 index.htm、list.htm 和 show.htm。创建新的模版文件,保留 DedecMS 标记。上传新模版文件,覆盖原始文件。清除缓存。刷新网站以查看更改。

See all articles