Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

学习制作风格之三 - 模板常见语句分析及知识技巧

[复制链接]
Tea 发表于 2005-12-19 19:00:39 | 显示全部楼层 |阅读模式
学习制作风格之一 - 前期图片
https://discuz.dismall.com/viewthread.php?tid=166841
学习制作风格之二 - 新增风格和摸板
https://discuz.dismall.com/viewthread.php?tid=178259



---------------- 承接教学二 ---------------

  为什么要写这个文章?
  想让大家都能制作好一个属于自己的风格模板。希望能帮助大家更好的编写和利用Discuz!的风格和模板技巧。是希望有更多的人参与制作Discuz!风格。是为了提高大家对Discuz!的了解。是为了解除大家心中对Discuz!模板的疑惑。。。。。希望大家加油!


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

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

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

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

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

  15. <!--{/if}--> --- 结束这个判断(判断1)
复制代码




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

相关实例:
header 模板中

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



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

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

  4.         'title' => '标题',
  5.         调用字符    显示文字
  6.         'never' => '从未',
  7.         调用字符    显示文字
  8.         ....
  9. ); --- 宣告语言包定义结束
  10. ?>  -- 宣布php语言结束
复制代码


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


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


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

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

相关实例:
   变量写 FOOTERCOLOR (注意必须使用大写)
   替换内容写 #003399
提交后,修改模板,模板中写<font color="{FOOTERCOLOR}">测试风格自定义变量</font>
那么出来的效果,这个 测试风格自定义变量 就会按照填写的替换内容的颜色来显示了。



经过上面说了那么多,对于修改模板的时候需要注意或者可以应用到的应该让您了解不少了!

希望对您有帮助,Enjoy It!


第四课 Discuz! CSS 详解
https://discuz.dismall.com/viewthread.php?tid=231598


[ 本帖最后由 Tea 于 2006-2-3 14:44 编辑 ]

评分

1

查看全部评分

Temoc 发表于 2005-12-19 19:02:09 | 显示全部楼层
沙发~
回复

使用道具 举报

robi 发表于 2005-12-19 19:02:17 | 显示全部楼层
支持
回复

使用道具 举报

步惊云 发表于 2005-12-19 19:04:09 | 显示全部楼层
非常有用啊,谢谢了
回复

使用道具 举报

robi 发表于 2005-12-19 19:05:17 | 显示全部楼层
三、数据判断
这个对我比较有用
回复

使用道具 举报

小小猪 发表于 2005-12-19 19:22:38 | 显示全部楼层
呵呵,支持下,不错。很详细
回复

使用道具 举报

liuyun 发表于 2005-12-19 19:39:29 | 显示全部楼层
一直想要写这么东西
就是怕麻烦
谢谢Tea
回复

使用道具 举报

MacauNet 发表于 2005-12-19 19:40:01 | 显示全部楼层
不支持不行了...
回复

使用道具 举报

kiss8 发表于 2005-12-19 21:09:22 | 显示全部楼层
顶个!!!!!!!!!!!
回复

使用道具 举报

zjh 发表于 2005-12-19 21:17:00 | 显示全部楼层
支持
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-5-19 07:49 , Processed in 0.103461 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表