坏蛋网络

 找回密码
 立即注册

微信登录

只需一步,快速开始

手机动态码快速登录

手机号快速注册登录

搜索

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

[复制链接]
坏蛋网络官方 发表于 2020-1-20 03:01:00 来自手机 | 显示全部楼层 |阅读模式
很多站长在使用DZ的时候,很想修改(header)头部文件,却无从下手,今天我就从文件第一行到最后一行来给大家解剖一下此文件,熟悉的站长都应该知道,Dx的模板制作无不是三个部分,头部(hd)、主体(wp)、底部(ft),这三个部分就是制作模板的关键,然而其中三个部分个人觉得最难的还是主体部分,今天讲下头部文件代码,因为是代码教程,有些代码太长,没必要粘贴过来!我会尽量的写详细点,后须我会将一些常用 的模板文件进行解剖!在这里希望大家支持一下!随便AD下!; l7 M: P: P. F* B) P9 N( a

4 x( Q0 D) d$ B) vheader.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!. Q. u$ ?- d, n/ P& I
5 B9 ~, a4 T! o) G* T) k
第1行代码:& c1 Q: z0 ~* M+ Q$ f: z
<!–{subtemplate common/header_common}–>+ e1 ?6 R) M/ Y7 k
代码解释:用于调用common文件下的header_common.html文件,
0 L% M" V# d* {1 j  F备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。8 h" f" E$ c0 U! X
; O) s* Y6 i2 C4 r% @# x" D
第2-29行代码:
6 H; r  F+ O2 G从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾3 y) a( r/ Q" r+ `$ I2 ~
代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!
  h. K0 G  u3 q0 X: [) F# S备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写! U: o7 b, L  o- |9 o) q

9 ^) W3 R6 x. W3 Z9 b; }/ Y8 I第30-186行代码:4 @/ ~% _- U) L" E* d
从<body>处开始到此文件的最下方- `1 m$ x5 J/ t" u9 j  Y  F
代码解释:这是首部文件的核心
3 r% j6 d& Z6 Z; X6 S备注:在修改时请注间要提前备份文件+ n( W6 w/ m! P% s+ X* `! c
8 Y& B0 Q' j6 b* Z3 _9 z  n
第32-44行代码:4 m2 N0 D+ ~7 M$ L2 X
从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾
5 [: a) W1 |$ K6 X( F代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,
6 p& w. V& x8 q备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!
' P0 h4 M5 ^5 U. p) D8 \
# Z3 z/ y0 z, O, E0 o第32-44行代码:
  a& [+ F; T! B: A从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>
- q& n7 x: Z* `/ s" _1 O: z# }2 {* m代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>3 d3 P- a# O6 L' Q
备注:在后台=》界面=》顶部导航。可以设置
3 P2 m# U# P- x8 D/ `) B, {# O; k% @2 \5 q( ^1 R/ q$ A! Y
第70-78行代码:
/ Z0 T* u9 l$ Y* N1 f
4 e# T) _. x( S8 g4 n<!–{if !IS_ROBOT}–>
8 D: U0 I. t; ^& v                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>( D6 o! f+ `$ e9 o& {$ C
                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>' ~) `) t6 @* E# E
                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>% h$ A% w% `- @7 ]" G2 z
                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–>  J7 t4 l2 b# j7 ]3 @: v' h
                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>
5 W0 T# v% A# ~7 \* F- f) M$ @                                        <!–{/loop}–>
2 u1 F$ n  G+ P9 e3 ?, W* T                                </div>/ ?7 f4 O6 N9 k  o1 {+ P2 k
                        <!–{/if}–>5 l( S& ?, ^! Y9 O, D* ?
9 L, e* S, ^  s5 `% `# q4 ?
代码解释:此处是拓展色的切换的菜单
3 K' k  k& K9 m* o6 [备注:如里不需要可以删除5 O; P( ^/ P. E2 x. w
( d7 N- S& K1 n; E+ A
第80-96行代码:
5 }7 |; i  N, J: V+ z
! |( \4 o5 x( f& o  A# P/ U<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>
# H! s7 B6 q, `0 t# k                                        <!–{if $_G[‘uid’]}–>
8 S, C  M4 j% v- S4 B9 U                                        <ul>
+ e8 q- p6 x+ F; x3 F  @  Y0 k                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–>
0 [0 J0 D; v, S- T7 m                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>6 F6 ?# Y2 ~7 H$ K8 _# i
                                                                <li>$nav[code]</li>, w0 D+ k/ C7 b/ q2 K& k4 F
                                                        <!–{/if}–>
1 Z1 d5 t2 \4 [7 y0 @1 r2 y                                                <!–{/loop}–>
$ n8 D3 c* o" R2 y; j# }5 P4 U2 P% P                                        </ul>
, h* W3 P1 f& ~; V3 w' |                                        <!–{else}–>
; @: K% B& a+ [4 E$ @* |  M                                                <div class=”ptm pbw hm”>) \; J; ], @8 X$ j! x
                                                        {lang my_nav_login}
  ?6 g8 w0 ]) z                                                </div>& F# L( h! i, E5 I
                                        <!–{/if}–>3 W7 r. ~" z7 @0 v' Q0 d
                                </div>" `! ^  @; U* g& ~- R2 M# l' J
                <!–{/if}–>/ p( K; y; q* k" u
$ d5 C% `( [8 v# i
代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈' g/ F2 g3 k2 p: E6 g3 _
备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!
' N5 H6 b( P' V6 v. c! ]# L* u- R8 C5 a
第97行代码:
* |5 G: K- B: F% k/ Y1 I7 N3 V9 E$ [+ T
<!–{ad/headerbanner/wp a_h}–>
6 @% s, }2 X7 X
# r! [, `. z5 I& V! X7 t代码解释:头部的广告代码,- l* I& H4 X7 F: K
备注:可以在后台=》运营=站内广告添加第98-184行代码:# f- i/ V3 D2 `: a2 W' m
从<div id=”hd”>到 </div><!–{/if}–>
& a$ i1 D' M1 A, m7 I4 G代码解释:头部的核心文件
( L0 \; Q& p; f+ U! z4 _% E备注:下面是头部核心的DIV指引
5 Y; \: O7 v1 }<div id=”hd”>
( P7 _0 ?4 A7 f, P: Y<div class=”wp”>2 T9 V0 v  |8 E: a
<div class=”hdc cl”>
+ n0 _- y3 Q, Q( d! V<h2>logo</h2>———————————->logo( t, M' ]* b/ R1 P, T
                 <div id=”um”>
! n% l5 ]' L( l+ {4 E: r! Q<div class=”avt y”>头像</div>—————————–头像
6 Y# x9 q/ w- c& o5 b                       <p>
$ R8 F/ B3 k8 M! j+ X<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1+ A: f& Z$ g" R& U* H" ]; c
                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点2
; G" M! ]  e9 K个人信息—————————————->个人信息
. z2 }% w2 n2 Q/ `, e" V% e</p>
% X: C* G) W/ z  X: X<p>: D: G7 ?2 X( a8 @/ k. n4 w
<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点3
. [* c7 x# K) u* r- k% U2 {$ o) [个人信息—————————————->个人信息/ V4 d) d# O# @7 A: o
</p>+ P/ r3 c( ~" ]) _" Z1 b( P- w
</div>
1 F# v3 [, I' h1 _- `) J5 Z( k$ ^7 h<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>
: _, M( R+ `+ J( q<div id=”nv”>
5 D0 o3 i, ^; u' ~* D# O<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航5 Z7 T. Q5 D' H1 O/ Y& r0 ]" H' A
                <ul>
+ W+ j& c: L: z1 x<li>栏目导航</li>———————————>栏目导航
) R; h, a. h+ ?) l9 k                 </ul>
8 b$ C( @# |+ D+ D</div>% h/ N+ ~, v  \; E: U
<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>1 ]& s7 f: [' |3 q. n- U4 E) v' j
二级导航菜单样式——————————————————>二级导航菜单样式
4 a3 G9 i& `' U' c- Y. T" ?8 }</ul>
" p' z" F) o6 a/ U5 ]! F( \8 I< div id=”mu” class=”cl”>( s! I; x9 X, A1 F2 j) W
二级导航横排>————->二级导航横排样式0 E1 `8 u' a/ c1 n) ?! H2 u
              </div>8 {+ Y4 q' n  B  [3 V! u9 R
<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)& k9 k7 \3 Y4 }2 T2 z( a0 |
<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>' F' X3 e5 M& I% q2 z3 x
</div><!–{hook/global_header}–>插件嵌入点
3 Y: G3 y* e3 i# }/ F5 J
8 U: L9 m7 p: \, O. L总结:大家在修改的时候他的每个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 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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