找回密码
 立即注册
搜索
查看: 2009|回复: 0

【discuz x3.1教程】header.htm文件代码分析

[复制链接]

581

主题

110

回帖

4066

积分

管理员

积分
4066

众神之神

发表于 2014-9-22 21:22:12 | 显示全部楼层 |阅读模式
  1. <!--{subtemplate common/header_common}--><!--这个是引入全局头部通用文件,必须保留-->
复制代码
下边的一大段代码是不能修改的,是DZ引入的一些脚本文件,乱改是会出错的。
  1. <meta name="application-name" content="$_G['setting']['bbname']" />
  2.         <meta name="msapplication-tooltip" content="$_G['setting']['bbname']" />
  3.         <!--{if $_G['setting']['portalstatus']}--><meta name="msapplication-task" content="name=$_G['setting']['navs'][1]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['portal']) ? 'http://'.$_G['setting']['domain']['app']['portal'] : $_G[siteurl].'portal.php'};icon-uri={$_G[siteurl]}{IMGDIR}/portal.ico" /><!--{/if}-->
  4.         <meta name="msapplication-task" content="name=$_G['setting']['navs'][2]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['forum']) ? 'http://'.$_G['setting']['domain']['app']['forum'] : $_G[siteurl].'forum.php'};icon-uri={$_G[siteurl]}{IMGDIR}/bbs.ico" />
  5.         <!--{if $_G['setting']['groupstatus']}--><meta name="msapplication-task" content="name=$_G['setting']['navs'][3]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['group']) ? 'http://'.$_G['setting']['domain']['app']['group'] : $_G[siteurl].'group.php'};icon-uri={$_G[siteurl]}{IMGDIR}/group.ico" /><!--{/if}-->
  6.         <!--{if helper_access::check_module('feed')}--><meta name="msapplication-task" content="name=$_G['setting']['navs'][4]['navname'];action-uri={echo !empty($_G['setting']['domain']['app']['home']) ? 'http://'.$_G['setting']['domain']['app']['home'] : $_G[siteurl].'home.php'};icon-uri={$_G[siteurl]}{IMGDIR}/home.ico" /><!--{/if}-->
  7.         <!--{if $_G['basescript'] == 'forum' && $_G['setting']['archiver']}-->
  8.                 <link rel="archives" title="$_G['setting']['bbname']" href="{$_G[siteurl]}archiver/" />
  9.         <!--{/if}-->
  10.         <!--{if !empty($rsshead)}-->$rsshead<!--{/if}-->
  11.         <!--{if widthauto()}-->
  12.                 <link rel="stylesheet" id="css_widthauto" type="text/css" href="data/cache/style_{STYLEID}_widthauto.css?{VERHASH}" />
  13.                 <script type="text/javascript">HTMLNODE.className += ' widthauto'</script>
  14.         <!--{/if}-->
  15.         <!--{if $_G['basescript'] == 'forum' || $_G['basescript'] == 'group'}-->
  16.                 <script type="text/javascript" src="{$_G[setting][jspath]}forum.js?{VERHASH}"></script>
  17.         <!--{elseif $_G['basescript'] == 'home' || $_G['basescript'] == 'userapp'}-->
  18.                 <script type="text/javascript" src="{$_G[setting][jspath]}home.js?{VERHASH}"></script>
  19.         <!--{elseif $_G['basescript'] == 'portal'}-->
  20.                 <script type="text/javascript" src="{$_G[setting][jspath]}portal.js?{VERHASH}"></script>
  21.         <!--{/if}-->
  22.         <!--{if $_G['basescript'] != 'portal' && $_GET['diy'] == 'yes' && check_diy_perm($topic)}-->
  23.                 <script type="text/javascript" src="{$_G[setting][jspath]}portal.js?{VERHASH}"></script>
  24.         <!--{/if}-->
  25.         <!--{if $_GET['diy'] == 'yes' && check_diy_perm($topic)}-->
  26.         <link rel="stylesheet" type="text/css" id="diy_common" href="data/cache/style_{STYLEID}_css_diy.css?{VERHASH}" />
  27.         <!--{/if}-->
  28. </head>

  29. <body id="nv_{$_G[basescript]}" class="pg_{CURMODULE}{if $_G['basescript'] === 'portal' && CURMODULE === 'list' && !empty($cat)} {$cat['bodycss']}{/if}" onkeydown="if(event.keyCode==27) return false;">
  30.         <div id="append_parent"></div><div id="ajaxwaitid"></div>
  31.         <!--{if $_GET['diy'] == 'yes' && check_diy_perm($topic)}-->
  32.                 <!--{template common/header_diy}-->
  33.         <!--{/if}-->
  34.         <!--{if check_diy_perm($topic)}-->
  35.                 <!--{template common/header_diynav}-->
  36.         <!--{/if}-->
  37.         <!--{if CURMODULE == 'topic' && $topic && empty($topic['useheader']) && check_diy_perm($topic)}-->
  38.                 $diynav
  39.         <!--{/if}-->
  40.         <!--{if empty($topic) || $topic['useheader']}-->
  41.                 <!--{if $_G['setting']['mobile']['allowmobile'] && (!$_G['setting']['cacheindexlife'] && !$_G['setting']['cachethreadon'] || $_G['uid']) && ($_GET['diy'] != 'yes' || !$_GET['inajax']) && ($_G['mobile'] != '' && $_G['cookie']['mobile'] == '' && $_GET['mobile'] != 'no')}-->
  42.                         <div class="xi1 bm bm_c">
  43.                             {lang your_mobile_browser}<a href="{$_G['siteurl']}forum.php?mobile=yes">{lang go_to_mobile}</a> <span class="xg1">|</span> <a href="$_G['setting']['mobile']['nomobileurl']">{lang to_be_continue}</a>
  44.                         </div>
  45.                 <!--{/if}-->
  46.                 <!--{if $_G['setting']['shortcut'] && $_G['member'][credits] >= $_G['setting']['shortcut']}-->
  47.                         <div id="shortcut">
  48.                                 <span><a href="javascript:;" id="shortcutcloseid" title="{lang close}">{lang close}</a></span>
  49.                                 {lang shortcut_notice}
  50.                                 <a href="javascript:;" id="shortcuttip">{lang shortcut_add}</a>

  51.                         </div>
  52.                         <script type="text/javascript">setTimeout(setShortcut, 2000);</script>
  53.                 <!--{/if}-->
