演示链接:查看演示

dedecms仿站基础之模板标签语法简介

dedecmsCMSDedeCMS的使用是非常简单的,模板制作也很方便。有时候我们看到非常喜欢的网站,就可以用dedecmsCMSDedeCMS仿下来,尤其是资讯站,仿制非常简单容易。dedecmsCMS仿站谈谈自己的一些看法,这篇dedecmsCMSDedeCMS仿站基础之模板标签语法简介是dedecmsCMS仿站基础系        列的 第二篇文章,主要讲述一下dedecmsCMS标签的语法特点,希望给予想用dedecmsCMS进行仿站的朋友一点帮助。

  dedecmsCMS标签语法之格式

  dedecmsCMS的模板标签类似于XML格式,所有的模板都含有定界符,默认情况下是{dede:*}和{/dede:*},“*”代表模板标记名称。一般情况下{dede:*}和{/dede:*}是成对出现的,例如:

  {dede:arclist flag='h' limit='0,1'}

  [field:title/]

  [field:description/]…[查看全文]

  {/dede:arclist}

  上面的{dede:arclist}和{/dede:arclist}成对出现在dedecmsCMS模板文件中,并且在两个标签当中包含了底层模板(innertext)。所谓底层模板(Innertext)实际上就是对于有多条记录的模板输出,用户手工去指定单个记录的样式。

  标签还有一类出现形式是{dede:*/},通常以这种形式出现都是输出变量、或者不含底层模板的内容。如下面的标签:

  {dede:global.cfg_webname/}

  {dede:arclist flag='h' limit='0,1' /}

  如果用户没有指定单个记录的样式,系统部分标签都含有默认的底层模板,具体可以查看{cmapath}/templets/system/文件夹下面的文件,这里面都是系统的底层模板文件。

  dedecmsCMS标签语法之注释

  dedecmsCMS标签的模板注释非常灵活,可以通过标签后面的commet属性进行赋值。如上面使用HTML的注释可以使用如下的注释方法:

  {dede:arclist flag='h' limit='0,1' commet='调用头条的第一篇内容'}

  [field:title commet="这是文章标题标签"/]

  [field:description commet="这是摘要标签"/]…[查看全文]

  {/dede:arclist}

  在模板引擎将上述标签解析为html的时候,commet的内容是被忽略掉不去解析的,用户在阅读模板标记的时候可以更好的理解标签的意义。这个对于新手来说,就非常有帮助了,可以结合实例系统的学习dedecmsCMS的标签的使用方法。

  dedecmsCMS标签语法之函数

  每一个dedecmsCMS的标签都可以使用自定义函数对其进行扩展,自定义函数内容主要用于对当前标签输出内容进行处理。下面的实例就是使用自己定义的函数进行处理:

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

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

  dedecmsCMS标签的这个语法可以方便程序员对dedecmsCMS进行二次开发,一般自己定义的函数都是存放在include文件夹下的extend.func.php文件中。

  dedecmsCMS标签语法之属性

  模板标签的属性,决定了模板标记输出的形式,例如arclist标签主要功能是列出文档列表,但列出什么内容、按照什么方式进行排序等取决于模板标签的属性。在dedecmsCMS的模板标签说明中含有各个模板的标签属性可以详细查阅。

  例如上面的flag=’h’ limit=’0,1′,这里flag和limit是标签的相关属性,可以通过dedecmsCMS标签手册查阅属性的介绍。如果模板标签如果没有列出属性,系统有默认属性值,用户可以参考模板标签说明查看默认属性。

  dedecmsCMS标签语法之php程序

  dedecmsCMS模板标签语法还有一个很方便的地方就是支持简单的php模板编程,具体的格式如下:

  {dede:tagname runphp='yes'}

  $aaa = @me;

  @me = "123456";

  {/dede:tagname}

  需要php编程时,只需要在标签dede:*(“*”代表模板标记名称)中加入runphp=’yes’,其中@me表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给@me,此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText。
 

THE END
喜欢就支持一下吧
点赞0 分享