坏蛋网络

 找回密码
 立即注册

微信登录

只需一步,快速开始

手机动态码快速登录

手机号快速注册登录

搜索

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

[复制链接]
坏蛋网络官方 发表于 2020-1-20 03:01:00 来自手机 | 显示全部楼层 |阅读模式
很多站长在使用DZ的时候,很想修改(header)头部文件,却无从下手,今天我就从文件第一行到最后一行来给大家解剖一下此文件,熟悉的站长都应该知道,Dx的模板制作无不是三个部分,头部(hd)、主体(wp)、底部(ft),这三个部分就是制作模板的关键,然而其中三个部分个人觉得最难的还是主体部分,今天讲下头部文件代码,因为是代码教程,有些代码太长,没必要粘贴过来!我会尽量的写详细点,后须我会将一些常用 的模板文件进行解剖!在这里希望大家支持一下!随便AD下!
- \3 [1 Q$ N( r4 x+ f
. ]" W% p6 q- _& K$ Theader.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!
/ S- z" H1 B8 D  e4 p6 b2 y- H* F& [. c2 T
第1行代码:
! b# B! d8 o$ @2 Q5 L<!–{subtemplate common/header_common}–>
! R2 A3 x2 H, V* q0 {, ?5 m代码解释:用于调用common文件下的header_common.html文件,% X9 R) O, W- H+ J7 D+ H
备注:<!–{subtemplate}–>与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需要以<!–{subtemplate 模板名称}–>的方式引入进来。
- O# _8 x& c; a" g1 p
+ |7 V, j  o5 g% |第2-29行代码:; D& l$ _9 I- v$ X7 C
从<meta name=”application-name” content=”$_G[‘setting’][‘bbname’]” />开始到以</head>结尾! q$ W* y$ s7 O- B
代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!1 Q5 G5 x4 h8 K) W2 ~6 R
备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写
$ ]& e3 d! _7 i6 _  \
' `) ]( {2 C+ u% p; d! n8 J  N) f" o第30-186行代码:
8 k2 ]/ Q* ^8 B: p) G, T从<body>处开始到此文件的最下方7 q# A2 E# M& @' M1 \
代码解释:这是首部文件的核心# q$ i! b1 i( ^( j% U9 g8 C
备注:在修改时请注间要提前备份文件5 z" i  z; T0 b; [8 ^0 A$ `
1 `  K: P. [7 Z1 o9 Q
第32-44行代码:" ], R3 s+ y' v6 w8 |/ ~5 e
从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb” class=”cl”>结尾
; ]% W' p- X/ A9 q9 w: U代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,& J, H8 e5 ?5 Q- R% G
备注:<div id=”toptb” class=”cl”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!9 Z, o$ p+ C4 Y, `0 s7 C
! v0 Z/ N% B% K. g$ W6 ~" O: |# g5 z
第32-44行代码:
4 p! |% e+ ~# Q# S从代码:<div id=”toptb” class=”cl”>到</div><!–{if !IS_ROBOT}–>
5 D/ w' b1 w4 x8 A- O  \% \! v代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div class=”y”>右处内容</div>,<div class=”z”>左处内容</div>: [% k& d$ x5 M$ m1 |
备注:在后台=》界面=》顶部导航。可以设置
" D+ B! z* q1 D+ R  [& u$ B1 v1 W: {( V5 g) E
第70-78行代码:( T' m  o3 F! ^5 t$ Z

9 n' z2 M3 m% n, F- P<!–{if !IS_ROBOT}–>
9 F6 W, N0 p3 C  B- b6 `                        <!–{if $_G[‘uid’] && !empty($_G[‘style’][‘extstyle’])}–>1 R. P  ?" r  q7 `. }+ G
                                <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>
( c- V) A7 c+ Y; a                                        <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>, b, L/ Q; H% k5 E
                                        <!–{loop $_G[‘style’][‘extstyle’] $extstyle}–># j/ ?. ]' e$ _$ ]; i8 M5 s
                                                <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]’)” title=”$extstyle[1]”><i style=’backgroundextstyle[2]’></i></span>- n( e5 _4 @  [9 A
                                        <!–{/loop}–>4 \& P' v6 o* s4 i# M' J' n7 I6 e+ [$ L
                                </div>
! n+ C' L" d! i                        <!–{/if}–>! m% W7 I6 \3 |. l+ n: c9 ^
- F; ~1 i' J' W9 e) e9 @
代码解释:此处是拓展色的切换的菜单6 u) Q$ }# |: Y" S+ |& B: v: e
备注:如里不需要可以删除+ W3 S7 ?: d3 V
( e+ m8 P* b% R: r4 U$ S
第80-96行代码:3 O) d5 }9 O0 E1 I! A, B

- G0 |' L2 V+ p4 `6 O& K) a<div id=”qmenu_menu” class=”p_pop {if !$_G[‘uid’]}blk{/if}” style=”display: none;”>& c# M! H5 F" u/ Q
                                        <!–{if $_G[‘uid’]}–>; O1 l. E6 B$ b; {8 }' K  l# T4 |
                                        <ul>  V! k$ p$ Q7 x+ x' D# s: @
                                                <!–{loop $_G[‘setting’][‘mynavs’] $nav}–>