复制代码
===============开始重要的部分了=============
  1. <div id="toptb" class="cl"><!--顶部导航开始-->
  2.                         <!--{hook/global_cpnav_top}--><!--顶部的插件嵌入点-->
  3.                         <div class="wp"><!--全局尺寸定义,不用修改-->
复制代码
我们看下顶部导航的左侧
  1. <div class="z"><!--顶部导航左侧代码开始-->
  2.                 <!--左侧导航循环输出代码,包含加入首页,收藏我们等等,根据情况修改-->
  3.                                         <!--{loop $_G['setting']['topnavs'][0] $nav}-->
  4.                                                 <!--{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}-->$nav[code]<!--{/if}-->
  5.                                         <!--{/loop}-->
  6.                                         <!--{hook/global_cpnav_extra1}--><!--顶部左侧的插件嵌入点-->
  7.                                 </div>
  8.                 <!--顶部导航左侧代码结束-->
复制代码
再来看看顶部导航的右侧
  1. <div class="y"><!--顶部导航右侧代码开始-->
  2.                                 <!--浏览辅助作用,个人觉得比较鸡肋,自行选择是否删除-->
  3.                                         <a id="switchblind" href="javascript:;" onClick="toggleBlind(this)" title="{lang switch_blind}" class="switchblind">{lang switch_blind}</a>
  4.                     
  5.                     <!--顶部右侧的插件嵌入点-->
  6.                                         <!--{hook/global_cpnav_extra2}-->
  7.                     
  8.                     <!--左侧导航循环输出代码-->
  9.                                         <!--{loop $_G['setting']['topnavs'][1] $nav}-->
  10.                                                 <!--{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}-->$nav[code]<!--{/if}-->
  11.                                         <!--{/loop}-->
  12.                     
  13.                     <!--顶部页面宽窄切换控制代码,自行选择是否删除-->
  14.                                         <!--{if empty($_G['disabledwidthauto']) && $_G['setting']['switchwidthauto']}-->
  15.                                                 <a href="javascript:;" id="switchwidth" onClick="widthauto(this)" title="{if widthauto()}{lang switch_narrow}{else}{lang switch_wide}{/if}" class="switchwidth"><!--{if widthauto()}-->{lang switch_narrow}<!--{else}-->{lang switch_wide}<!--{/if}--></a>
  16.                                         <!--{/if}-->
  17.                     <!--顶部页面风格切换换控制代码,自行选择是否删除-->
  18.                                         <!--{if $_G['uid'] && !empty($_G['style']['extstyle'])}--><a id="sslct" href="javascript:;" onMouseOver="delayShow(this, function() {showMenu({'ctrlid':'sslct','pos':'34!'})});">{lang changestyle}</a><!--{/if}-->
  19.                     
  20.                     <!--顶部DIy菜单控制代码,不要删除啊,否则没有DIY功能了-->
  21.                                         <!--{if check_diy_perm($topic)}-->
  22.                                                 $diynav
  23.                                         <!--{/if}-->
  24.                                 </div>
  25.                    <!--顶部导航右侧代码结束-->
  26.                
  27.                         </div>
  28.                 </div>
