奇矩互动官方论坛's Archiver

nissa 发表于 2008-8-7 22:44

各位老大们能不能给我们这些菜鸟讲讲Discuz!的模板引擎标签

还有数据调用,呵呵先谢谢

nissa 发表于 2008-8-8 10:44

伤心啊!没人关心

Liming 发表于 2008-8-9 00:55

数据调用
在论坛后台就可以设置的

lulu 发表于 2008-8-10 00:47

[code]    Discuz! 的模板采用近似 PHP 表达式的语法,支持的元素如下:

    1. <!--{ ... }-->
       逻辑元素包围符,该符号用于包含条件和循环元素,其中:

        <!--{if expr1}-->
                statement1
        <!--{elseif expr2}-->
                statement2
        <!--{else}-->
                statement3
        <!--{/if}-->

        为一个典型的条件模板,当条件 expr1 为真时,显示模板 statement1 内容;否则当
        expr2 为真时,显示模板 statement2 内容,否则显示模板 statement3 的内容.如同
        其他语言中的条件控制一样,其中 <!--{elseif expr}--> 和 <!--{else} --> 是非
        必须的.

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

        相当于 PHP 的数组循环语句

        foreach($array as $value) {
                statement
        }

        而

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

        相当于 PHP 的数组循环语句

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

       逻辑元素包围符在 { } 外面包含了 html 的注释符号 <!-- -->,除了为了和信息元素
       相区别外,也方便了使用 Dreamweaver 和 Frontpage 之类工具编辑模板的用户.因逻
       辑元素会被识别为 html 的注释而不被显示,对于绝大多数用户,逻辑元素中的内容是
       完全不需要修改的,甚至修改错一个字符就可能引起错误信息和整个系统无法运行.因
       此通常您在修改模板的时候,不要修改模板的逻辑信息,更不要将逻辑信息内部元素(如
       <!--{else}--> 等)的位置,否则可能会导致错误.如果您的模板被不慎修改损坏,请立
       即用原始模板覆盖,即可恢复.

       对于高手而言,实际上外部的 <!-- --> 是可以省略不写的,可以用于某些元素在模板
       中的定位,但强烈建议普通用户不要轻易尝试.

    2. { ... }
       信息元素包围符,其中

        {CONSTANT}
        可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 PHP 常量
        CONSTANT,因此也可以通过它来引用其他的常量内容.

        {lang variable}
        可以在模板中引用语言变量 variable 的内容,语言变量经由 templates.php.lang
        中数组 $language 定义.
        如 {lang post_edit} 的内容在编译模板的时候被替换为 $language['post_edit']
        的内容,简体中文版的意思是 "编辑帖子".

        {faq variable}
        可以在模板中引用 论坛帮助 的帮助关键字,在后台=>其他设置=》论坛帮助=》具体某个帮助的详情可以看到或者设置

    3. {template name}
       模板嵌入符,为了避免模板的冗长,可以使用本符号来将 name 模板的内容嵌入本模板
       中(实际上为引用).

    4. {eval statement}
       运行 PHP 语句体 statement.推荐只在特别必须的时候才使用该结构,因为它会破坏
       模板的结构和可读性.
       如 {eval echo 'template';} 实现的功能为 echo 'template';


    5. {LF}
       换行符,因为 Discuz! 模板引擎会忽略掉多于的换行行(\n),这个符号用来成生需要
       的 \n.

    6.        {echo variable}
        实现的功能为 echo, 注意这个和直接在模板写变量{$variable} 的区别是这个把echo后面的当成一个语句执行完成后才输出;

        看一个具体的例子:
        {echo $i + 1} 编译后 <? echo $i+1; ?>
        $i + 1 编译后 <?=$i?> + 1

    7.        {block variable}statement{/block}
        实现的功能为 $variable = <<<EOF
        statement
        EOF;
        这个对于块赋值非常的有用。[/code]

nissa 发表于 2008-8-12 23:07

谢谢

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.