主机参考:VPS测评参考推荐/专注分享VPS服务器优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情! |
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作 |
什么是dedecms静态模板类文件?
静态模板类文件Dreaming模板引擎是一个XML名称空间形式的模板解析器。
推荐学习:梦想编织cms
使用Dreamweaver解析模板的最大优势是您可以轻松设置标签的属性。感觉就像使用HTML一样,这使得模板代码非常直观和灵活。新的Dreamweaver模板引擎不仅可以解析模板,还可以分析模板中的错误标签。
文件include/dedetag.class.php是dedecms V5.3及更早版本使用的主要模板类,它是一个分析模板类,而不是编译模板类(区别在于前者通过获取标签位置来替换内容,而后者是一个直接的分析php代码,执行两次)。
首先,模板语法
1.梦幻编织模板引擎的代码样式如下:
{dede:标记名属性=‘Value‘/}
{ dede:tagname attribute =‘value‘} {/dede:tagname }
{ dede:tag name attribute =‘value‘}自定义样式模板(InnerText){/dede:tag name }
提示:
如果将标记与基础模板一起使用,则必须严格使用{ dede:tag name attribute =‘value‘} {/dede:tag name }的格式,否则将会出现错误。
2.织梦模板引擎内置了多个系统标签,可以在任何情况下直接使用。
(1)全局标记,即获取一个外部变量,该变量可以调用除数据库密码之外的系统任何配置参数,其形式为:
{ dede:global name =‘变量名‘} {/dede:global }
或者
{dede:全局名称=‘变量名“/}
变量名不能加$符号,如变量$cfg_cmspath应写成{ dede:global name =‘CFG _ CMS path‘/}。
(2)foreach用于以如下形式输出数组:
{ dede:foreach array =‘array name‘}【field:key/】【field:value/】{/dede:foreach }
③包括以下形式的文件:
{ dede:include file =‘文件名‘is make =‘是dede模板吗(是/否)‘/}
文件的搜索路径按以下顺序排列:绝对路径、包含文件夹、CMS安装目录和CMS主模板目录。
3.dream-weaving标签允许您使用任何标签中的函数来处理以下列形式获得的值:
{ dede:tag name attribute =‘value‘function =‘you function(“参数一“,“参数二“,“@ me“)“/}
其中@me用于指示当前标签的值,其他参数由您的函数决定,例如:
{ dede:field name =‘pubdate‘function =‘strftime(“% Y-% M-% d % H:% M:% S“,“@ me“)‘/}
4.梦想编织标签允许有限的编程扩展。
格式是:
代码如下:
{ dede:tagname runphp = & amp;#39;是的& amp#39;} $ aaa = @ me@ me = & quot123456 & quot;{/dede:tagname}@me表示标记本身的值,因此在标记编程中不能使用echo之类的语句,所有返回值只能传递给@me。
此外,由于程序代码占用了底层模板InnerText的内容,因此要编程的标签只能使用默认的InnerText。
二、分析的方式
在dedetag.class.php有四个类别。
类属性的属性结构表达式
类DedeAttributeParse属性分析器
类DedeTag标签的结构表达式
类DedeTagParse标记解析器
当使用解析类解析模板时,它通常经历以下步骤。
1.初始化:
$ DTP = new DedeTagParse();
2.加载模板/模板字符串:
$ DTP-》load template(模板文件(绝对路径));//会生成缓存,不需要二次解析模板。
或者
$ DTP-》load source(字符串);
3.为标签赋值
foreach($ DTP-》CTags as $ tid =》$ ctag ){
//判断ctag的名称和属性,并赋予不同的值,通常带有函数。
if($ ctag-》GetName = =‘mytag’)$ DTP-》Assign($ tid,mytag value($ ctag));
}
在上面的示例中,名为mytag的标记直接传递给mytagvalue函数进行处理,并在mytagvalue中判断$ctag的属性,可以返回不同的内容。
在V5.3版本中,除了字段和列表等特殊标签外,所有由以arc开头的类解析的文件的标签。*是应包含/taglib的源代码,由系统自动映射。
4.显示或保存为HTML。
$ DTP-》display();
或者
$ DTP-》save to(静态文件名);
对于二次开发人员来说,不需要知道dedecms模板的具体解析方法,但是CTag类的结构应该非常清晰,从而判断标签的不同属性进行处理。
代码如下:
class dede tag { var $ is replace = FALSE;//标记是否已被替换,以便解析器使用var$TagName = & quot;";//标记名var $ InnerText = & quot";//标记之间的文本var $ StartPos = 0;//标记起始位置var $ end pos = 0;//标记结束位置var $ attribute =“& quot;;//标记属性描述,即classdedeattributevar $ tag value =“& quot;;//标记var $TagID = 0的值;//获取标记函数getName(){ Return stro low($ this-》TagName)的名称和值;} function GetValue(){ return $ this-& gt;标签值;}//以下两个成员函数仅用于与旧版本的函数Get Tagname(){ Return stro low($ this-》Tagname)兼容;}函数GetTagValue(){ return $ this-& gt;标签值;}//获取指定的属性函数是attribute($ str){ return $ this-》CAttribute-& gt;is attribute($ str);} function get attribute($ str){ return $ this-& gt;属性-& gt;GetAtt($ str);} function GetAtt($ str){ return $ this-& gt;属性-& gt;GetAtt($ str);} function GetInnerText(){ return $ this-& gt;InnerText} }
这几篇文章你可能也喜欢:
- 帝国忘记cms密码怎么办?
- 帝国cms会员中心进入方法(帝国cms会员中心进入方法)
- 如何控制dedecms列表页面的缩略图大小(dedecms分页标签)
- dedecms如何去除梦织底层的梦织版权信息
- dedecms5.7 ask模块404现在该怎么办?
本文由主机参考刊发,转载请注明:什么是DEDECMS静态模板类文件(静态html模板)? https://zhujicankao.com/109038.html
评论前必须登录!
注册