复制代码
下边代码控制各个菜单的下来菜单选项的,不要乱改啊,出错了就不好了
  1. <!--{if !IS_ROBOT}-->
  2.         
  3.         <!--下边代码控制消息提醒的下拉菜单-->
  4.                         <!--{if $_G['uid']}-->
  5.                         <ul id="myprompt_menu" class="p_pop" style="display: none;">                                
  6.                                 <li><a href="home.php?mod=space&do=pm" id="pm_ntc" style="background-repeat: no-repeat; background-position: 0 50%;"><em class="prompt_news{if empty($_G[member][newpm])}_0{/if}"></em>{lang pm_center}</a></li>
  7.                                 <li><a href="home.php?mod=follow&do=follower"><em class="prompt_follower{if empty($_G[member][newprompt_num][follower])}_0{/if}"></em><!--{lang notice_interactive_follower}-->{if $_G[member][newprompt_num][follower]}($_G[member][newprompt_num][follower]){/if}</a></li>
  8.                                 <!--{if $_G[member][newprompt] && $_G[member][newprompt_num][follow]}-->
  9.                                         <li><a href="home.php?mod=follow"><em class="prompt_concern"></em><!--{lang notice_interactive_follow}-->($_G[member][newprompt_num][follow])</a></li>
  10.                                 <!--{/if}-->
  11.                                 <!--{if $_G[member][newprompt]}-->
  12.                                         <!--{loop $_G['member']['category_num'] $key $val}-->
  13.                                                 <li><a href="home.php?mod=space&do=notice&view=$key"><em class="notice_$key"></em><!--{echo lang('template', 'notice_'.$key)}-->(<span class="rq">$val</span>)</a></li>
  14.                                         <!--{/loop}-->
  15.                                 <!--{/if}-->
  16.                                 <!--{if empty($_G['cookie']['ignore_notice'])}-->
  17.                                         <li class="ignore_noticeli"><a href="javascript:;" onClick="setcookie('ignore_notice', 1);hideMenu('myprompt_menu')" title="{lang temporarily_to_remind}"><em class="ignore_notice"></em></a></li>
  18.                                 <!--{/if}-->
  19.                         </ul>
  20.                         <!--{/if}-->
  21.             <!--下边代码控制颜色风格下拉菜单-->
  22.                         <!--{if $_G['uid'] && !empty($_G['style']['extstyle'])}-->
  23.                                 <div id="sslct_menu" class="cl p_pop" style="display: none;">
  24.                                         <!--{if !$_G[style][defaultextstyle]}--><span class="sslct_btn" onClick="extstyle('')" title="{lang default}"><i></i></span><!--{/if}-->
  25.                                         <!--{loop $_G['style']['extstyle'] $extstyle}-->
  26.                                                 <span class="sslct_btn" onClick="extstyle('$extstyle[0]')" title="$extstyle[1]"><i style='background:$extstyle[2]'></i></span>
  27.                                         <!--{/loop}-->
  28.                                 </div>
  29.                         <!--{/if}-->
  30.             <!--下边代码控制“我的”下拉菜单,是X3.1新增内容,包含“帖子,收藏,朋友”三项-->
  31.                         <!--{if $_G['uid']}-->
  32.                                 <ul id="myitem_menu" class="p_pop" style="display: none;">
  33.                                         <li><a href="forum.php?mod=guide&view=my">{lang mypost}</a></li>
  34.                                         <li><a href="home.php?mod=space&do=favorite&view=me">{lang favorite}</a></li>
  35.                                         <li><a href="home.php?mod=space&do=friend">{lang friends}</a></li>
  36.                                         <!--{hook/global_myitem_extra}-->
  37.                                 </ul>
  38.                         <!--{/if}-->
  39.             <!--下边代码控制快捷方式下拉菜单-->
  40.                         <!--{subtemplate common/header_qmenu}-->
  41.                 <!--{/if}-->
复制代码
这里出现了一个广告位
  1. 01.<!--{ad/headerbanner/wp a_h}--><!--这个是页头通栏广告位-->
