坏蛋网络

 找回密码
 立即注册

微信登录

只需一步,快速开始

手机动态码快速登录

手机号快速注册登录

搜索

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

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

' ~  U# p4 L0 r; r1 H' Lheader.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!2 c2 ]" R$ s/ u/ f

7 {! o- \# f7 w, |8 n1 y第1行代码:
$ {4 }# g. T: c% ^<!–{subtemplate common/header_common}–>* r! p9 ^9 H" W, N: A  N
代码解释:用于调用common文件下的header_common.html文件,; J- d7 t5 m( C& _) v
备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。
. u/ j: |5 u2 [% g- Y! J" u% D. i% o" z& M6 s$ ?( P  q
第2-29行代码:
7 i9 T- I  L5 @从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾
7 h2 X* C# Z# }代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!
9 f) ^) u6 L# T7 R2 X6 `8 i* z4 s备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写
  r. w8 l7 X! W- X& }
- O8 @0 O) o% A- f, P第30-186行代码:8 N! ?& O9 b3 y- ^1 D
从<body>处开始到此文件的最下方8 }, c6 A* r2 C' ~: n" o) A0 u
代码解释:这是首部文件的核心
* z4 n& j) Q  }! p# X3 y备注:在修改时请注间要提前备份文件
) E& H: ]7 y! n, v
: c. [' J7 m1 u  v+ U! v$ t第32-44行代码:4 _( ]  M0 y4 D1 e/ k
从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾+ Y4 I1 D9 `& i: I! U( ?
代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,
7 R5 B" o$ [6 S2 l& _" w备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!+ _& [9 p8 G& Z) q" d' S
* ?7 q) w3 I! e, K
第32-44行代码:: t% J; U7 V; r" A
从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>, y2 b9 t4 g1 f- h
代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>
1 u; G& M& ^" y  Z% L: u备注:在后台=》界面=》顶部导航。可以设置. Q- @- ^/ R) y$ q/ h

$ e; X; d+ o: n- X2 p+ o' H4 W第70-78行代码:' U* Q3 {+ {6 o, O8 }6 M

& K4 }) y+ Z* p* \<!–{if !IS_ROBOT}–>
3 r; c5 i, C/ A8 e8 o* B! k* Q( A                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>
! i) c/ x" b+ U+ m$ Y' ]6 m6 ]% I                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>
. L3 `! l6 J$ n# z: _5 j  |5 u; X+ _* Z                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>0 v6 v" h  @/ f* |6 U. m8 P( I
                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–>
; |' E7 g, {4 U/ {5 I0 |9 ]1 s                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>
+ D6 f. ~9 z/ x: N$ G                                        <!–{/loop}–>$ n' ]0 l# @6 B2 A/ r) s
                                </div>
, b# g; v1 c% u" m. G  C8 ?( g                        <!–{/if}–>" T: R- s; ^. t

. M6 i5 B% v  c代码解释:此处是拓展色的切换的菜单1 I' u7 i; c) M" \  c
备注:如里不需要可以删除* J( x  x2 \( e
+ ~6 ~0 e# K3 Z) ?
第80-96行代码:
) h; X- y$ [1 W, H# E3 U) Q) Q9 [. }8 g" e# @  T, O1 h; M! S4 f
<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>0 K9 ^! o4 b* f) R7 @4 c
                                        <!–{if $_G[‘uid’]}–>, t4 L* z9 \) ~5 G  v( N
                                        <ul>
7 o+ n/ i0 H3 f# y6 c& Q3 D                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–># F1 I7 I/ }; W2 U
                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>
/ C$ a( o7 ^3 f$ B# ]8 x                                                                <li>$nav[code]</li>
/ D+ t  N2 I, O$ Q6 }, k% g& H8 [) B                                                        <!–{/if}–>3 v" j4 |; e5 V
                                                <!–{/loop}–>
' W/ n' C' [+ s7 c0 I3 s" e                                        </ul>
) O1 m4 J% Q% C1 l9 X# S; e8 E8 O                                        <!–{else}–>" r( o* H1 e# O/ s
                                                <div class=”ptm pbw hm”>
6 ^, b9 ^4 D0 s9 G$ e) O$ J                                                        {lang my_nav_login}
' b& ^6 T1 u* ~' D# T                                                </div>& }; }% ]/ b" A6 @: R0 F" ?
                                        <!–{/if}–>
5 p3 \. M. e; F                                </div>0 \! f% v8 z: s3 j* {; j
                <!–{/if}–>
# O1 ^+ @7 s, A( p# Z, q0 d- I# d% w* p) e9 l- v' s: `
代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈9 J* b5 L7 F4 j! d% e1 {! R' s8 \) m" e
备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!
) x5 E, n+ t5 A- r
8 O- h9 `. I+ ~; ?% Z第97行代码:+ u: ~) C) w% ~3 A

9 K% b8 h( _5 }, k, [" I4 q<!–{ad/headerbanner/wp a_h}–># l3 d$ `* z3 I! C  ~- x

! N. {5 X1 t; S  H- D5 H代码解释:头部的广告代码,) ]' p3 R+ x  I$ d3 y! e, n
备注:可以在后台=》运营=站内广告添加第98-184行代码:- f/ z4 J) B' B5 y& a; y6 [6 y
从<div id=”hd”>到 </div><!–{/if}–>
" n9 u2 g2 X" d) T7 G4 w) x代码解释:头部的核心文件' y- A  r0 T% r" n1 ~! X
备注:下面是头部核心的DIV指引
1 @* b- R! I5 l% e6 _$ B. |1 N<div id=”hd”>! c% A: w; k: z
<div class=”wp”>
  V" M' U, V! U* L- T) a0 |" k' W<div class=”hdc cl”>9 t" V$ D/ v! }- e! X0 f8 n
<h2>logo</h2>———————————->logo
- y, D9 w# A. _5 L) }$ C7 }                 <div id=”um”>
% e9 F6 |! G5 o1 L& x/ y5 }/ l<div class=”avt y”>头像</div>—————————–头像5 g1 q$ c* F* ?! ^
                       <p>, E9 Q0 I% N7 K1 A! E6 B
<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1
3 U  ~* L3 Y$ W6 I/ g                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点2% V) y& M5 Z  T* m8 i
个人信息—————————————->个人信息+ W6 O6 @5 S3 }: S% a7 c
</p>
7 E8 S5 R: [! }7 ^, q; ^2 N<p>$ n; w2 A  k: K( ^
<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点3
# d- }0 ~2 u+ f. ?4 q. h个人信息—————————————->个人信息
& u* m2 ?/ y. a' x$ C; u9 D1 W0 Q</p>
$ s! ^8 q7 N+ ~: d8 e! f</div>
3 Q% ]0 y2 O" V& O; d<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>
! x- n3 D1 z" E4 W3 i<div id=”nv”>0 K( z! |+ m- q& B+ P9 k
<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航0 y+ ^$ o, ~; C: A6 [) Y
                <ul>/ Z5 M* }+ {# `% V$ ^6 T2 y
<li>栏目导航</li>———————————>栏目导航
6 M* s4 r0 x6 Z7 t' @( ?                 </ul>5 s4 z5 V. P9 z; w
</div>
. T/ `# Y8 Y1 B1 v+ {0 F$ p<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>
: q2 H- a5 R0 }) C3 T二级导航菜单样式——————————————————>二级导航菜单样式( y, {) u* G# N$ ~
</ul>
$ k% {( @  f+ p1 T5 i. r; d, q< div id=”mu” class=”cl”>
. c) l! g* G6 ~! Z) s2 u二级导航横排>————->二级导航横排样式4 o" O$ {/ v$ \8 t* g) ]
              </div>
" ~* ]" d1 N: T% j<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)
" u5 ?3 q6 D# d4 {1 Z: `, I, D<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>
' a& D* `% \( Y9 O</div><!–{hook/global_header}–>插件嵌入点4 ]; G3 |4 V5 y3 x, |

( W; d, z- s. [3 `! g# Z总结:大家在修改的时候他的每个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 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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