坏蛋网络

 找回密码
 立即注册

微信登录

只需一步,快速开始

手机动态码快速登录

手机号快速注册登录

搜索

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

[复制链接]
坏蛋网络官方 发表于 2020-1-20 03:01:00 来自手机 | 显示全部楼层 |阅读模式
很多站长在使用DZ的时候,很想修改(header)头部文件,却无从下手,今天我就从文件第一行到最后一行来给大家解剖一下此文件,熟悉的站长都应该知道,Dx的模板制作无不是三个部分,头部(hd)、主体(wp)、底部(ft),这三个部分就是制作模板的关键,然而其中三个部分个人觉得最难的还是主体部分,今天讲下头部文件代码,因为是代码教程,有些代码太长,没必要粘贴过来!我会尽量的写详细点,后须我会将一些常用 的模板文件进行解剖!在这里希望大家支持一下!随便AD下!
- ?' F9 g4 B0 @2 Q. C& k, H; ~  j# x% Z; s7 @6 P& j
header.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!+ A7 {9 ~: i4 E& b

2 T9 o2 A. p* @第1行代码:) W/ t; ~! k: P% u! y, y
<!–{subtemplate common/header_common}–>1 B+ T/ j7 `% h0 d8 Y/ G
代码解释:用于调用common文件下的header_common.html文件,  T8 J" x6 ?0 n
备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。4 V4 l3 I$ J+ C8 f9 _2 W. S

; H' N; M% _6 u5 V; B第2-29行代码:
! X! `- [. l8 T4 J. h9 q2 z从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾0 n1 n* V$ w' T8 z
代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!; X2 G9 H: d/ U( s0 H
备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写
- w5 b, S" O' D0 c: A9 \
8 L" P) C2 r5 P* R8 z第30-186行代码:
) K  f2 }* M9 h: v' {5 e$ i从<body>处开始到此文件的最下方; y7 k3 ?) ]  q+ p8 Y" d
代码解释:这是首部文件的核心
+ u2 M9 o3 m: d, N7 b0 ?( _备注:在修改时请注间要提前备份文件
. N; P( L/ l2 c% m9 N' k7 u* X. A1 r- c
第32-44行代码:6 H; h0 |8 Y8 x; j# b
从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾
# j+ r$ E. ^( ^1 n代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,
& a) a- t+ n' i备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!
$ Q, W) X0 ~1 d8 @4 z, C% u$ i: \& ?. H6 W* q
第32-44行代码:0 P8 r' F( g6 q9 g/ y
从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>0 x' k  L0 _- ^& |
代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>; o8 t# t- B# k- a: t8 X' }8 j
备注:在后台=》界面=》顶部导航。可以设置0 g. l& k1 w1 y+ M! z- n
) w9 E: S5 N( U/ A% l
第70-78行代码:+ F( S  B; r7 T2 k0 S* r/ t& w# _
5 z5 q) ~# P. ^' U( A; n
<!–{if !IS_ROBOT}–>5 j* F% h; z% Z7 X) ^/ _
                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>
# N3 n  U8 \" H( i                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>
4 [9 p; j) z' G3 U) q. J                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>
4 }/ Z* Z4 E6 i# M- f/ p                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–>6 [/ s  u: W; Z- k* y# f* D6 O0 U0 P
                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>
. |5 v. O$ ?3 ~3 c, ?                                        <!–{/loop}–>
0 D; g+ Z& {: H2 b$ ], o) a                                </div>, i3 _  A& `/ Q* {* s
                        <!–{/if}–>- O: P) U: R  \& `) C" |$ v
/ F% Z  s2 c6 q
代码解释:此处是拓展色的切换的菜单) p7 R, A- m) ~8 Y
备注:如里不需要可以删除0 ^+ e' o) @0 E% a6 {8 r: n
; H+ s6 q+ G3 r( O) E, t+ R& n
第80-96行代码:! a1 i3 L) c1 M  P
5 q/ l/ G5 R5 d" b/ W
<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>* K0 @4 S/ P+ ~+ z0 {7 l4 k1 N8 y
                                        <!–{if $_G[‘uid’]}–>
& d* b- X/ _' n                                        <ul>7 P  Q, n0 s1 w0 p! y3 r
                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–>3 P- h2 o  o: N5 m) O
                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>