! b# l# ?- }/ p5 ^                                                        <!–{if $nav[‘available’] && (!$nav[‘level’] || ($nav[‘level’] == 1 && $_G[‘uid’]) || ($nav[‘level’] == 2 && $_G[‘adminid’] > 0) || ($nav[‘level’] == 3 && $_G[‘adminid’] == 1))}–>
$ x9 m6 Q/ k9 A- W! g, l                                                                <li>$nav[code]</li>
4 V  ~/ v8 \8 @) C4 }" R# t8 N, X+ N                                                        <!–{/if}–>
+ ^0 c8 G; C% q5 k3 x4 c4 o( S" ^                                                <!–{/loop}–>
9 Y8 p1 z0 \+ e/ N' [$ w! s                                        </ul>( z1 Z$ X1 o9 V( B3 `0 R
                                        <!–{else}–>  o* e, o& E& h& j! P- @
                                                <div class=”ptm pbw hm”>3 D# i" U# r$ K
                                                        {lang my_nav_login}3 p5 \4 E- I6 j" S0 L* @9 J
                                                </div>
; D/ ?8 r/ x6 E. |                                        <!–{/if}–>
3 B. N, L6 a/ I+ O1 `7 R0 v" K                                </div>
; \% U. F0 o/ j* Z, C5 M                <!–{/if}–>+ U7 m3 F. D/ L9 M7 q% S

. F, i7 Q4 v+ T& |代码解释:此处是快捷导航弹出的菜单,里面用到了<!–{if $_G[‘uid’]}–>语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈8 v# b" s( q1 ~$ p; J3 V; C' V
备注:<!–{if $_G[‘uid’]}–>语句可以用到很多地方,自己在做模板的时候,可能会用到!
" j2 G7 C2 D: U2 v/ d
: t/ o6 z& W# Z0 l/ S$ u第97行代码:, A3 y3 m/ P# @. U4 C, K5 S

5 |( }3 |' }5 W0 ]" X  l6 ^9 h<!–{ad/headerbanner/wp a_h}–>5 W1 _. |4 t6 w' t  i

& m" `5 a* u, W代码解释:头部的广告代码,
2 D- }, I& A1 |, J0 s备注:可以在后台=》运营=站内广告添加第98-184行代码:: @% B* h/ F* y; l9 T- b
从<div id=”hd”>到 </div><!–{/if}–>$ ~4 V4 E# A# }  n" _' n
代码解释:头部的核心文件
' o/ Z1 R2 n5 j& b备注:下面是头部核心的DIV指引
6 h1 Z1 u3 Q0 h, w) }: ^2 [<div id=”hd”>
& O7 w" y  B: T  x, u# u5 C# |<div class=”wp”>
. y9 u  o4 l! o6 |& H+ k<div class=”hdc cl”>
5 R* l9 y( |( b* T<h2>logo</h2>———————————->logo( t8 W$ Q2 W3 r5 E5 ~! x, ]
                 <div id=”um”>
7 r$ ?& `& n0 F6 {<div class=”avt y”>头像</div>—————————–头像
3 Y* [  U" X& m( v% f: C                       <p>; b- z5 c6 X2 g* [5 r) t
<!–{hook/global_usernav_extra1}–>————————————>插件嵌入点1& H  U$ |4 ?* n1 t: O' J. o% B0 ?8 g
                          <!–{hook/global_usernav_extra2}–>———————————>插件嵌入点2$ N. F+ O2 Q; A$ L+ g3 |% z( u
个人信息—————————————->个人信息% A. {0 f0 ~  e/ Z( b) {
</p>4 f0 g3 u7 J& l5 y
<p>" q. R3 F2 c( A7 ]3 i5 |
<!–{hook/global_usernav_extra3}–>—————————>插件嵌入点3" N8 g3 [! X  `  ]: f+ m+ K
个人信息—————————————->个人信息2 Q" V5 F9 W0 X9 s' E' T7 S6 w  S
</p>5 R0 S6 Y$ R( t( h
</div>
* \+ D) i& r! X! M8 O# {<!–{template member/login_simple}–>—– > 登录框(此处调用member/login_simple.html文件)                         </div>
: m, }5 x" _4 m3 U" h! l<div id=”nv”>
; K1 F* s! _+ Y+ u<a href=”javascript:;” id=”qmenu” >快捷导航</a>————–>快捷导航
2 l0 K2 ^! l8 ?5 i$ ]* ~- g; j                <ul>: f( k2 {' R- B$ o$ `* w6 M: F+ O$ B
<li>栏目导航</li>———————————>栏目导航  t( a3 n1 {' P. t* L
                 </ul>1 G3 `# D2 b( y
</div>
  y' B3 s) {1 h& K0 \2 b9 V<ul class=”p_pop h_pop” id=”plugin_menu” style=”display: none”>& R6 a7 B+ R2 a7 i- G( K
二级导航菜单样式——————————————————>二级导航菜单样式
6 l' n4 f6 f7 J1 W1 b  |</ul>% j  h2 e/ N- ]! I3 p0 S
< div id=”mu” class=”cl”>/ j# r% v4 g$ u" c6 Z
二级导航横排>————->二级导航横排样式, x$ B, v! o3 W+ O
              </div>0 e9 @' B5 \2 a  l: `4 }
<!–{ad/subnavbanner/a_mu}–>————————->头部广告(后台站点广告处可以添加)$ P% \. E/ U' J
<!–{subtemplate common/pubsearchform}–>——–>搜索(此处调用common/pubsearchform文件)                   </div>
' O: o8 I. Y, C</div><!–{hook/global_header}–>插件嵌入点
' d& h8 p( P2 J+ F6 i5 M5 v! N5 s+ R  J% R0 x* N# [$ \  Q
总结:大家在修改的时候他的每个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 | 显示全部楼层
我是个凑数的。。。
回复

使用道具 举报

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