复制代码
----------------真正精彩的地方开始了-------------------
页头主体开始,包含LOGO,登录框,导航,搜索等
  1. <div class="hdc cl"><!--包含LOGO,登录框和登录后的会员信息等-->
  2.                                         <!--{eval $mnid = getcurrentnav();}--><!--导航变量不要删除-->
  3.                     <!--下边的<h2>是网站的LOGO,可以根据自己的情况修改样式哦-->
  4.                                         <h2><!--{if !isset($_G['setting']['navlogos'][$mnid])}--><a href="{if $_G['setting']['domain']['app']['default']}http://{$_G['setting']['domain']['app']['default']}/{else}./{/if}" title="$_G['setting']['bbname']">{$_G['style']['boardlogo']}</a><!--{else}-->$_G['setting']['navlogos'][$mnid]<!--{/if}--></h2>
  5.                     
  6.                     <!--下边的代码控制登录框和登录后的会员信息等,是外部引入文件,如需修改登录框或者其他样式需要修改templaer/(模板目录/common/header_userstatus.htm这个文件)-->
  7.                                         <!--{template common/header_userstatus}-->
  8.                                 </div>
复制代码
下边就是导航条了
  1. <!--下边就是导航条了-->
  2.                                 <div id="nv">
  3.                
  4.                    <!--下边的这段代码是控制“快捷菜单”的-->
  5.                                         <a href="javascript:;" id="qmenu" onMouseOver="delayShow(this, function () {showMenu({'ctrlid':'qmenu','pos':'34!','ctrlclass':'a','duration':2});showForummenu($_G[fid]);})">{lang my_nav}</a>
  6.                     
  7.                     <!--导航条开始循环输出的地方-->
  8.                                         <ul>
  9.                                                 <!--{loop $_G['setting']['navs'] $nav}-->
  10.                                                         <!--{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}--><li {if $mnid == $nav[navid]}class="a" {/if}$nav[nav]></li><!--{/if}-->
  11.                                                 <!--{/loop}-->
  12.                                         </ul>
  13.                      <!--导航条结束的地方-->
  14.                      
  15.                                         <!--{hook/global_nav_extra}--><!--导航条上的插件嵌入点-->
  16.                     
  17.                     
  18.                                 </div>
复制代码
插件的下拉菜单
  1. <!--插件的下拉菜单-->
  2.                                 <!--{if !empty($_G['setting']['plugins']['jsmenu'])}-->
  3.                                         <ul class="p_pop h_pop" id="plugin_menu" style="display: none">
  4.                                         <!--{loop $_G['setting']['plugins']['jsmenu'] $module}-->
  5.                                                  <!--{if !$module['adminid'] || ($module['adminid'] && $_G['adminid'] > 0 && $module['adminid'] >= $_G['adminid'])}-->
  6.                                                  <li>$module[url]</li>
  7.                                                  <!--{/if}-->
  8.                                         <!--{/loop}-->
  9.                                         </ul>
  10.                                 <!--{/if}-->
复制代码
我记得有个竖排二级导航
  1. 01.$_G[setting][menunavs]<!--竖排二级导航-->
复制代码
还有个横排二级导航
  1. <!--横排二级导航-->
  2.                                 <div id="mu" class="cl">
  3.                                 <!--{if $_G['setting']['subnavs']}-->
  4.                                         <!--{loop $_G[setting][subnavs] $navid $subnav}-->
  5.                                                 <!--{if $_G['setting']['navsubhover'] || $mnid == $navid}-->
  6.                                                 <ul class="cl {if $mnid == $navid}current{/if}" id="snav_$navid" style="display:{if $mnid != $navid}none{/if}">
  7.                                                 $subnav
  8.                                                 </ul>
  9.                                                 <!--{/if}-->
  10.                                         <!--{/loop}-->
  11.                                 <!--{/if}-->
  12.                                 </div>
复制代码
这么好的位置,少了广告位怎么行
  1. 01.<!--{ad/subnavbanner/a_mu}--><!--二级导航广告位-->
复制代码
搜索大婶也来了
  1. <!--搜索框-->
  2.                                 <!--{subtemplate common/pubsearchform}-->
复制代码
终于结束了
  1. </div>
  2.                 </div>

  3.                 <!--{hook/global_header}--><!--顶部插件嵌入点-->
  4.         <!--{/if}-->

  5.         <div id="wp" class="wp">
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|十三博客 ( 鲁ICP备2023000528号 )

GMT+8, 2026-6-1 17:26 , Processed in 0.051472 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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