坏蛋网络

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
开启左侧

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

[复制链接]
坏蛋网络男神 实名认证 官方 发表于 2020-1-20 03:01:00 来自手机 | 显示全部楼层 |阅读模式
很多站长在使用DZ的时候,很想修改(header)头部文件,却无从下手,今天我就从文件第一行到最后一行来给大家解剖一下此文件,熟悉的站长都应该知道,Dx的模板制作无不是三个部分,头部(hd)、主体(wp)、底部(ft),这三个部分就是制作模板的关键,然而其中三个部分个人觉得最难的还是主体部分,今天讲下头部文件代码,因为是代码教程,有些代码太长,没必要粘贴过来!我会尽量的写详细点,后须我会将一些常用 的模板文件进行解剖!在这里希望大家支持一下!随便AD下!
8 V- t1 H  G8 W0 S: }7 n6 t* \. j0 K7 U, h4 Z
header.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!5 [2 B* }& O7 O' o

& y) y; _, {( n2 i+ \* L第1行代码:) P7 t$ v9 M" M  K4 g
<!–{subtemplate common/header_common}–>' M& O( L4 z: e( d: g1 F1 p
代码解释:用于调用common文件下的header_common.html文件,' d" @; E3 D- ]0 q1 d6 O
备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。% F& D/ o% S: `- K2 m

( x7 s$ F: d0 C- [4 K% H$ M第2-29行代码:( M+ @- W+ Q7 Y0 T1 c6 D# ^4 S7 @
从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾* v6 k$ Z8 h+ o" q
代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!
9 ?7 {1 X+ G# u" D  G备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写7 Z5 N' t) @  M' \

! R( a/ t% J  e' w& `7 I第30-186行代码:
5 |+ B2 i: I; A$ f  i3 U从<body>处开始到此文件的最下方
+ ~2 k# R& r: b+ Z代码解释:这是首部文件的核心
- G0 E- Q: F- M0 C/ b7 U备注:在修改时请注间要提前备份文件5 i% a$ D+ |6 V+ u, m  U

. L; z" i' v2 F/ Q/ v第32-44行代码:* C$ m4 m7 g0 ~3 e; s
从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾
3 j; r( R2 s8 X; c7 q" `! {代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,
( s* U+ \1 l9 K) Q2 ?6 g4 B备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!) v: E, i4 ?; o" b2 K6 Y, n
. M/ L  I( t7 G) t% Z$ E
第32-44行代码:+ u) y& y6 T9 @- h$ [
从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>7 `: k% r' q' O. y% T
代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>" w4 k/ R2 }% D3 K
备注:在后台=》界面=》顶部导航。可以设置
- x: `* s; K2 x7 J5 {5 e8 }# m4 m7 R: C0 G2 l# Z" H
第70-78行代码:
5 A+ E5 ^2 j) m. Z' q+ ^, r3 W/ r; D+ O: Y$ |- u
<!–{if !IS_ROBOT}–>
7 ]5 k' ~) j9 ~+ u0 W" B                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>
) x" C5 y+ |, ^+ E9 }                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>
) g+ b- E. x$ }. U% W$ W                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>. b0 u4 L0 {5 ?* Y: f6 P: c
                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–>
- O6 x" j! f$ m. G/ f                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>
6 L/ b; J3 p+ u                                        <!–{/loop}–>6 Z" n1 ~  W* j. i7 L. Z. `
                                </div>
! `  T& U' s1 m$ S0 z                        <!–{/if}–>; x' Z+ ^( m# A; U& h) o
, \" ?) n, K3 {$ J0 @) M% h7 {, o
代码解释:此处是拓展色的切换的菜单& Z0 N* ]( x, z1 ^
备注:如里不需要可以删除$ P" g9 D. O& m

! r7 r. [% d, C1 ~# ~9 f4 L第80-96行代码:
" C$ N; Q# `/ d$ K; t  Z) W% h5 u0 U
<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>8 G! v! z- n) d5 S) O$ T: \
                                        <!–{if $_G[‘uid’]}–>