: ^" z  W. v" k5 _8 }4 c                                                                <li>$nav[code]</li>
. y5 P9 g( x0 b& w& v                                                        <!–{/if}–>) f" F- D' @/ _% B6 C( b
                                                <!–{/loop}–>
( A- [! U0 f# X4 \. w7 u5 W# @% F                                        </ul>
. a  E1 c0 V1 E* G                                        <!–{else}–>
2 P% \8 v: `4 l, R/ {8 i: }/ O                                                <div class=”ptm pbw hm”>2 r# r' ]" S9 g0 I
                                                        {lang my_nav_login}3 t/ H8 b/ m0 R! |
                                                </div>
* N3 U) `6 g: y, e) S                                        <!–{/if}–>$ C- w! C& {( g
                                </div>3 k) t8 b: ^% q' F
                <!–{/if}–>% P8 d- Q! [$ b& h# a& Z1 G/ s5 Z/ o
1 X  }: y) b" ~( C, D. ~
代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈
6 J: D  b# C+ n6 H0 x备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!
0 C* V9 v7 _& U2 e0 {$ M
9 H' F7 ]; Q2 x$ x3 s! P, d; T. E第97行代码:4 D: U+ p& [2 w. K  m

& Y, s1 K/ Q1 k<!–{ad/headerbanner/wp a_h}–>
* L' o% U& k! V
3 R. F  Q( L, X- N7 |7 Q4 |9 h代码解释:头部的广告代码,
6 _$ W$ G: X* y备注:可以在后台=》运营=站内广告添加第98-184行代码:, X5 F; H/ L, k2 o& o
从<div id=”hd”>到 </div><!–{/if}–>3 A: ~, p, G4 T4 m* r5 j' C
代码解释:头部的核心文件; L7 W( k* b2 i& T1 X; \9 d3 o" \7 m) m
备注:下面是头部核心的DIV指引: ]; r' Z2 E7 y: b
<div id=”hd”>
) |+ `$ ~8 G2 u3 V( g<div class=”wp”>
, f% m: @! N+ J. ?* {' _<div class=”hdc cl”>
' H' J5 w; ~% T/ O<h2>logo</h2>———————————->logo1 b/ h& V- j* f8 i4 X
                 <div id=”um”>0 b3 n9 R# c6 r0 a0 l" J7 _
<div class=”avt y”>头像</div>—————————–头像
( c, p! C2 H8 F/ D9 \" G                       <p>
. m5 K, [8 Z% v+ x<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1
8 o% J+ ^( R8 l                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点2
  l( S1 |# I6 C: c) p" M个人信息—————————————->个人信息% [* ^; H8 Z6 e9 T9 T) |8 a# \, \& i
</p>
% s: X+ O! I4 j+ `1 r9 X* h6 y, ?<p>
2 j3 D; r8 ~' Q; d<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点3$ W# ^- M! e8 C) a) n) O
个人信息—————————————->个人信息. Q$ P/ d' U% M& N/ ?: R
</p>: j) [8 k0 ]. m$ M
</div>
7 b; L$ A8 H: l" k' }<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>( ?0 H# @+ |9 g) u! \- j# ?
<div id=”nv”>
4 _( U& `0 D" n, M2 z( W( j3 ?<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航6 G7 z5 b( V; z; Q) Z2 e
                <ul>
5 j- D0 K: B) v" `<li>栏目导航</li>———————————>栏目导航! r) I0 b' k1 r/ {
                 </ul>1 e! z! z, J+ |! e+ q% O
</div>4 {/ F, \0 r; @0 X2 Y6 V# v+ C
<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>
, J' I7 R( p6 m4 o, b' }二级导航菜单样式——————————————————>二级导航菜单样式& Q2 _& p' E2 k' D3 ?; [
</ul>! p9 O6 F" P& n5 l% m
< div id=”mu” class=”cl”>; I$ r! w8 v$ ]) x
二级导航横排>————->二级导航横排样式
$ y1 L& W2 o& e) q& e0 v+ Y              </div>
% R2 y5 G3 ]8 x$ ?+ W; U# u<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)' G1 [0 U' J- }2 P
<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>
( T. a3 C! y2 ~</div><!–{hook/global_header}–>插件嵌入点
! |& B: w# H- U# M9 W1 M! C' B4 n8 {+ T1 y4 m( C2 @, i
总结:大家在修改的时候他的每个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 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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