坏蛋网络

 找回密码
 立即注册

微信登录

只需一步,快速开始

手机动态码快速登录

手机号快速注册登录

搜索

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

[复制链接]
坏蛋网络官方 发表于 2020-1-20 03:01:00 来自手机 | 显示全部楼层 |阅读模式
很多站长在使用DZ的时候,很想修改(header)头部文件,却无从下手,今天我就从文件第一行到最后一行来给大家解剖一下此文件,熟悉的站长都应该知道,Dx的模板制作无不是三个部分,头部(hd)、主体(wp)、底部(ft),这三个部分就是制作模板的关键,然而其中三个部分个人觉得最难的还是主体部分,今天讲下头部文件代码,因为是代码教程,有些代码太长,没必要粘贴过来!我会尽量的写详细点,后须我会将一些常用 的模板文件进行解剖!在这里希望大家支持一下!随便AD下!4 [1 @1 u# _2 r2 a
( Q  U! }5 V/ C( `
header.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!
; Z& s" u0 ?7 Z' r) f7 Z4 @3 j) F7 D" U5 f- _8 g& O5 W
第1行代码:
+ Z8 ]5 N4 U# k$ E* n9 Q<!–{subtemplate common/header_common}–>" D6 i& l" ?& `! X$ N3 ~9 Q
代码解释:用于调用common文件下的header_common.html文件,' ?  t4 {$ s, R1 Q0 c6 V8 c
备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。
3 C% U, C; K: F2 I+ A
1 ?% O- t8 C# t! V% J+ ?' J第2-29行代码:
8 y9 ]# V4 S% }) J从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾2 }3 i3 |, p9 B# b
代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!- ?4 P( ]/ k4 [0 z, B
备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写
8 i! _" |# J5 J3 J" ]; f8 N6 |8 @" r' i, w" r" o  S8 `; ?
第30-186行代码:% x1 r) K( H- s+ R/ q
从<body>处开始到此文件的最下方
0 p2 E: ^  C! J( j) ]; r代码解释:这是首部文件的核心: g6 U; ?0 k, {2 J: ]
备注:在修改时请注间要提前备份文件
: j6 @5 G1 s" S+ k8 l+ s$ z- }
4 J' s, K% p) m' P" x( W第32-44行代码:
3 ~! J; d5 v# k3 \% a) m从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾: m/ @- Y* _$ p4 k8 w" J: F  g
代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,
/ a" J) _8 A  R' t备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!
+ W& Y8 S" k! F' C9 [
6 u0 _: N# _: w, Z+ h& ~第32-44行代码:8 X* q% _5 y3 y+ t$ p2 g
从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>) c, \) V# n1 r. E4 \% P
代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>
$ I; }- G$ a% K  S8 j* ?! d备注:在后台=》界面=》顶部导航。可以设置- [! F+ Z: e% s' ^5 T

3 z/ l& k( E, q2 U6 c第70-78行代码:8 x: l0 M0 x. }2 w# ?$ W

( ?8 R3 i" U: d- e6 u<!–{if !IS_ROBOT}–>5 F8 Q- K( E. C2 S
                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>
* X; V& O5 n; P# G                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>; S% j- j& S0 _- x( U( U% \
                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>- l5 S( I: p/ ]$ S! d3 `) N! k5 x
                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–>
& K& o. E4 T% D! h2 v0 N                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>
, o1 ^' T0 z1 {1 o/ I5 a# {6 p                                        <!–{/loop}–>( [  a2 K) E  L* I; g, `' M- T
                                </div>
0 z' g/ u  @/ i9 g5 p: w                        <!–{/if}–>
! C" I% j+ U, e8 I, Y0 w( K
! X( C* L& P" Q2 w% p代码解释:此处是拓展色的切换的菜单5 d: E: m, L8 Z: N8 z
备注:如里不需要可以删除! w0 h# a4 n. V

8 p) `( Z, L; I2 l/ N3 v% D第80-96行代码:
. a) p. k+ B) z# h- R( p/ f# H7 o1 t& a+ \+ H# N* ]
<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>
% E1 F8 P4 f$ A% V) n4 S1 l( c" D                                        <!–{if $_G[‘uid’]}–>
' V5 H( z, K) l5 o, C                                        <ul>& b8 a, N! f% h! }; a( K1 Q0 N
                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–>' g- {9 H1 c$ `7 j. E4 W$ G
                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>9 q, A0 a+ c( g2 ~) T
                                                                <li>$nav[code]</li>" H. i4 e) G7 p* {
                                                        <!–{/if}–>
* d* U" h% b( v9 [- w$ Y                                                <!–{/loop}–>
: c# e1 j, F' ^                                        </ul>
" ^: R# a3 U+ E0 U) \( c" X3 ?" B                                        <!–{else}–>9 R9 q# M& g. o
                                                <div class=”ptm pbw hm”># E% B: J$ z* |
                                                        {lang my_nav_login}
% `9 N7 H, H3 l% z3 N2 z                                                </div>
/ [* V# w8 a- }8 y6 Q                                        <!–{/if}–>9 R3 U: ~% X; A* K+ W- E0 S
                                </div>
- B3 o  `% P; p2 D* r& `                <!–{/if}–>
" U) c, f$ `7 J$ t! E+ e3 }) f- q4 J7 j9 q& t
代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈7 {6 c# s7 J; S" C# I4 w' L' Q
备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!  l# T* ?' e/ {& J

/ A  g* h. ~* \第97行代码:" S9 U3 k& A6 J

! q! j$ ]0 I2 M% I/ z- W; Q+ c<!–{ad/headerbanner/wp a_h}–>6 W2 n5 y. A0 c- L

