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


Posted in PHP onAugust 21, 2009

  一、模板 调用
比如在某个模板中,想调用另一个模板中的内容,可以用下面的语句:
{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!

PHP 相关文章推荐
如何在PHP中使用Oracle数据库(4)
Oct 09 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
May 26 PHP
简单的PHP留言本实例代码
May 09 PHP
php入门学习知识点四 PHP正则表达式基本应用
Jul 14 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
php 分页原理详解
Aug 21 #PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 #PHP
PHP 各种排序算法实现代码
Aug 20 #PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 #PHP
数据库查询记录php 多行多列显示
Aug 15 #PHP
PHP 实现多服务器共享 SESSION 数据
Aug 15 #PHP
php 静态页面中显示动态内容
Aug 14 #PHP
You might like
农民C键的运用技巧
2020/03/04 星际争霸
php扩展ZF――Validate扩展
2008/01/10 PHP
Gregarius中文日期格式问题解决办法
2008/04/22 PHP
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
2011/11/07 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
2018/10/25 PHP
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
2018/03/17 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python中__init__.py文件的作用详解
2016/09/18 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
wxPython之解决闪烁的问题
2018/01/15 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
python+opencv实现阈值分割
2018/12/26 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
Funko官方商店:源自美国,畅销全球搪胶收藏玩偶
2018/09/15 全球购物
学生会个人自荐书范文
2014/02/12 职场文书
简单租房协议书范本
2014/08/20 职场文书
大学生自荐书范文
2015/03/05 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
2015学校年度工作总结
2015/05/11 职场文书
该怎么书写道歉信?
2019/07/03 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python