坏蛋网络

 找回密码
 立即注册

微信登录

只需一步,快速开始

手机动态码快速登录

手机号快速注册登录

搜索

[DZ教程] Discuz!模板代码解析–header(头部文件)

[复制链接]
坏蛋网络官方 发表于 2020-1-20 03:01:00 来自手机 | 显示全部楼层 |阅读模式
很多站长在使用DZ的时候,很想修改(header)头部文件,却无从下手,今天我就从文件第一行到最后一行来给大家解剖一下此文件,熟悉的站长都应该知道,Dx的模板制作无不是三个部分,头部(hd)、主体(wp)、底部(ft),这三个部分就是制作模板的关键,然而其中三个部分个人觉得最难的还是主体部分,今天讲下头部文件代码,因为是代码教程,有些代码太长,没必要粘贴过来!我会尽量的写详细点,后须我会将一些常用 的模板文件进行解剖!在这里希望大家支持一下!随便AD下!5 j  F% D/ A* t; H1 a
6 a: C2 Y, s- {9 R
header.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!
6 r* [/ `( ^) y. q; b) B1 F6 y. }0 ^( ?, k6 _
第1行代码:
9 S  a* S5 Q2 P8 X' u% x' Z<!–{subtemplate common/header_common}–>
; e# Q# L7 d( _代码解释:用于调用common文件下的header_common.html文件,9 I$ V' h+ i3 j6 E  g1 X" {; M
备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。
5 M4 u, y0 t; Y0 O6 H0 U- p& J3 h. v  d# u( J. j# ]# ?- S6 o
第2-29行代码:
& ~8 }% |1 m8 q* v% d5 f& T+ F1 N从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾2 U& t2 Z% H. Z4 J
代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!- N2 v3 ?6 q" q: t6 C6 b7 r! C) a
备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写( d5 N. h6 E. o1 j! W" c) T. x

6 s* p/ S; d( _- s1 g$ w第30-186行代码:4 q3 |' K. ?. |: m% v
从<body>处开始到此文件的最下方5 L- ^2 q" o6 c' m
代码解释:这是首部文件的核心  S' f  ]0 W0 ]$ D$ v' ^& ~
备注:在修改时请注间要提前备份文件
; |0 G, e+ _, X6 k8 y% H: ~1 s( Z( X' k! n9 f+ b, t' _
第32-44行代码:
7 h& X! b- b# n/ r从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾
* Y7 p: O& {, l, p+ n' W' u; ^代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,
. D5 d5 p) T" V0 _; J8 A$ h备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!0 b) H* Z" A' v" S- C+ ^5 ^

5 q2 p2 o/ L$ U' [7 N7 M. b) l; C5 ?- y第32-44行代码:: i* y4 b- {& w  `. M; b) x' R8 l
从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>
+ e1 A6 J) ^- p5 O代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>5 }/ j1 u: u- ]% t0 i" D
备注:在后台=》界面=》顶部导航。可以设置4 q' F* G% \1 b
! C. S( b4 Z" H- M9 M5 ~! Y. J( |
第70-78行代码:% c  m! a! Q( c1 W
' W' z; V, m: o: F5 V
<!–{if !IS_ROBOT}–>, I4 G  G# I+ [2 E# }, y
                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>
( z* H8 `0 b# d+ _                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>* G6 x; j- A6 v5 K3 g& U/ o. V) r
                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>2 m7 Q& Y, r, I
                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–>
/ M% K( f  }7 W( }3 B                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>
" E& l# Q9 ~, S( o4 d( G  K                                        <!–{/loop}–>
, J0 X4 R( z) E+ }; X% b9 v/ m                                </div>
7 q* p5 e& h" V! ], q                        <!–{/if}–>
6 p: p2 H2 h3 \9 R! J
, p1 f! V2 f" k, Y/ H8 n1 m" i代码解释:此处是拓展色的切换的菜单
$ \" M; R5 U9 T& l/ Q备注:如里不需要可以删除
* i) o$ B' s& U  Y' ?% q0 w' n7 I7 Q3 y* O( |& t" A& l
第80-96行代码:
2 x- @* j: {9 x% \9 o, K2 `
! y- {; n8 o1 ]<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>$ H( [: E! c" H
                                        <!–{if $_G[‘uid’]}–>
1 l4 U+ s. F3 ^5 I2 [7 p                                        <ul>
& [' i  S" ~0 ?! \$ ]+ i                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–>! d) ^& z. F8 R$ w4 k
                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>
: K) E' \3 {2 M9 a& I1 T                                                                <li>$nav[code]</li>, ~9 k, |5 x. ^8 y1 p
                                                        <!–{/if}–>9 p. n/ z: s; j' _2 _7 r
                                                <!–{/loop}–>
- C$ a+ c3 m6 A  _+ Y' n                                        </ul>
: p3 Y8 p1 f/ @1 `. U2 J/ j                                        <!–{else}–>
" D2 a  s2 _5 i+ }. A: R0 {6 V                                                <div class=”ptm pbw hm”>+ [$ W, F) _0 ~  C* |: b1 s; L
                                                        {lang my_nav_login}. T" f$ E# z% f; _% k$ C& F
                                                </div># f! k3 g  y  B* I+ w
                                        <!–{/if}–>2 P5 B9 A1 y/ A, o# h
                                </div>; \! S3 }& w9 M- P- z8 h
                <!–{/if}–>2 Y. s! I0 j( v' k
' x9 i0 E& Y/ ^, T& E
代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈7 e9 y  T# R  r# E+ U# R7 N6 I
备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!7 r% B: V7 e2 X
0 N8 q/ z+ Y  }. e  j1 U
第97行代码:% z) [) G% l9 Z# t

  _; a# N3 A7 D1 a3 V9 K<!–{ad/headerbanner/wp a_h}–>4 V6 d! M5 c: v4 O( b

, k( s6 M/ _$ V; \: d1 m' e% [代码解释:头部的广告代码,
) J: |8 \9 M" N' C5 ]备注:可以在后台=》运营=站内广告添加第98-184行代码:
* J6 K* a: U4 n) R4 W0 |从<div id=”hd”>到 </div><!–{/if}–>
. d& K$ H9 r$ y  |代码解释:头部的核心文件$ E3 I% W2 O3 |+ k8 ]1 L
备注:下面是头部核心的DIV指引
9 I6 V9 x0 l' ]1 ?; l/ q( O<div id=”hd”>
2 F4 G9 M% J& k2 e& b( g; K<div class=”wp”>8 A; o7 K! F9 M! I7 p% n. O7 n
<div class=”hdc cl”>1 y% }9 V7 G( a
<h2>logo</h2>———————————->logo3 i" M- [9 a: o
                 <div id=”um”>1 ?% K" x: ^" N5 }( j* c
<div class=”avt y”>头像</div>—————————–头像
- U2 p( p' |! c, ?" A                       <p>
" @8 O$ K. I, Y: B9 f5 ?& ]  J<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1
% u7 S+ v7 m- A$ A" p5 T                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点23 L: {2 ~; Z% T* E* K( @$ ^
个人信息—————————————->个人信息
+ q& e' K: W& _" t9 z</p>
; g% X2 {, ]" C+ T2 \<p># Q+ W; C6 Q8 ]* `
<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点36 R, W' O  w' b' B: P( I
个人信息—————————————->个人信息
: o% G8 H2 n$ n  i</p>
. s4 l$ Q7 ?9 B4 I</div>( E. P5 \, Y  a1 h, \& P
<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>: V: J6 d* V! s
<div id=”nv”>2 z. a# b, Y7 U- B) l6 V: n
<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航
, C$ s7 K& B% v+ s0 _5 x, o" [; B                <ul>
3 P# x  e! `( W* [8 {* [<li>栏目导航</li>———————————>栏目导航
$ {. G0 W# Y! i' [) t, \6 g                 </ul>1 N' |% ]! X1 v& p7 @* v
</div>6 O3 U8 ~7 y/ `# ]
<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>$ M: |! A) K( N7 ?" Y4 k6 ]
二级导航菜单样式——————————————————>二级导航菜单样式; O. K1 ?% I8 I% u; L; q# s
</ul>. ^" s# e7 i9 c2 A, H, g! ?" s
< div id=”mu” class=”cl”>& Z; c' I; e& j+ k5 e% _
二级导航横排>————->二级导航横排样式
8 A/ ]2 s/ r3 i* W/ ^              </div>
3 v) A  p- M& `" a- H7 L<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)$ K: p: F# {6 p4 q5 C
<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>
1 S# v7 r" R+ _/ S, r</div><!–{hook/global_header}–>插件嵌入点0 {+ V6 d. I5 p: X  K
  ]: R" X! q! k3 [& E- w+ q
总结:大家在修改的时候他的每个DIV和ul、li、和会有if语句,大家在看明白以上图后,在添加的时候要注意一下IF语句的作用,我就没有把代码复制到上面一一解析,希望大家去妍究下!利用这些资源,自己可以做出很漂亮的头部,举一反三!
想说又不敢说,说了又怕被拒绝,拒绝了又怕尴尬,就是这样的。内心很痛苦的那种。
起什么名字呢? 发表于 2020-1-20 13:44:18 | 显示全部楼层
沙发!沙发!
回复

使用道具 举报

MR.Z 发表于 2020-1-21 08:00:48 | 显示全部楼层
有道理。。。
回复

使用道具 举报

hgfhgf 发表于 2020-1-21 17:55:29 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

1287252690 发表于 2020-1-22 10:59:32 | 显示全部楼层
支持一下
回复

使用道具 举报

雨后晴天 发表于 2020-1-22 21:38:49 | 显示全部楼层
学习了,不错,讲的太有道理了
回复

使用道具 举报

岁月神偷 发表于 2020-1-23 11:01:26 | 显示全部楼层
过来看看的
回复

使用道具 举报

瑾瑾 发表于 2020-1-26 03:05:05 | 显示全部楼层
路过,支持一下啦
回复

使用道具 举报

 shu1332725 发表于 2020-1-26 04:06:46 | 显示全部楼层
过来看看的
回复

使用道具 举报

张红霞 发表于 2020-1-26 11:12:24 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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