4 {1 c% i8 @9 c2 A2 O                                        <ul>
2 a$ ~/ @. S- {) `. n0 y( _- y                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–>  ^% x, [; L6 w; a5 i" e* j
                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>% X9 h0 w7 u: J! y
                                                                <li>$nav[code]</li>
7 B! I& U5 T. \# F                                                        <!–{/if}–>: w  n1 H4 |4 G8 h( k% ^# p
                                                <!–{/loop}–>. T7 v$ T: p9 c$ O9 u1 b; a
                                        </ul>
3 r' [$ x. H5 q# c                                        <!–{else}–>: N; \& D. r! J) U
                                                <div class=”ptm pbw hm”>
0 M0 i7 F2 Y7 b& M+ W$ ^                                                        {lang my_nav_login}
+ x2 l& T0 I0 y                                                </div>
- q- A3 E1 p+ n                                        <!–{/if}–>
7 P5 g% h! S& J* u                                </div>2 w& G& M+ [! z3 X+ w
                <!–{/if}–>
2 a/ \3 Z8 O* x! s. I/ v. M4 \
+ o/ z9 m: z$ h代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈- F% \& B0 \1 g' c; p/ c. `' a
备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!
# m- K& k5 Q& V) G( v# d) V
, Y% v( t( K# \7 {第97行代码:
8 |  k' u0 o& ^# b. q- V6 a- ^* N
, ~; E! B5 |1 m$ @  M' `0 t3 `<!–{ad/headerbanner/wp a_h}–>
# z" @. q8 Q9 f' ~9 O5 \9 y# D+ _& T! P4 {
代码解释:头部的广告代码,7 ^% n  _9 v% {' {# q' ?
备注:可以在后台=》运营=站内广告添加第98-184行代码:
7 u5 R; P# s2 L+ Y" x# L从<div id=”hd”>到 </div><!–{/if}–>7 u  Y! l/ m6 ?4 i" a; _
代码解释:头部的核心文件; k. z+ n$ `5 _  W7 g& r/ h9 z
备注:下面是头部核心的DIV指引
& E8 O. ?0 Q: B" S5 N* i5 _  N( z<div id=”hd”>
) ^( n# ]% J# f<div class=”wp”>2 E3 ~. v0 @2 g: \  q  t
<div class=”hdc cl”>" d& \" c9 J3 B& }1 |$ Y3 G
<h2>logo</h2>———————————->logo
  a' G: i; p  d* X( T% S; G5 ^( E                 <div id=”um”>) j. J9 @+ W7 l' N2 C- k& Z
<div class=”avt y”>头像</div>—————————–头像: m" [4 w8 m7 t
                       <p>
5 G& Q8 |+ s5 u<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1; G9 q3 ?- a$ V' ?6 T% z
                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点2
, D3 i3 \2 H1 }1 o7 [个人信息—————————————->个人信息- V5 m$ `0 e3 Z5 a  @: Q
</p>, a! m6 e9 V# H5 F3 [, ^. X! f( V
<p>  @7 P* y, N" V3 z7 J  m
<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点3
" j: G! j; h2 `% [# h5 L个人信息—————————————->个人信息9 c$ q# `% y# u3 F/ V6 O/ G' E5 }
</p>
, X8 Q- G# r2 m+ y- c6 f$ \</div>
8 E: o' J& F  `<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>
* y6 P% l# [0 Y5 u- y- X<div id=”nv”>8 X0 R3 B8 s; b
<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航/ e* D$ C9 y1 d1 s. M' D
                <ul>3 a, f8 h5 l5 G. ^8 j, y7 r
<li>栏目导航</li>———————————>栏目导航8 ?) _" X, d  L# c* r/ I! A
                 </ul>; ], s# N! c4 I( A% V( @5 c
</div>
; R+ O/ t+ K; s<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>
/ \) [+ d4 S8 I8 @% p, C, \* o二级导航菜单样式——————————————————>二级导航菜单样式
/ ]+ g4 H6 |/ p</ul>2 R6 ~! Y' X+ f& q5 R8 S
< div id=”mu” class=”cl”>* {3 F: T# e% l0 N+ y
二级导航横排>————->二级导航横排样式
% w' J7 P8 A% f  s8 [. [( ]              </div># i% c0 R! o* d
<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)
* B% |7 I/ S- I9 I6 L<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>
7 y; F( @/ ^  q</div><!–{hook/global_header}–>插件嵌入点
9 k4 Z+ z4 t3 \/ Q( n+ y) i* s: L/ e+ u- v5 @* {
总结:大家在修改的时候他的每个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 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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

本版积分规则

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