* W% G' b2 J4 d- C+ _5 \8 Y代码解释:头部的广告代码,0 d$ I, j, B1 ^) k6 c$ v
备注:可以在后台=》运营=站内广告添加第98-184行代码:
7 j( H" w3 g7 h) L从<div id=”hd”>到 </div><!–{/if}–>$ k! d- P+ v6 S3 ~
代码解释:头部的核心文件0 O" ?" [, N/ J0 e# E9 h
备注:下面是头部核心的DIV指引
: n4 u1 ]: W8 }<div id=”hd”>
0 B; h* v0 N' q, u  f, d( \<div class=”wp”>
! O" Q! d* W6 D& F<div class=”hdc cl”>" C% g- O, P8 B+ i% _1 ]7 b0 A
<h2>logo</h2>———————————->logo' F/ V5 w5 S+ }5 s3 F; \( K
                 <div id=”um”>) _( ]2 l: ]2 U
<div class=”avt y”>头像</div>—————————–头像5 X0 @4 \$ [, }+ K! h4 p, s
                       <p>( ]4 m/ ^  E* o2 n: n2 T" \
<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1
# E/ ]* T( p' ]) b2 R                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点2
+ P# i- z. e4 H1 |. c4 v个人信息—————————————->个人信息
8 R# ]: W* q+ h1 _</p>
6 u; ^" h! Y6 i0 O0 K( v' `<p>, P: p( @0 z) m7 {* v- H: x6 `
<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点3
; @3 Y5 O& f) S1 ?5 W个人信息—————————————->个人信息, M) F; g7 }0 ?  |; T
</p># o7 A, T- a, m3 X% i: _& s
</div>
' P' J: w2 T0 r<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>" k% ?) s6 _& g# u3 p, |- o) F
<div id=”nv”>/ w' y5 X7 g+ T/ Y$ `) ?. g8 _4 S
<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航
* k# _' m- p9 g- |! ?+ {                <ul>
% |6 J! Y% P9 l) p! [7 q6 o<li>栏目导航</li>———————————>栏目导航
" }( C( H5 N$ }+ R5 P                 </ul>
7 }' G7 Q  l8 O</div>
" ~2 Q, C& n# I+ p# l1 V0 p) D<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>0 }. h" v) v2 L( c* r& c
二级导航菜单样式——————————————————>二级导航菜单样式
$ X# a3 U) \+ N9 s2 Y( z- Y! S</ul>( J0 s3 J$ i% k7 h0 l; c
< div id=”mu” class=”cl”>9 I, z9 o" D# Z0 T/ F$ u0 e/ T4 q
二级导航横排>————->二级导航横排样式0 Z' l6 W( m" x  ?
              </div>
: W8 E$ H, h4 Y2 [+ {5 v* c<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)6 g" Z9 r: A; k8 A* z8 P
<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>5 H, a% L/ A# d; k( y' T
</div><!–{hook/global_header}–>插件嵌入点
7 t' ~; i  v  O4 S' n% U% `# Q! M  ^) r8 x7 X7 w
总结:大家在修改的时候他的每个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 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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