Discuz 模板语句分析及知识技巧_php技巧

  一、模板 调用
比如在某个模板中,想调用另一个模板中的内容,可以用下面的语句:
{template xxx}
假设,建立了一个新模板名字叫 "abc.htm" ,在后台 模板编辑时只会显示为 "acb",需要在 index 中调用它,那么就在index 中适当位置加入 {template abc}
那么就会自动代用它。

相关实例: index 模板中,最顶有 {template header},最底有 {template footer}
相关疑问:
那么在这个 abc 模板中需要有 <html><body></body></html> 吗?
不需要的!想要显示什么,就写什么,因为它只是整个网页的一部分! <html><body></body></html> 都已经在header和footer模板中了。

二、固定参数
$seohead                        --- 后台设置 的头部信息
$charset                        --- config.inc.php中设置语言字符集,必不可少,不能删除!
$extrahead                        --- 控制论坛 自动跳转参数,必不可少,不能删除!
{eval updatesession();}                --- 更新论坛 session 表的参数,必不可少,不能删除!
{eval output();}                --- 结束论坛输出,必不可少,不能删除!

以上的参数以Discuz ! 4.0为准,这些参数会因应不同版本而有所不同!
还有一些 $xxx 的也是一些参数如非插件 作者或程序 开发请勿乱修改!

三、数据 判断
   1、在模板中会经常见到<!--{if xx}-->xxx<!--{else}-->xx<!--{/if}-->的语句。
      这些并非普通HTML 中的注释,而是Discuz!特有的模板判断语法,就好比php 或者其他 语法中的 if,else,then等等。
      通过这些语法,能够达到不同的模板效果 。

相关实例:
header 模板中

复制内容到剪贴板

代码 :

<!--{if $discuz_uid}--> --- 如果获取了 $discuz_uid ,即显示下面资料(判断1)
        <span class="bold">$discuz_userss: </span> <a href="$link_logout">{langlogo ut}</a>

        <!--{if $maxpmnum}--> --- 如果有 $maxpmnum,即显示下面资料,否则不显示(判断2)
                | <a href="pm.php" target="_blank">{lang pm}</a>
        <!--{/if}--> --- 结束了这个判断(判断2)

        |  <a href="memcp.php">{lang memcp}</a>

        <!--{if in_array($adminid, array(1,2,3))}--> --- 如果$adminid在1,2,3这三个范围内,即显示下面资料,否则不显示(判断3)
                | <a href="admincp.php" target="_blank">{lang admincp}</a>
        <!--{/if}--> --- 结束了这个判断(判断3)

<!--{else}--> --- 如果获取不了 $discuz_uid ,则显示下面资料

        <span class="bold">{lang guest}:  </span><a href="$link_register">{lang register}</a>
        | <a href="$link_login">{lang login}</a>

<!--{/if}--> --- 结束这个判断(判断1)

2、在模板中会经常见到<!--{loop xx}-->xxx<!--{/loop}-->的语句。
      这个为循环语句,直到数据输出完毕,就会自动结束。
      通过这些语法,能够达到把同一系列的资料进行循环显示效果。

相关实例:
header 模板中

复制内容到剪贴板

代码:

<!--{loop $plugins['links'] $plugin}--> --- 循环1开始,判断插件
        <!--{loop $plugin $module}--> --- 循环2开始,判断插件模组
             <!--{if !$module['adminid'] || ($module['adminid'] && $adminid > 0 && $module['adminid'] >= $adminid)}-->| $module[url] <!--{/if}-->
        <!--{/loop}--> --- 结束循环2
<!--{/loop}--> --- 结束循环1

四、语言调用
在模板中,经常会看到{lang xxx}这样的语句。它就是调用语言包中的词语用的。
而在模板中会调用的大部分都是  templates.lang.php 的。
下面看看语言包的结构:

复制内容到剪贴板

代码:

<?  -- 宣布php语言开始
$language = array
(                        --- 以上宣布语言包定义开始

        'title' => '标题',
        调用字符    显示文字
        'never' => '从未',
        调用字符    显示文字
        ....
); --- 宣告语言包定义结束
?>  -- 宣布php语言结束

相关实例:
假设,我们增加一个语言调用,在
'title' => '标题',
上一行添加
'abc' => '这是测试语言调用',
最后的 , 是比不可少的,还有调用字符和显示文字,都必须使用 '' 引起。
增加以后,到模板中,就能调用它,模板中写{lang abc}
那么显示出来就直接显示: 这是测试语言调用

特别注意: 增加语言或修改语言包后,必须更新缓存哦!

五、风格 参数调用
在模板中常见到{XXXXX}的语句。{}中的必须是大写。

这些都是调用风格配色方案中的参数。您可以可以自己添加,方法 如下:
  1, 进入 界面风格 -> 界面风格 -> 您要添加参数的风格 点 [详情]
  2, 进入后最下面,有两栏可以填写,一个是变量,一个是替换内容

相关实例:
   变量写 FOOTERCOLOR (注意必须使用大写)
   替换内容写 #003399
