discuz的模板语法(转载)

1、首先要说的是变量,程序已经把这些变量都赋值好了,在模板里直接应用就可以了,而这个变量在DISCUZ模板里要这样写:

{$a},{$a[b]},{AAA}

这里分别代表了变量,数组中某个值,常量的写法。

他们相当于:<?php echo $a ?>等语法。

2、模板语法:在模板里也能运用语法,这样可以判断然后展示出想要的模板样式。首先说一下他们的通用写法,都要写在这个里面:

<!--{}-->

大家看这个是不是很熟悉啊,当然,细心的同学,我们在上一节课里已经说了注释的标示是<!---->

在这里多了一个{}然后里面就能写判断等语句了,写法如下:

<!--{if}--><!--{/if}-->

<!--{if}--><!--{else}--><!--{/if}-->

<!--{if}--><!--{elseif }--><!--{else}--><!--{if}-->

比如:

<!--{if $userid}-->欢迎您<!--{else}-->请登陆<!--{/if}-->

这就是一个简单的模板判断语句,判断用户时候有登陆。

3、循环语句。这个东西太重要了。大家务必掌握。

<!--{loop $array $key $value)}--> <!--{/loop}-->

这个句法相当于

foreach($array as $key=>$value) {
        }

作用就是把数组遍历输出。

里面的$array就是数据,可以是一维数组或者多维,多维的情况下可以使用$key[][]等方式展示出来。

这里的$key不一定要写出来,不写出来的时候,相当于直接遍历值而不用考虑键名。

比如首页的用户列表,帖子列表神马的都是把信息放入数组,然后在模板里遍历输出。

同学们看到这里可能有疑问,为啥米他们要用foreach而不用for或者while呢?

这个问题你们怎么不去问DZ开发人员?

不过如果让我来写,我也会用foreach的,原因不明。。。

4、{lang }

载入语言包,他们很复杂的把所有的中文写到了语言包里去了。这样有一定的好处,不过吾觉得实在是太麻烦了。

5、{template }

载入另外一个模板。

6、{eval }

这个后面可以直接运行php代码,比如{eval echo 'hello!';},这个用多了会显得不专业,所以不要轻易用!

7、{LF}

换行符,大家从上面的代码也可以看出来

$template = str_replace("{LF}", "<?=\"\\n\"?>", $template);

8、{subtemplate }

这个也是载入,不过不会对载入的进行处理,可以理解为直接引用。一般在做边栏模块的时候用的多。

9、{csstemplate }

专门载入CSS文件的,因为在CSS文件中,我们会发现那个CSS也是htm结尾的,而且里面到底是使用哪个文件夹里的背景图片等等也是需要经过编译的。

10、{echo }

这个不用介绍了吧。不过这个你也能使用到的话,只能说明你要么是白痴要么是天才。

本文来自CSDN博客:http://blog.csdn.net/jc198651/archive/2010/10/20/5954366.aspx