discuz模板语法
Discuz! X 模板的解析主要是 ./source/class/class_template.php 文件解析处理的,如果需要深入了解请可以看看这个文件!
模板嵌套语法
将被嵌套模板内容解析为 PHP 语句并合并入本模板中的写法
<!--{subtemplate common/header}-->
common/header 对应某个模板套系中的 common 目录的 header.html 模板文件程序运行时include嵌套模板内容
<!--{template common/header}-->注释:当模板中有较多 loop 时,尽量用 subtemplate
逻辑判断 if...else
- 如果写在 HTML 表单元素中,可以省去使代码更清晰易读,如{if $my_var}xxx{/if}
<!--{if $_G['uid']}--> 任意html语句 <!--{/if}-->//如果是在对html标签某个属性值做判断时显得尤为重要,如果在标签之外的话,最好加上<!-- -->注释符号 - 带有分支条件的 if 写法
<!--{if $_G['uid']}--> 任意 html 语句 <!--{elseif $_G[connectguest]}--> 任意html语句 <!--{/if}--> - 带有多条件的 if 写法,可使用 PHP 常规判断中的按位运算符等
<!--{if empty($_G['forum']['picstyle']) && $_GET['orderby'] == 'lastpost' && empty($_GET['filter']) }-->
任意 html 语句
<!--{/if}--> - CSS 书写时也可以按条件进行判断设置设置例如:
<td class="fl_g"{if $forumcolwidth} width="$forumcolwidth"{/if}> //正如上面所说,对html标签中属性值做判断的时候,可以省略注释符<!-- -->
- 如果写在 HTML 表单元素中,可以省去使代码更清晰易读,如{if $my_var}xxx{/if}
直接执行 PHP 代码标签:
<!--{eval echo $my_var;}--> //相当于 <?php echo $my_var;?>
<!--{eval $my_arr = array(1, 2, 3);}--> //相当于 <?php $my_arr=array(1,2,3);?>
<!--{eval print_r($my_arr);}--> //相当于<?php print_r($my_arr);?>
<!--{eval output();}--> //相当于<?php output();?>
<!--{eval exit();}--> //相当于 <?php exit();?>直接输出变量,等同于 PHP 的 <?php echo $my_var; ?>, 花括号可以省略但不建议去掉。(模块程序处理后才能在这里调用):
<div id="anc"><ul id="ancl">$announcements</ul></div>//一般情况下输出的内容不是简单的变量
<!--{echo cutstr($group[lastpost][subject], 30)}--> //使用条件:1-变量需经函数处理 2-输出的是变量,不能是数组广告的嵌入点代码:
<!--{ad/headerbanner/wp a_h}--> //这是discuz内嵌广告,建议大家自定义广告位,自定义的广告位在后台会自动生成调用代码,我们只需要粘贴复制即可插件的钩子标签:
<!--{hook/global_usernav_extra2}-->
hook为关键词,意为将index_top定义为钩子循环语法(可以多重循环)
带有数组键的循环写法
<!--{loop $my_arr $key $val}-->
循环输出的HTML语句
<!--{/loop}-->没有数组键的循环写法
<!--{loop $_G['setting']['navs'] $nav}-->
循环输出的HTML语句
<!--{/loop}-->DIY 区域和后台数据调用标签:
<!--[diy=diy1]--><div id="diy1" class="area"></div><!--[/diy]--> //尽量避免使用discuz的diy功能,因为维护大家很大,可直接通过后台自定义模块或模块代码
{block XXX}(数据调用模块)Discuz! 语言包加载后,模板文件中的使用:
{lang forum_category_modedby}
其中语言包在 ./source/language/目录下,以PHP数组形式存放
discuz模板语法的更多相关文章
- PHP discuz模板语法
Discuz! X 模板的解析主要是 ./source/class/class_template.php 文件解析处理的,如果需要深入了解请可以看看这个文件! 模板嵌套语法 将被嵌套模板内容解析为 P ...
- Discuz!模板解析语法
<!--{eval echo autostart("); }--> PHP中使用template()函数显示已存在模板 在Discuz!程序执行中可以通过 include tem ...
- 我是如何给discuz模板做语法高亮的
本人一直做ASP.NET开发,近期接到任务要用Discuz开发一个社区,第一次接触PHP,PHP灵活的语法,天生的模块化,各种语法糖深深的震惊了我,我从内心深处感受到了PHP是最牛逼的语言!!! 好了 ...
- 我是如何给discuz模板做语法高亮的/vs code/textmate
本人一直做ASP.NET开发,近期接到任务要用Discuz开发一个社区,第一次接触PHP,PHP灵活的语法,天生的模块化,各种语法糖深深的震惊了我,我从内心深处感受到了PHP是最牛逼的语言!!! 好了 ...
- discuz模板引擎
discuz是采用“编译型的模板”,就是指采用普通网页文件保存,在文件中插入需要动态显示数据的仿php的代码,最后进行编译成真正的php的文件保存为模板缓存文件,这个转换的过程就称为编译.在用户浏览页 ...
- Discuz 模板标签说明
Discuz 模板标签说明 Discuz! 的模板采用近似 PHP 表达式的语法,基本都是可识别的HTML,但涉及到变量和动态内容时,基本形式下: <!-{ 代码内容 }-> 逻辑元素包围 ...
- angular2系列教程(二)模板语法
今天我们要讲的是angualr2的模板语法,官网写的很清楚,但我也用通俗易懂的讲法再罗列一下吧! 例子
- Angular2 模板语法
1. 说明 Angular2的模板用来显示组件外观,作为视图所用,用法和html语法基本一致,最简单的Angular2的模板就是一段html代码.Angular模板语法主要包括以下几个部分: l 直接 ...
- discuz教程:discuz模板js与jQuery冲突的解决方案
今天在做discuz模板的时候,用到jquery的时候和原来主题js冲突.这个主要是Discuz X使用了$(id)作为dom节点的获取方法,而$符号刚好与jQuery的默认符号相冲突. 以下是基于之 ...
随机推荐
- C++内联函数
在C语言中,我们使用宏定义函数这种借助编译器的优化技术来减少程序的执行时间,那么在C++中有没有相同的技术或者更好的实现方法呢?答案是有的,那就是内联函数.内联函数作为编译器优化手段的一种技术,在降低 ...
- git如何切换远程仓库
场景 工作时可能由于git仓库的变动,需要我们将已有代码切换仓库.比如我们先用的gitlab,现在要切换到github上. 迁移命令 代码迁移其实也很简单. 先保证本地代码是最新代码 $ git pu ...
- 1.Hibernate简介
1.框架简介: 定义:基于java语言开发的一套ORM框架: 优点:a.方便开发; b.大大减少代码量; c.性能稍高(不能与数据库高手相比,较一般数据库使用者 ...
- Oracle 表空间和用户权限管理
一. 表空间 Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构指的是构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念以及它们之间的关系. 表空间是数据库逻 ...
- 【repost】JS错误类型的学习
SyntaxError是解析代码时发生的语法错误 // 变量名错误 var 1a; // 缺少括号 console.log 'hello'); (2)ReferenceError Referen ...
- LeetCode-1TwoSum(C#)
# 题目 1. Two Sum Given an array of integers, return indices of the two numbers such that they add up ...
- [翻译]AKKA笔记 -ACTOR SUPERVISION - 8
失败更像是分布式系统的一个特性.因此Akka用一个容忍失败的模型,在你的业务逻辑与失败处理逻辑(supervision逻辑)中间你能有一个清晰的边界.只需要一点点工作,这很赞.这就是我们要讨论的主题. ...
- Android开发学习之路-插件安装、检查应用是否安装解决方案
使用Bmob的时候,如果需要用到支付功能,就需要让应用去安装一个支付插件.而一般的做法是将插件放置在assets目录中,当用户需要支付,先检查是否能支付,不能的话,提示安装插件.代码: public ...
- 搭建LNAMP环境(七)- PHP7源码安装Memcached和Memcache拓展
上一篇:搭建LNAMP环境(六)- PHP7源码安装MongoDB和MongoDB拓展 一.安装Memcached 1.yum安装libevent事件触发管理器 yum -y install libe ...
- 【WCF】操作选择器
在开始吹牛之前,先说说.net Core的事情. 你不能把.NET Core作为全新体系来学习,因为它也是.NET.关于.NET Core,老周并不打算写什么,因为你懂了.NET,就懂了.NET Co ...