discuzx2.0模板制作解析header.htm

2024-02-14 13:48

本文主要是介绍discuzx2.0模板制作解析header.htm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

discuzx2.0模板制作解析header.htm

header.html这个文件存储于common文件下,这个大家应该不陌生吧,我是每个DIV为小节来讲,头部的核心div我就不加if语句来讲解!因为代码太多了!我会在最下面给大家总结一下!修改应该注意的地方!

第1行代码:
<!–{subtemplate common/header_common}–>
代码解释:用于调用common文件下的header_common.html文件,
备注:<!–{subtemplate}–> 与<!–{template}–}–>是有区别的,<!–{subtemplate }–>后面的模板文件通常都是被包含在其他模板文件中的子体。这样在解析模板的时候,程序就会判断<!–{subtemplate }–>所引入的模板会被再一次解析一遍然后再和入口模板拼合,组成一个完整的模板。也就是说,如果我们添加的模板是在别的模板中被调用的话我们需 要以<!–{subtemplate 模板名称}–>的方式引入进来。

第2-29行代码:
从<meta name=”application-name” content=”$_G['setting']['bbname']” />开始到以</head>结尾
代码解释:这里主要放置一些外部文件,其中的代码不多作解释,大家在加的时候请考虑官方的书写规范!
备注:此处虽然不解释太多,但大家还是会用到!如果要加外部调用JS、css请按官方的模板制作规范来书写

第30-186行代码:
从<body>处开始到此文件的最下方
代码解释:这是首部文件的核心
备注:在修改时请注间要提前备份文件

第32-44行代码:
从<div id=”append_parent”></div><div id=”ajaxwaitid”></div>处开始到<!–{/if}–><div id=”toptb”>结尾
代码解释:此处是整的DIY样式导入、导出及样式修改等,此处代码是隐藏的,
备注:<div id=”toptb”>是方便你查找才写出!此代码不要修改,在修改模板时也不要漏了!

第32-44行代码:
从代码:<div id=”toptb”>到</div><!–{if !IS_ROBOT}–>
代码解释:顶部文件,用于放置导航与dz内部的一些功能,<div>右处内容</div>,<div>左处内容</div>
备注:在后台=》界面=》顶部导航。可以设置

 

 

第70-78行代码:

 

  1. <!–{if !IS_ROBOT}–>
  2.                         <!–{if $_G['uid'] && !emptyempty($_G['style']['extstyle'])}–>
  3.                                 <div id=”sslct_menu” class=”cl p_pop” style=”display: none;”>
  4.                                         <!–{if !$_G[style][defaultextstyle]}–><span class=”sslct_btn” onClick=”extstyle(”)” title=”{lang default}”><i></i></span><!–{/if}–>
  5.                                         <!–{loop $_G['style']['extstyle'] $extstyle}–>
  6.                                                 <span class=”sslct_btn” onClick=”extstyle(‘$extstyle[0]‘)” title=”$extstyle[1]“><i style=’background:$extstyle[2]‘></i></span>
  7.                                         <!–{/loop}–>
  8.                                 </div>
  9.                         <!–{/if}–>

 

代码解释:此处是拓展色的切换的菜单
备注:如里不需要可以删除

第80-96行代码:

 

  1. <div id=”qmenu_menu” class=”p_pop {if !$_G['uid']}blk{/if}” style=”display: none;”>
  2.                                         <!–{if $_G['uid']}–>
  3.                                         <ul>
  4.                                                 <!–{loop $_G['setting']['mynavs'] $nav}–>
  5.                                                         <!–{if $nav['available'] && (!$nav['level'] || ($nav['level'] == 1 && $_G['uid']) || ($nav['level'] == 2 && $_G['adminid'] > 0) || ($nav['level'] == 3 && $_G['adminid'] == 1))}–>
  6.                                                                 <li>$nav[code]</li>
  7.                                                         <!--{/if}-->
  8.                                                 <!--{/loop}-->
  9.                                         </ul>
  10.                                         <!--{else}-->
  11.                                                 <div class="ptm pbw hm">
  12.                                                         {lang my_nav_login}
  13.                                                 </div>
  14.                                         <!--{/if}-->
  15.                                 </div>
  16.                 <!--{/if}-->

 

代码解释:此处是快捷导航弹出的菜单,里面用到了<!--{if $_G['uid']}-->语句进行判断,意思是只有会员才可以浏览此处内容,循环我就不多讲了哈
备注:<!--{if $_G['uid']}-->语句可以用到很多地方,自己在做模板的时候,可能会用到!

 
第97行代码:

 

  1. <!--{ad/headerbanner/wp a_h}-->

 

代码解释:头部的广告代码,
备注:可以在后台=》运营=站内广告添加

第98-184行代码:
从<div id="hd">到 </div><!--{/if}-->
代码解释:头部的核心文件
备注:下面是头部核心的DIV指引

 

  1. <div id="hd">
  2.         <div class="wp">
  3.              <div class="hdc cl">
  4.                 <h2>logo</h2>---------------------------------->logo
  5.                  <div id="um">
  6.                              <div class="avt y">头像</div>-----------------------------头像
  7.                        <p>
  8.                           <!--{hook/global_usernav_extra1}-->------------------------------------>插件嵌入点1
  9.                           <!--{hook/global_usernav_extra2}-->--------------------------------->插件嵌入点2
  10.                           个人信息---------------------------------------->个人信息
  11.                       </p>
  12.                       <p>
  13.                          <!--{hook/global_usernav_extra3}-->--------------------------->插件嵌入点3
  14.                          个人信息---------------------------------------->个人信息
  15.                      </p>
  16.                  </div>
  17.                        <!--{template member/login_simple}-->----- > 登录框(此处调用member/login_simple.html文件)                         </div>
  18.               <div id="nv">
  19.                   <a href="javascript:;" id="qmenu" >快捷导航</a>-------------->快捷导航
  20.                 <ul>
  21.                  <li>栏目导航</li>--------------------------------->栏目导航
  22.                  </ul>
  23.                 </div>
  24.                <ul class="p_pop h_pop" id="plugin_menu" style="display: none">
  25.                       二级导航菜单样式------------------------------------------------------>二级导航菜单样式
  26.                </ul>
  27.               < div id="mu" class="cl">
  28.                             二级导航横排>------------->二级导航横排样式
  29.               </div>
  30.               <!--{ad/subnavbanner/a_mu}-->------------------------->头部广告(后台站点广告处可以添加)
  31.                 <!--{subtemplate common/pubsearchform}-->-------->搜索(此处调用common/pubsearchform文件)                   </div>
  32.         </div><!--{hook/global_header}-->插件嵌入点

 

总结大家在修改的时候他的每个DIV和ul、li、和会有if语句,大家在看明白以上图后,在添加的时候要注意一下IF语句的作用,我就没有把代码复制到上面一一解析,希望大家去妍究下!利用这些资源,自己可以做出很漂亮的头部,举一反三!


这篇关于discuzx2.0模板制作解析header.htm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708666

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?