新爱好商业资源免费分享

查看: 529|回复: 0

Discuz模板变量使用说明

[复制链接]

266

主题

293

帖子

6028

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6028
发表于 2018-2-21 16:49:02 | 显示全部楼层 |阅读模式


163941pdhhk9hyyug56z4u.png

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

   <!--{ ... }-->

    逻辑元素包围符,该符号用于包含条件和循环元素

       条件判断

       <!--{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 的注释而不被显示,对于绝大多数用户,逻辑元素中的内容是完全不需要修改的,甚至修改错一个字符就可能引起错误信息和整个系统无法运行。因此通常您在修改Discuz x2 模板的时候,不要修改模板的逻辑信息,更不要将逻辑信息内部元素(如 <!--{else}--> 等)的前后位置作以修改,否则可能会导致错误。如果您的模板被不慎修改损坏,请立即用原标准默认模板覆盖,即可恢复。

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



    {... }

    信息元素包围符



       {CONSTANT}

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


       {lang variable}

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

       {template name}

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

       {eval statement}

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

       {LF}

       换行符,因为 Discuz!模板引擎会忽略掉多余的换行(\n),这个符号用来成生需要的 \n。

我们所推荐的模板修改方法:通过普通编辑器手工书写 html 或通过Dreamweaver 或 Frontpage 修改。但是修改需切记,同一逻辑元素内或嵌套中元素的位置和内容切勿修改,即通常情况下,您不能把 <!--{}--> 包围的内容单独的移动,更不能删除。但是整个最外部逻辑结构是可以移动或删除的。

如果修改后模板所在页面在输出类似如下的错误信息 Parse error: parse error, unexpected '}' in/home/username/forums/forumdata/templates/1_login.tpl.php on line 6,说明模板中出现了无法匹配,或格式错误的逻辑元素,请仔细检查是否有元素不对应,没有结束或嵌套损坏,格式错误的现象,必要时可以恢复原始模板来解决问题。



Discuz! 提供了方便的界面打包程序,前面已对其格式做了介绍,将导出信息的内容粘贴到系统设置中风格方案中的导入界面方案中,执行即可。程序会自动解析数据内容,恢复相关的界面设置,自定义替换变量和所需的模板设置。如果被导出界面使用了非默认模板,必须将 ./templates 目录属性设置为 777,以便导入程序自动建立模板记录和文件夹。




上一篇:Discuz!开发之全局变量$_G详解
下一篇:discuz模板文件结构

需要详细而又用的Microsoft Office各版本教程吗?那么请您就登陆新爱好图文教程频道

如果你在论坛下载资源,发现下载地址不经常或者无法下载(除积分原因),请立刻【举报错误】小编会第一时间处理;

如何您觉得论坛上没有您需要的资源,请在 资源需求发帖,小编会尽力及时给你满意的答复!

如果你需要的资源积分原因无法下载,请开启VIP,本论坛资源一律免费,部分资源需要的只是整理辛苦费而已!

这里是快捷回复,赶紧试试哦: 感谢 支持 不错 无奈 一般 生气 回帖 路过 顶帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

發布主題 快速回复 返回列表 搜索 这是一个自定义按钮

关于我们|小黑屋|新爱好商业资源免费分享 ( 沪ICP备14031858号-1|网站地图

GMT+8, 2019-8-25 06:03 , Processed in 0.455173 second(s), 58 queries .

Powered by Discuz X3.3

© 2001-2013 新爱好

快速回复 返回顶部 返回列表