提交后,修改模板,模板中写<font color="{FOOTERCOLOR}">测试风格自定义变量</font>
那么出来的效果,这个 测试风格自定义变量 就会按照填写的替换内容的颜色来显示了。
经过上面说了那么多,对于修改模板的时候需要注意或者可以应用到的应该让您了解不少了!

希望对您有帮助,Enjoy It!

时间: 2024-08-30 08:52:56

Discuz 模板语句分析及知识技巧_php技巧的相关文章

Linux系统下使用XHProf和XHGui分析PHP运行性能_php技巧

什么是性能分析?性能分析是衡量应用程序在代码级别的相对性能.性能分析将捕捉的事件包括:CPU的使用,内存的使用,函数的调用时长和次数,以及调用图.性能分析的行为也会影响应用性能. 什么时候应该进行性能分析? 在考虑是否进行性能分析时,你首先要想:应用是否存在性能问题?如果有,你要进一步考虑:这个问题有多大? 如果你不这样做,将会陷入一个陷阱--过早优化,这可能会浪费你的时间. 为了评断应用是否存在性能问题,你应该确定性能目标.例如,100 个并发用户的响应时间小于 1s .然后,你需要进行基准测

PDO防注入原理分析以及注意事项_php技巧

我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特别注意什么? 一.为何要优先使用PDO? PHP手册上说得很清楚: 复制代码 代码如下: Prepared statements and stored procedures Many of the more mature databases support the concept of prepar

PHP的面试题集,附我的答案和分析(一)_php技巧

面试题1 1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21 2.echo(),print(),print_r()的区别 3.能够使HTML和PHP分离开使用的模板 4.如何实现PHP.JSP交互? 5.使用哪些工具进行版本控制? 6.如何实现字符串翻转? 7.优化MYSQL数据库的方法. 8.谈谈事务处理 9.apache+mysql+php实现最大负载的方法 10.实现中文字串截取无乱码的方法. 答案: 1.echo date('Y-m-d H:i:s', strtot

PHP数组函数知识汇总_php技巧

本文为大家分享了PHP数组函数基础知识,供大家参考,具体内容如下 数组array是非常重要的数据类型.相对于其他的数据类型,它更像是一种结构,而这种结果构可以存储一系列数值.数组能够在单一变量名中存储许多值,并且能够通过引用下标号来访问某个值. 在 PHP 中,有三种数组类型: 索引数组 - 带有数字索引的数组 关联数组 - 带有指定键的数组 多维数组 - 包含一个或多个数组的数组 一.创建数组 array(key => value) 1.创建索引数组 使用array()函数声明数组.PHP属于

php smarty模板引擎的6个小技巧_php技巧

下面本文将以具体的例子一一分析: capture标签 capture的中文意思是抓取,它的作用是抓取模板输出的数据,当我们需要它的时候,调用它,以得到抓取数据的目的.如下例子: 复制代码 代码如下: {capture name="test"} <img src="testimg.jpg"> {/capture} <div class="image"> {$smarty.capture.test} </div>

php使用for语句输出三角形的方法_php技巧

本文实例讲述了php使用for语句输出三角形的方法.分享给大家供大家参考.具体实现方法如下: <?php //phpinfo(); function Dis($num) { if($num<=0) return; $tmpRow=0; for($i=1;$i<=$num;$i++) { $tmpRow=$i<=$num/2 ? $i:$num-$i+1; echo str_repeat('*',2*$tmpRow-1).'<br />'; } } Dis(19); ?&

PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面_php技巧

AdminLTE 是一个基于Bootstrap 3.x的免费高级管理控制面板主题,完全响应式管理,适合从小型移动设备到大型台式机很多的屏幕分辨率. AdminLTE的特点: 充分响应 可分类的仪表盘 18插件和3自定义插件 重量轻和快速 与大多数主流浏览器兼容 完全支持Glyphicons,Fontawesome和图标 我们使用的工具 Laravel AdminLTE 2.3.2 Bower Composer 下载一个全新的 Laravel如果不太清楚可以去官方网站查看文档link 在此我们直接

模板引擎正则表达式调试小技巧_php技巧

基于正则表达式替换的模板引擎很容易遇上正则表达式最大回溯/递归的限制. 惰性匹配并不可怕,正常情况下模板并不会不够用,往往不会超出限制,discuz的模板引擎就大量使用了.但是因此而不去注意.不去学习,则容易书写错误并遇上问题. 当preg_*返回的是null的时候则要注意了,判断函数是is_null. 出错并不可怕,但是最好把错误都完整的输出,这样调试就很容易了. 除了输出出错原因,还要输出匹配的文本和使用的正则,这样就很容易调试了. PHP代码 复制代码 代码如下: <?php if (is

PHP return语句的另一个作用_php技巧

一直以为,return只能出现在函数中,直到看了bbPress的代码: <?php require_once('./bb-load.php'); bb_repermalink(); // The magic happens here. if ( $self ) { if ( strpos($self, '.php') !== false ) { require($self); } else { require( BB_PATH . 'profile-base.php' ); } return;