Discuz   发布时间:2022-05-06  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了discuz模板语法定义大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

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 的注释而不被显示,对于绝大多数用户,逻辑元素中的内容是完全不需要修改的,甚至修改错一个字符就可能引起错误信息和整个系统无法运行。因此通常您在修改 模板的时候,不要修改模板的逻辑信息,更不要将逻辑信息内部元素(如 <!–{elsE}–> 等)的前后位置作以修改,否则可能会导致错误。如果您的模板被不慎修改损坏,请立即用原标准默认模板覆盖,即可恢复。对于高手而言,实际上外部的 <!– –> 是可以省略不写的,可以用于某些元素在模板中的定位,但强烈建议普通用户不要轻易尝试。{ … }信息元素包围符{CONSTANT}可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 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,以便导入程序自动建立模板记录和文件夹。定义变量说明<?exit?><!–{eval $i=2}–><!–{if $i==1}–>123<!–{/if}–><!–{Block name=”spaceblog” parameter=”notype/1/order/i.dateline,i.lastpost/limit/0,14/cachetime/900 /cachename/newti/tPL/data”}–><!–最新日志–><!–{eval $i=0;}–><!–{loop $_SBLOCK['newti'] $value}–><!–{if $i % 2 == 0}–>//如果i除以2的余数等于0<div class=”listbg”><!–{elsE}–><div class=”listbg2″><!–{/if}–>· [<span class="listA">$value[typename]</span>]<aclass=”listA” href=”$value[url]” title=”$value[subjectall]” target=”_blank”>$value[subject]</a></div><!–{eval $i++;}–><!–{/loop}–><!–{eval for ($i=1; $i<=5; $i++){ }–><!–{eval echo “Hello World!<br />”;}–><!–{eval}}–> 

<table style="width: 100%; table-layout: fixed"><tr><td>
<div id="blog_text" class="cnt">

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

  • 逻辑元素包围符,该符号用于包含条件和循环元素
    • 条件判断
      <><>
      @H_419_8@  statement1   statement2   statement3 

      这 是一个典型的条件模板,当条件 expr1 为真时,显示模板 statement1 内容,否则当 expr2 为真时,显示模板 statement2 内容,否则显示模板 statement3 的内容。如同其他语言中的条件控制一样,其中 是非必须的。

    • 不带下标变量的数组循环
      <><>
        statement 

      相当于 @L_197_0@ 的数组循环语句:

      <><>
      foreach($array as $value) {  statement }
    • 带下标变量的数组循环
      <><>
        statement 

      相当于 @L_197_0@ 的数组循环语句:

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

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

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

    • { … }信息元素包围符
      • {CONSTANT}可以引用界面替换变量,其中必须为大写字母,该符号实际的作用是引用 @L_197_0@ 常量 CONSTANT,因此也可以通过它来引用其他的常量内容
      • {lang variablE}可 以在模板中引用语言变量 variable 的内容,语言变量经由 templates.@L_197_0@.lang 中数组 $language 定义。如 {lang post_edit} 的内容在编译模板的时候被替换为 $language['post_edit'] 的内容,简体中文版的意思是“编辑帖子”。
      • {template namE}模板嵌入符,为了避免模板的冗长,可以使用本符号来将 name 模板的内容嵌入本模板中(实际上为引用)。
      • {eval statement}运行 @L_197_0@ 语句体 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.@L_197_0@ on line 6,说明模板中出现了无法匹配,或格式错误的逻辑元素,请仔细检查是否有元素不对应,没有结束或嵌套损坏,格式错误的现象,必要时可以恢复原始模板来解决 问题。

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

        定义变量说明

        123

        //如果i除以2的余数等于0

        · []$value[subject]

        {eval for ($i=1; $i<=5; $i++){ }–>

        {eval echo “Hello World!
        ”;}–>

        大佬总结

        以上是大佬教程为你收集整理的discuz模板语法定义全部内容,希望文章能够帮你解决discuz模板语法定义所遇到的程序开发问题。

        如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

        本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
        如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
        标签: