坏蛋网络

 找回密码
 立即注册

微信登录

只需一步,快速开始

手机动态码快速登录

手机号快速注册登录

搜索

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

[复制链接]
坏蛋网络官方 发表于 2020-1-20 03:01:00 来自手机 | 显示全部楼层 |阅读模式
很多站长在使用DZ的时候,很想修改(header)头部文件,却无从下手,今天我就从文件第一行到最后一行来给大家解剖一下此文件,熟悉的站长都应该知道,Dx的模板制作无不是三个部分,头部(hd)、主体(wp)、底部(ft),这三个部分就是制作模板的关键,然而其中三个部分个人觉得最难的还是主体部分,今天讲下头部文件代码,因为是代码教程,有些代码太长,没必要粘贴过来!我会尽量的写详细点,后须我会将一些常用 的模板文件进行解剖!在这里希望大家支持一下!随便AD下!
. L: e$ N, R. Z. C3 s+ Z. v* I4 [" C6 V
header.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!3 V; d. I: l* g! e2 ^
0 [4 A7 C* B: L* ~: D
第1行代码:! Q8 V# g6 J1 i2 ?' u5 N5 b# C& y
<!–{subtemplate common/header_common}–>$ o8 B6 i5 B( {. K, V9 T7 d
代码解释:用于调用common文件下的header_common.html文件,
& g& W2 w0 z. I/ Z/ J" m备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。
1 C* L4 |6 }- K8 q: P# h( F( H3 O4 d/ t  z% B
第2-29行代码:7 C/ m% M+ ~2 e$ B2 w
从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾
) N/ J/ W/ ?" n, I3 O- n! s代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!
0 l' c5 Z# F5 ~# S2 Z/ l备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写6 [& b/ X2 M# i
! R  X3 d/ c( _# T3 M3 q
第30-186行代码:3 z/ r* ^! a+ ]! N
从<body>处开始到此文件的最下方
9 H. y. I* x3 K( @代码解释:这是首部文件的核心9 G2 E0 C0 O) Z
备注:在修改时请注间要提前备份文件
  ~* G. g9 x3 N# m  |! i5 X6 H+ p# E3 h. H
第32-44行代码:
; f) }$ h7 \2 _, u' F% Z从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾
/ i! G) ]6 {& G代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,4 }1 J4 b. u2 H! B5 A" Z( Z
备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!
! k7 K  U" g  u' o0 D0 i2 d) K: V. a6 z4 |4 r* I( Y
第32-44行代码:
+ D* x; S3 ^* t: e从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>% x$ t7 \" z" E0 h# `. g. y
代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>
+ ?6 ]  U& |+ Z0 ]+ t- n备注:在后台=》界面=》顶部导航。可以设置
( T, `/ A3 @( r. k2 k' d
0 O* Q6 g$ Y0 o" a, ]1 ^第70-78行代码:. P0 D. C: V6 [7 \+ o" Y/ p

) ^5 v+ @/ ]# n$ d) L( m, V' r<!–{if !IS_ROBOT}–>2 X) \# Z' M% y. P. O
                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>
2 t$ z5 R4 Q+ ~/ L' J1 H1 G- q2 [' \                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>6 J7 N# r" M& s
                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>
* r. n/ S! ?9 Y                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–>
6 [: ?- B7 [8 d0 r                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>' F1 M; m$ F2 U, Q) Z7 b( R! l
                                        <!–{/loop}–>0 [5 H$ h* `' F7 C: m$ c: J
                                </div>
9 w; F4 L0 B7 w+ v$ D5 t! ]& _                        <!–{/if}–>
! D, H1 ~# x- h9 ~7 p! A$ R) h5 n* @  m; f8 D( R
代码解释:此处是拓展色的切换的菜单
, \2 a( o4 Y% {7 D备注:如里不需要可以删除8 ~; V+ k+ L7 }! o% B& k2 C

" u8 p, Y& L% [3 v( g  e8 R/ c7 ^第80-96行代码:
0 B4 b5 O8 V) A1 C( h6 |) z7 x% a  }) o
<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>
( l7 z+ ^, Y' B& B                                        <!–{if $_G[‘uid’]}–>/ f( Z7 u/ W! l, P- j& g7 v! x  q
                                        <ul>
6 E7 k1 `2 x' @6 f                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–>& s, Q# j. r) E% p. e$ |$ J
                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>, d) e, g. x- C* r: s+ f; s
                                                                <li>$nav[code]</li>; f5 b- ?( s. ~0 n
                                                        <!–{/if}–>
" u% p) [3 p. k' @4 H+ N( p                                                <!–{/loop}–>
. z, c0 w4 X- y0 \                                        </ul>
4 s- G0 t+ F$ K) I. ^, l                                        <!–{else}–>; _) B) M9 K% r1 u+ Q( o$ E# q- o
                                                <div class=”ptm pbw hm”>
& U% m- T' T: d' e, h0 E, u: n                                                        {lang my_nav_login}7 e% [3 A5 o3 H' @* A- `& B3 Y
                                                </div>
' I& ^- ?9 }# a) S                                        <!–{/if}–>- I- d: ^! i3 l7 h
                                </div>5 \7 @$ I$ e$ [: ?  r4 [/ _
                <!–{/if}–>8 m9 K6 a; V+ f4 j% N4 ^

; y) h' O0 s0 W1 N2 l代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈
9 S% D& m- I: Z0 l6 i# w+ _备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!( X  Y! G( G: o$ l+ g9 Q
; N* {1 V* y  u, A
第97行代码:
/ s2 B* j' T$ `3 u1 a' h5 j# N+ I" ?- q0 ~
<!–{ad/headerbanner/wp a_h}–>1 r/ ^4 v( n( a; H! `2 x
* J7 Q4 ^" g0 R+ [: e$ g
代码解释:头部的广告代码,% ^7 J* K0 ^3 V' M  S# y7 N0 c' l
备注:可以在后台=》运营=站内广告添加第98-184行代码:; t4 E( ]# D/ \4 A9 t9 v
从<div id=”hd”>到 </div><!–{/if}–>6 N- l; }3 {# U8 W* I& [/ z
代码解释:头部的核心文件: W/ b4 e% }  a0 y
备注:下面是头部核心的DIV指引
' T6 L- H% I: e0 l* _: K, I" @<div id=”hd”>
# `1 M) N, V$ j<div class=”wp”>! h- A' z+ y, E3 i: `) G3 E, z$ y
<div class=”hdc cl”>
) W  I; R$ w: K% {% B# _# U% `. S<h2>logo</h2>———————————->logo
+ q% j% Y2 f2 ^9 x                 <div id=”um”>
) a$ C: h' W! y<div class=”avt y”>头像</div>—————————–头像
: g* \6 L- S/ j8 u  Y: D. y5 M                       <p>
/ J9 i+ h8 h" w1 T<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1
) `4 w" g" d: g" A5 f                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点27 u  d0 W" A/ r' p3 o- ?8 N/ h
个人信息—————————————->个人信息
, k+ }' f7 b- ^</p>2 n( i9 |! U" y
<p>
" ~6 A2 T+ j( l" S. c1 T; C3 s, u<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点3
4 @% ?$ ]% ]( P5 J# n2 t* k" W( y! f个人信息—————————————->个人信息
6 O1 X, v. z0 `  m6 u3 G' X) |</p>
% O  X% V, p( u. L4 v1 M  n4 j# ^</div>4 Q# l3 ^3 G$ y5 l$ R7 P
<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>  H; M* [: F% m+ B
<div id=”nv”>  T% G+ ?( _2 _7 V# `
<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航
, I, M. t8 v: w$ `6 N; p                <ul>9 J+ m! k  f! \7 Z  X2 `# [6 K
<li>栏目导航</li>———————————>栏目导航
# _3 E/ q! j# [. B                 </ul>
9 X" r+ e7 f3 o$ Y$ N+ G</div>
% c1 k1 J' l/ P8 Q% F8 e<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>) Q) q( i3 m/ O# M6 g8 p' z$ F% \
二级导航菜单样式——————————————————>二级导航菜单样式# n/ f5 X3 C% K, F- U9 W
</ul>6 h3 Q, ^' l# T2 y7 Y6 A
< div id=”mu” class=”cl”>* u9 g, o8 N2 [2 L
二级导航横排>————->二级导航横排样式' k2 L& [( G0 `- L1 B% I8 _" m' m& p
              </div>
0 {2 Z* q2 U6 p( v8 F. J<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)
& n) d$ i" q) l9 f, j<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>
- g- p: i" p$ ]. C8 {</div><!–{hook/global_header}–>插件嵌入点; W- }7 F( l/ k

/ M" i! k! v# Y8 m) 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 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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