因为是语句解释,所以本文档相对枯燥,你可以把它当作词典来看.
DISCUZ!(以后简称DZ)通过模板实现对整个程序皮肤的修改,我们常修改的几个模板,分别是header.htm(控制头部),footer.htm(控制尾部),discuz.htm(控制首页中部),css.htm(CSS文档)以及6.0新增加的css_append.htm(CSS新增文档)
本讲将重点讲述header.htm中的变量以及语句.
下面先介绍下变量的概念.
DISCUZ!模板中变量由”{“开头,”}”结尾,如{STYLEID},表示的是风格ID,此类变量多用于CSS定义中
它通常通过这些简单的特殊词句对一些较长,或者多次使用的字符进行一次定义,并且通过后台或者PHP程序文件中对变量的申明修改进行替换.变量都是由大写的唯一性词汇组成.
最简单的例子就是在风格中使用的新变量添加.
我们打开DZ的后台,论坛管理-界面风格-风格后的详情-最下端
[attach]1906[/attach]
当然.这个功能一般不常用.这里提出只是让大家能更加形象的了解变量这个概念.
另外有一种DZ的系统变量,通常是在PHP文件中申明的,通常以”$”开头,和上面的变量功能是一样的
下面我们开始从header.htm(以下简称header)最开始解说一些常用的变量及其中有的条件语句.
先是在 中的
其中的$charset表示编码类型,比如GBK,UTF-8
下一行的
复制内容到剪贴板 代码: $navtitle $bbname $seotitle - Powered by Discuz!
其中的$navtitle表示当前页面名称
$bbname表示站点名称
$seotitle 表示SEO名称
在往下面看,出现一段条件语句
复制内容到剪贴板 代码:
{template css}
{template css_append}
表示如果打开了CSS缓存(就是生成的.CSS文件)
那么...就加载以下两个CSS
forumdata/cache/目录下的...style_{STYLEID}.css和style_{STYLEID}_append.css(两个对应风格ID的CSS文档和CSS新增文档)
如果没有打开.则直接加载两个对应的CSS的模板
{template css}{template css_append}
其中template表示模板的意思,后面的就是模板名称,比如{template css}就是CSS.htm这个模板.
最后的 是结束语句
下面有段script,觉得有必要讲一下
复制内容到剪贴板 代码: var IMGDIR = '{IMGDIR}';var attackevasive = '$attackevasive';var gid = 0; gid = parseInt('$thisgid'); gid = parseInt('$gid'); var fid = parseInt('$fid');var tid = parseInt('$tid');
它的主要作用是把模板内的所有{IMGDIR}变为当前风格的图片路径.比如{IMGDIR}/1.jpg,如果你在后台填写的风格图片路径是images/water,那么,这段语句在运行时,展现出来的路径就是images/water/1.jpg
接下来是我们最为熟悉的
复制内容到剪贴板 代码: {BOARDLOGO}
它代表的就是LOGO部分$indexname表示站点路径
$bbname上面已经提到了.表示的是站点名称
{BOARDLOGO}变量代表的是站点的LOGO图片地址,替换的内容是(https://img.LOGO_url表示LOGO地址)
复制内容到剪贴板 代码:
第02部分将讲述从
复制内容到剪贴板 代码:
一直到header最后的部分
包括了最头部的难点:分栏条件语句以及菜单栏
下面我们接第01部分,继续讲解menu部分
在menu层下面一行
复制内容到剪贴板 代码: 0}-->
if(top == self) {
top.location = 'frame.php?frameon=yes&referer='+escape(self.location);
document.write('{lang frameon_column} ');
} else {
document.write('{lang frameon_flat} ');
}
复制内容到剪贴板 代码: 0}-->
表示如果分栏功能打开,是一个功能判断语句下面接着的以下面语句开头
复制内容到剪贴板 代码:
并以下面语句结尾复制内容到剪贴板 代码:
使用了一个script脚本,书写了分栏定位以及用词判断 复制内容到剪贴板 代码: if(top == self) {
top.location = 'frame.php?frameon=yes&referer='+escape(self.location);
下面的
复制内容到剪贴板 代码: document.write('{lang frameon_column} ');
} else {
document.write('{lang frameon_flat} ');
}
最后以 结尾
下面就是所有的菜单右部,接着我们来一一解说
复制内容到剪贴板 代码:
$discuz_userss
{lang logout}
class="current" >{lang pm}
class="current" >$reglinkname
class="current" >{lang login}
class="current" >{lang memberlist}
class="current" >{lang search}
class="current" >{lang tag}
0 && $module['adminid'] >= $adminid)}--> $module[url]
current " onmouseover="showMenu(this.id)">{lang my} class="current" >{lang show_mytopics} {lang my_permissions}
current " onmouseover="showMenu(this.id)">{lang memcp} class="current" >{lang memcp}
1}--> class="current" >{lang invite}
class="current" >{lang magics_title}
$pluginjsmenu
current " onmouseover="showMenu(this.id)">{lang statistics} {lang statistics}
{lang admincp}
class="current" >{lang faq}
复制内容到剪贴板 代码:
$discuz_userss
{lang logout}
class="current" >{lang pm}
class="current" >$reglinkname
class="current" >{lang login}
复制内容到剪贴板 代码:
说的是登陆判断,其实就是如果有DISCUZ的UID,即登陆状态,则显示 复制内容到剪贴板 代码: $discuz_userss
{lang logout}
class="current" >{lang pm}
第二个 里是{lang logout},连接到的是$link_logout,即登出连接
第三个是一段变量代码,变量是{lang pm},也就是短消息,这里有 class="current" 在下面也会出现,说的意思是,如果定位的URL是pm.php,则显示current这个CLASS,大家在DST点到短消息,然后看看菜单就知道这个class是什么样子了
" "这个语句非常常见,相当于C语言以及其他程序语言中的else,和if搭配使用.
这里说明的意思是,如果不是登陆状态,则显示下面的内容.
复制内容到剪贴板 代码: class="current" >$reglinkname
class="current" >{lang login}
下面的
复制内容到剪贴板 代码: class="current" >{lang memberlist}
这里主要说下 这个判断,意思是如果会员列表打开,{lang memberlist}就是会员列表的变量复制内容到剪贴板 代码: class="current" >{lang search}
这个是搜索打开的变量,这里的 表示,$allowsearch是允许搜索.||是连接词,表示或者的意思.$qihoo['status']是奇虎搜索.{lang search}是搜索的变量,不常用到,也就只说这么点了.复制内容到剪贴板 代码: class="current" >{lang tag}
这个是标签 复制内容到剪贴板 代码:
0 && $module['adminid'] >= $adminid)}--> $module[url]
复制内容到剪贴板 代码:
current " onmouseover="showMenu(this.id)">{lang my} class="current" >{lang show_mytopics} {lang my_permissions}
复制内容到剪贴板 代码: current " onmouseover="showMenu(this.id)">{lang memcp} class="current" >{lang memcp}
这个是调用JS命令,控制菜单里的控制面板选项复制内容到剪贴板 代码: 1}--> class="current" >{lang invite}
这个是邀请注册复制内容到剪贴板 代码: class="current" >{lang magics_title}
这个是道具复制内容到剪贴板 代码: $pluginjsmenu
这个是插件,下拉菜单菜单时候的显示复制内容到剪贴板 代码: current " onmouseover="showMenu(this.id)">{lang statistics} {lang statistics}
这个是统计复制内容到剪贴板 代码: {lang admincp}
这个是系统设置,也就是后台复制内容到剪贴板 代码: class="current" >{lang faq}
这个是帮助
查看更多关于DIV+CSS[DISCUZ模板解析第1讲]_html/css_WEB-ITnose的详细内容...