Discuz的模板采用近似PHP表达式的语法.doc_第1页
Discuz的模板采用近似PHP表达式的语法.doc_第2页
Discuz的模板采用近似PHP表达式的语法.doc_第3页
Discuz的模板采用近似PHP表达式的语法.doc_第4页
Discuz的模板采用近似PHP表达式的语法.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Discuz! 的模板采用近似 PHP 表达式的语法,支持的元素如下:a. 逻辑元素包围符,该符号用于包含条件和循环元素 1. 条件判断 statement1 statement2 statement3 2. 这 是一个典型的条件模板,当条件 expr1 为真时,显示模板 statement1 内容,否则当 expr2 为真时,显示模板 statement2 内容,否则显示模板 statement3 的内容。如同其他语言中的条件控制一样,其中 和 是非必须的。 3. 不带下标变量的数组循环 statement 4. 相当于 PHP 的数组循环语句:foreach($array as $value) statement 5. 带下标变量的数组循环 statement 6. 相当于 PHP 的数组循环语句:foreach($array as $key = $value) statement 7. 逻 辑元素包围符在 外面包含了 html 的注释符号 ,除了为了和信息元素相区别外,也方便了使用 Dreamweaver 和 Frontpage 之类工具编辑模板的用户。因逻辑元素会被识别为 html 的注释而不被显示,对于绝大多数用户,逻辑元素中的内容是完全不需要修改的,甚至修改错一个字符就可能引起错误信息和整个系统无法运行。因此通常您在修改 模板的时候,不要修改模板的逻辑信息,更不要将逻辑信息内部元素(如 等)的前后位置作以修改,否则可能会导致错误。如果您的模板被不慎修改损坏,请立即用原标准默认模板覆盖,即可恢复。8. 对于高手而言,实际上外部的 是可以省略不写的,可以用于某些元素在模板中的定位,但强烈建议普通用户不要轻易尝试。 b. 信息元素包围符 1. CONSTANT可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 PHP 常量 CONSTANT,因此也可以通过它来引用其他的常量内容。 2. lang variable可 以在模板中引用语言变量 variable 的内容,语言变量经由 templates.php.lang 中数组 $language 定义。如 lang post_edit 的内容在编译模板的时候被替换为 $languagepost_edit 的内容,简体中文版的意思是“编辑帖子”。 3. template name模板嵌入符,为了避免模板的冗长,可以使用本符号来将 name 模板的内容嵌入本模板中(实际上为引用)。 4. eval statement运行 PHP 语句体 statement。推荐只在特别必须的时候才使用该结构,因为它会破坏模板的结构和可读性。如 eval echo template!; 实现的功能为 echo template; 5. 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,以便导入程序自动建立模板记录和文件夹。定义变量说明123/如果i除以2的余数等于0 $valuetypename$valuesubject!eval for ($i=1; $i!eval echo “Hello World!”;那在DZ的模板引擎中我们该如何使用Discuz!模板标签呢?下面给大家列举DZ模板引擎中常见、常用的模板语句:一、直接输出变量: $abc 或 echo $abc二、输出数组中某个变量:$arr0三、IF判断语句:!-if $abc 我abc小于1我abc为1我abc大于1四、Loop循环语句:这里是 $val上面这段loop语句,DZ会将其转换成php自身的循环语句:If(is_array($abc) Foreach($abc AS $key = $val) 五、在模版文件中使用PHP语句:eval $abc = 1; 注意:这里必须带”;”结尾。六、在本模板中引用其他的模板: 如我们要包含头部模板文件(header.htm)可以这样写:subtemplate header在模版中使用语言包中的中文语句:lang xxxxx ,在这里xxxxx就是语言包中任意一个数组的键值。如:templates/default/templates.lang.php(语言包) 内有下面的数组$language = array(discuz_lang = templates,click_here = 点击这里,ban_member = 禁止,input_invalid = 填写无效,title_none = 无标题,title = 标题,大家可以使用lang title ,这样在模板输出的时候则会显示”标题”两个字。大家掌握了上面这六种DZ模板语句,就可以在自己的二次开发中运用了。Discuz!模板文件中不常见的语句和变量说明刚接触Discuz!模板文件,您会发现在这些htm文件中包含着很多像: template css $charset lang memberlist MAINTABLECOLOR这样6类在一般htm文件中不常见的语句和变量,这些语句是Discuz!模版中的特有语句,具体说明如下: 这类语句并非普通HTML中的注释语句,而是Discuz!特有的模板判断语法,就好比php或者其他语法中的 if,else,then等等。通过这些语法,来控制一些功能的显示控制等效果。template 这类语句是模板调用语句,比如在某个模板中,想调用另一个模板中的内容,可以通过上面的语句对其他模板文件进行调用,比如在header.htm模板文件中的template css,将css.htm模板文件调入。index.htm模板文件中最顶有 template header,最底有 template footer,分别调入的是header.htm和footer.htm两个模板文件,这样根据页面结构和功能的细分,使Discuz!模板的设计制作更为灵活,方便。“” 这类语句为循环语句,循环执行内部程序,直到数据输出完毕结束。通过这些语句,能够达到把同一系列的资料进行循环显示效果,常见的如论坛列表、帖子列表等。$ 这样以$开头的是Discuz! 参数和变量,一般情况下不建议修改。另外还有一些是Discuz! 固定参数,如: $seohead 后台设置的头部信息 $charset config.inc.php中设置语言字符集,必不可少,不能删除! $extrahead 控制论坛自动跳转参数,必不可少,不能删除! eval updatesession(); 更新论坛 session 表的参数,必不可少,不能删除! eval output(); 结束论坛输出,必不可少,不能删除!以上的参数以Discuz! 4.0为准,这些参数会因应不同版本而有所不同!还有一些 $ 的也是一些参数如非插件作者或程序开发请勿乱修改!lang 这类以lang开头的是Discuz!语言包调用语句,后面的变量可以在语言包文件中找到相对应的字段,在模板中所调用的大部分都是 templates.lang.php 文件中的,如下,左侧为模版文件中调用语句,右侧为语言包中对应字段:(用户可以根据自己的需求对语言包进行修改) lang pm pm = 短消息 lang admincp admincp = 系统设置 lang memberlist memberlist = 会员 IMGDIR这类括弧内大写的变量是Discuz!风格配色方案中的参数,在前面的css说明中已经作过详细的介绍了,也可根据您的需要通过后台定义新的风格变量Discuz! 模板常见语句分析及知识技巧Feb5转 Discuz! 模板常见语句分析及知识技巧 不指定2006年2月5日 22:57 posted by LiuYu from 本站原创 大 | 中 | 小Creative Commons License本作品按照 署名-非商业性使用-相同方式共享 2.5 中国大陆 进行授权。请您在转载本作品时保留原作URL和作者名称,并且不得用于商业用途,在此作品之上的任何演绎都应使用本协议进行许可授权。From: /viewthread.php?tid=457by Tea (阿茶)以下原文:为什么要写这个文章?想让大家都能制作好一个属于自己的风格模板。希望能帮助大家更好的编写和利用Discuz!的风格和模板技巧。是希望有更多的人参与制作 Discuz!风格。是为了提高大家对Discuz!的了解。是为了解除大家心中对Discuz!模板的疑惑。希望大家加油!一、模板调用比如在某个模板中,想调用另一个模板中的内容,可以用下面的语句:template xxx假设,建立了一个新模板名字叫 abc.htm ,在后台模板编辑时只会显示为 acb,需要在 index 中调用它,那么就在index 中适当位置加入 template abc那么就会自动代用它。相关实例:index 模板中,最顶有 template header,最底有 template footer相关疑问:那么在这个 abc 模板中需要有 吗?不需要的!想要显示什么,就写什么,因为它只是整个网页的一部分! 都已经在header和footer模板中了。二、固定参数$seohead - 后台设置的头部信息$charset - config.inc.php中设置语言字符集,必不可少,不能删除!$extrahead - 控制论坛自动跳转参数,必不可少,不能删除!eval updatesession(); - 更新论坛 session 表的参数,必不可少,不能删除!eval output(); - 结束论坛输出,必不可少,不能删除!以上的参数以Discuz! 4.0为准,这些参数会因应不同版本而有所不同!还有一些 $xxx 的也是一些参数如非插件作者或程序开发请勿乱修改!三、数据判断1、在模板中会经常见到xxxxx的语句。 这些并非普通HTML中的注释,而是Discuz!特有的模板判断语法,就好比php或者其他语法中的 if,else,then等等。 通过这些语法,能够达到不同的模板效果。相关实例:header 模板中 - 如果获取了 $discuz_uid ,即显示下面资料(判断1) $discuz_userss: lang logout - 如果有 $maxpmnum,即显示下面资料,否则不显示(判断2) | lang pm - 结束了这个判断(判断2) |lang memcp - 如果$adminid在1,2,3这三个范围内,即显示下面资料,否则不显示(判断3) | lang admincp - 结束了这个判断(判断3) - 如果获取不了 $discuz_uid ,则显示下面资料 lang guest: lang register | lang login - 结束这个判断(判断1)2、在模板中会经常见到xxx的语句。 这个为循环语句,直到数据输出完毕,就会自动结束。 通过这些语法,能够达到把同一系列的资料进行循环显示效果。相关实例:header 模板中 - 循环1开始,判断插件 - 循环2开始,判断插件模组 0 & $moduleadminid = $adminid)-| $moduleurl - 结束循环2 - 结束循环1四、语言调用在模板中,经常会看到lang xxx这样的语句。它就是调用语言包中的词语用的。而在模板中会调用的大部分都是templates.lang.php 的。下面看看语言包的结构: 标题, 调用字符 显示文字 never = 从未, 调用字符 显示文字 .); - 宣告语言包定义结束?- 宣布php语言结束相关实例:假设,我们增加一个语言调用,在title = 标题,上一行添加abc = 这是测试语言调用,最后的 , 是比不可少的,还有调用字符和显示文字,都必须使用 引起。增加以后,到模板中,就能调用它,模板中写lang abc那么显示出来就直接显示: 这是测试语言调用特别注意: 增加语言或修改语言包后,必须更新缓存哦!五、风格参数调用在模板中常见到XXXXX的语句。中的必须是大写。这些都是调用风格配色方案中的参数。您可以可以自己添加,方法如下:1, 进入 界面风格 - 界面风格 - 您要添加参数的风格 点 详情2, 进入后最下面,有两栏可以填写,一个是变量,一个是替换内容相关实例1:变量写 COPYRIGHT (注意这里必须大写)替换内容写这个是自定义风格变量提交后,修改模板,在模板文件中加上COPYRIGHT,那么就可以显示出 这个是自定义风格变量。相关实例2:变量写 FOOTERCOLOR (注意必须使用大写)替换内容写 #003399提交后,修改模板,模板中写测试风格自定义变量那么出来的效果,这个 测试风格自定义变量 就会按照填写的替换内容的颜色来显示了。discuz模板语法定义2009-11-25 15:17Discuz! 的模板采用近似 PHP 表达式的语法,支持的元素如下:a. 逻辑元素包围符,该符号用于包含条件和循环元素1. 条件判断 statement1 statement2 statement3 2. 这 是一个典型的条件模板,当条件 expr1 为真时,显示模板 statement1 内容,否则当 expr2 为真时,显示模板 statement2 内容,否则显示模板 statement3 的内容。如同其他语言中的条件控制一样,其中 和 是非必须的。3. 不带下标变量的数组循环 statement 4. 相当于 PHP 的数组循环语句:foreach($array as $value) statement 5. 带下标变量的数组循环 statement 6. 相当于 PHP 的数组循环语句:foreach($array as $key = $value) statement 7. 逻 辑元素包围符在 外面包含了 html 的注释符号 ,除了为了和信息元素相区别外,也方便了使用 Dreamweaver 和 Frontpage 之类工具编辑模板的用户。因逻辑元素会被识别为 html 的注释而不被显示,对于绝大多数用户,逻辑元素中的内容是完全不需要修改的,甚至修改错一个字符就可能引起错误信息和整个系统无法运行。因此通常您在修改 模板的时候,不要修改模板的逻辑信息,更不要将逻辑信息内部元素(如 等)的前后位置作以修改,否则可能会导致错误。如果您的模板被不慎修改损坏,请立即用原标准默认模板覆盖,即可恢复。8. 对于高手而言,实际上外部的 是可以省略不写的,可以用于某些元素在模板中的定位,但强烈建议普通用户不要轻易尝试。b. 信息元素包围符1. CONSTANT可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 PHP 常量 CONSTANT,因此也可以通过它来引用其他的常量内容。2. lang variable可 以在模板中引用语言变量 variable 的内容,语言变量经由 templates.php.lang 中数组 $language 定义。如 lang post_edit 的内容在编译模板的时候被替换为 $languagepost_edit 的内容,简体中文版的意思是“编辑帖子”。3. template name模板嵌入符,为了避免模板的冗长,可以使用本符号来将 name 模板的内容嵌入本模板中(实际上为引用)。4. eval statement运行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论