(转)discuz教程:制作网站模板前必须了解的界面结构(页头页尾模板文件)


页头文件路径:
template/default/common/header.htm

header.htm文件二次加载的文件有:

template/default/common/header_common.htm 全局公共文件
     |--该文件中包含了页面TITLE,对浏览器的申明,以及全局必须存在的基本代码,所以不建议新手修改此文件

template/default/common/header_diy.htm DIY模式时加载的DIY浮层菜单
template/default/common/member/login_simple.htm 右上角迷你登陆框(未登录时调用该文件)

</head>以上的代码必须保留,此段代码为所有页面必须使用的脚本、样式载入,去掉后页面将会错误显示!!

除了保留</head>以上的代码,以下代码也是必须存在的

页面中的ajax交互功能必须依赖的代码:

  1. <div id="append_parent"></div><div id="ajaxwaitid"></div>

DIY功能必须的代码:

  1. <!--{if $_GET[‘diy‘] == ‘yes‘ && (CURMODULE == ‘topic‘ || $_G[‘group‘][‘allowdiy‘]) && !empty($_G[‘style‘][‘tplfile‘])}-->
  2. <!--{template common/header_diy}-->
  3. <!--{/if}-->
  4. <!--{if CURMODULE == ‘topic‘ && $topic && empty($topic[‘useheader‘]) && !empty($_G[‘style‘][‘tplfile‘]) && ($_G[‘group‘][‘allowdiy‘] || $_G[‘group‘][‘allowaddtopic‘] && $topic[‘uid‘] == $_G[‘uid‘] || $_G[‘group‘][‘allowmanagetopic‘])}-->
  5. <a id="diy-tg" href="javascript:openDiy();" title="{lang open_diy}" class="y"><img src="{STATICURL}image/diy/panel-toggle.png" alt="DIY" /></a>
  6. <!--{/if}-->

页头广告调用代码:放置于<div id="hd">上面

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

导航条当前位置获取代码,必须放置于logo代码前面

  1. <!--{eval $mnid = getcurrentnav();}-->

二级导航调用代码:放置于二级导航代码后面

  1. <!--{ad/subnavbanner/a_mu}-->

页头搜索条代码,根据自己模板的结构设计放到需要的位置即可

  1. <!--{subtemplate common/pubsearchform}-->

全局框架代码,该代码的闭合在footer.htm文件第一行</div>中

  1. <div id="wp" class="wp">

此外页头文件包含几个插件嵌入点代码,作为一个完整的discuz模板,插件钩子是必须存在的:

顶部导航左嵌入点:

  1. <!--{hook/global_cpnav_extra1}-->

顶部导航右嵌入点:

  1. <!--{hook/global_cpnav_extra2}-->

右上角登录状态嵌入点(个人设置前面):

  1. <!--{hook/global_usernav_extra1}-->

右上角登录状态嵌入点(退出按钮前面):

  1. <!--{hook/global_usernav_extra2}-->

右上角登录状态嵌入点(第二行第一位):

  1. <!--{hook/global_usernav_extra3}-->

全局页尾

页尾文件路径:template/default/common/footer.htm

页尾文件担负整个模板的重要的收尾工作,如果缺少必须的代码,同样也会导致整个程序各个功能不能正常使用!

页尾文件第一句(必须存在):

  1. </div>
  2. PS:这个闭合的标签是页头文件的<div id="wp" class="wp">

站长推荐功能调用代码:

  1. <!--{eval $focusid = getfocus_rand($_G[basescript]);}-->
  2. <!--{if $focusid !== null}-->
  3. <!--{eval $focus = $_G[‘cache‘][‘focus‘][‘data‘][$focusid];}-->
  4. <div class="focus" id="sitefocus">
  5. <div class="bm">
  6. <div class="bm_h cl">
  7. <a href="javascript:;" onclick="setcookie(‘nofocus_$focusid‘, 1, $_G[‘cache‘][‘focus‘][‘cookie‘]*3600);$(‘sitefocus‘).style.display=‘none‘" class="y" title="{lang close}">{lang close}</a>
  8. <h2><!--{if $_G[‘cache‘][‘focus‘][‘title‘]}-->{$_G[‘cache‘][‘focus‘][‘title‘]}<!--{else}-->{lang focus_hottopics}<!--{/if}--></h2>
  9. </div>
  10. <div class="bm_c">
  11. <dl class="xld cl bbda">
  12. <dt><a href="{$focus[‘url‘]}" class="xi2" target="_blank">$focus[‘subject‘]</a></dt>
  13. <!--{if $focus[image]}-->
  14. <dd class="m"><a href="{$focus[‘url‘]}" target="_blank"><img src="{$focus[‘image‘]}" alt="$focus[‘subject‘]" /></a></dd>
  15. <!--{/if}-->
  16. <dd>$focus[‘summary‘]</dd>
  17. </dl>
  18. <p class="ptn hm"><a href="{$focus[‘url‘]}" class="xi2" target="_blank">{lang focus_show} &raquo;</a></p>
  19. </div>
  20. </div>
  21. </div>
  22. <!--{/if}-->

全局页尾广告代码调用(必须存在):

  1. <!--{ad/footerbanner/wp a_f/1}--><!--{ad/footerbanner/wp a_f/2}--><!--{ad/footerbanner/wp a_f/3}-->
  2. <!--{ad/float/a_fl/1}--><!--{ad/float/a_fr/2}-->
  3. <!--{ad/couplebanner/a_fl a_cb/1}--><!--{ad/couplebanner/a_fr a_cb/2}-->
  4. <!--{ad/cornerbanner/a_cn}-->

页尾插件嵌入点:(必须存在!)

  1. <!--{hook/global_footer}-->

页尾左框架版权信息(必须存在)

  1. <div id="frt">
  2. <p>Powered by <strong><a href="http://www.discuz.net" target="_blank">Discuz!</a></strong> <em>$_G[‘setting‘][‘version‘]</em><!--{if !empty($_G[‘setting‘][‘boardlicensed‘])}--> <a href="http://license.comsenz.com/?pid=1&host=$_SERVER[HTTP_HOST]" target="_blank">Licensed</a><!--{/if}--></p>
  3. <p class="xs0">&copy; 2001-2011 <a href="http://www.comsenz.com" target="_blank">Comsenz Inc.</a></p>
  4. </div>

页尾有框架菜单、备案、执行时间、统计代码

  1. <div id="flk" class="y">
  2. <p>
  3. <!--{loop $_G[‘setting‘][‘footernavs‘] $nav}--><!--{if $nav[‘available‘] && ($nav[‘type‘] && (!$nav[‘level‘] || ($nav[‘level‘] == 1 && $_G[‘uid‘]) || ($nav[‘level‘] == 2 && $_G[‘adminid‘] > 0) || ($nav[‘level‘] == 3 && $_G[‘adminid‘] == 1)) ||
  4. !$nav[‘type‘] && ($nav[‘id‘] == ‘stat‘ && $_G[‘group‘][‘allowstatdata‘] || $nav[‘id‘] == ‘report‘ && $_G[‘uid‘] || $nav[‘id‘] == ‘archiver‘ || $nav[‘id‘] == ‘mobile‘))}--><!--{if $nav[‘id‘] == ‘mobile‘ && $_G[‘setting‘][‘mobile‘][‘allowmobile‘] != 1}--><!--{eval continue;}--><!--{/if}-->$nav[code]<span class="pipe">|</span><!--{/if}--><!--{/loop}-->
  5. <strong><a href="$_G[‘setting‘][‘siteurl‘]" target="_blank">$_G[‘setting‘][‘sitename‘]</a></strong>
  6. <!--{if $_G[‘setting‘][‘icp‘]}-->( <a href="http://www.miitbeian.gov.cn/" target="_blank">$_G[‘setting‘][‘icp‘]</a> )<!--{/if}-->
  7. <!--{hook/global_footerlink}-->
  8. <!--{if $_G[‘setting‘][‘statcode‘]}-->$_G[‘setting‘][‘statcode‘]<!--{/if}-->
  9. </p>
  10. <p class="xs0">
  11. {lang time_now}
  12. <span id="debuginfo">
  13. <!--{if debuginfo()}-->, Processed in $_G[debuginfo][time] second(s), $_G[debuginfo][queries] queries
  14. <!--{if $_G[‘gzipcompress‘]}-->, Gzip On<!--{/if}--><!--{if $_G[‘memory‘]}-->, <!--{echo ucwords($_G[‘memory‘])}--> On<!--{/if}-->.
  15. <!--{/if}-->
  16. </span>
  17. </p>
  18. </div>

用户活动信息记录代码(必须存在):

  1. <!--{eval updatesession();}-->
  2. PS:缺少该代码直接导致用户在线时间等信息无法记录

用户升级信息弹出层:(页头右上角用户组连接弹出)

  1. <!--{if $upgradecredit !== false}-->
  2. <div id="g_upmine_menu" class="tip tip_3" style="display:none;">
  3. <div class="tip_c">
  4. {lang credits} $_G[member][credits], {lang thread_groupupgrade} $upgradecredit {lang credits}
  5. </div>
  6. <div class="tip_horn"></div>
  7. </div>
  8. <!--{/if}-->

用户短消息、站点邮件发送触发代码(必须存在)

  1. <!--{if !$_G[‘setting‘][‘bbclosed‘]}-->
  2. <!--{if $_G[uid] && !isset($_G[‘cookie‘][‘checkpm‘])}-->
  3. <script type="text/javascript" src="home.php?mod=spacecp&ac=pm&op=checknewpm&rand=$_G[timestamp]"></script>
  4. <!--{/if}-->
  5. <!--{if !isset($_G[‘cookie‘][‘sendmail‘])}-->
  6. <script type="text/javascript" src="home.php?mod=misc&ac=sendmail&rand=$_G[timestamp]"></script>
  7. <!--{/if}-->
  8. <!--{/if}-->

使用DIY功能时必须的脚本(必须存在):

  1. <!--{if $_GET[‘diy‘] == ‘yes‘}-->
  2. <!--{if (CURMODULE == ‘topic‘ || $_G[‘group‘][‘allowdiy‘]) && (empty($do) || $do != ‘index‘) && !empty($_G[‘style‘][‘tplfile‘])}-->
  3. <script type="text/javascript" src="{$_G[setting][jspath]}common_diy.js?{VERHASH}"></script>
  4. <script type="text/javascript" src="{$_G[setting][jspath]}portal_diy.js?{VERHASH}"></script>
  5. <!--{/if}-->
  6. <!--{if $space[‘self‘] && CURMODULE == ‘space‘ && $do == ‘index‘}-->
  7. <script type="text/javascript" src="{$_G[setting][jspath]}common_diy.js?{VERHASH}"></script>
  8. <script type="text/javascript" src="{$_G[setting][jspath]}space_diy.js?{VERHASH}"></script>
  9. <!--{/if}-->
  10. <!--{/if}-->

用户提醒功能状态变更(必须存在):

  1. <!--{if $_G[‘member‘][‘newprompt‘] && (empty($_G[‘cookie‘][‘promptstate_‘.$_G[uid]]) || $_G[‘cookie‘][‘promptstate_‘.$_G[uid]] != $_G[‘member‘][‘newprompt‘]) && $_G[‘gp_do‘] != ‘notice‘}-->
  2. <script type="text/javascript">noticeTitle();</script>
  3. <!--{/if}-->

漫游通知触发代码:(管理员下弹出漫游通知)

  1. <!--{eval userappprompt();}-->

返回顶部浮动菜单

  1. <!--{if $_G[‘basescript‘] != ‘userapp‘}-->
  2. <span id="scrolltop" onclick="window.scrollTo(‘0‘,‘0‘)">{lang scrolltop}</span>
  3. <script type="text/javascript">_attachEvent(window, ‘scroll‘, function(){showTopLink();});</script>
  4. <!--{/if}-->

程序功能最后处理代码(必须存在)

    1. <!--{eval output();}-->
    2. PS:伪静态、模块更新、Gzip等等
时间: 2024-10-13 03:56:12

(转)discuz教程:制作网站模板前必须了解的界面结构(页头页尾模板文件)的相关文章

asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发4- 后台模板html页面创建

上一篇教程<asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发>完成了本项目的登录模块,登录后就需要进入后台管理首页了,需要准备一个后台模板,本文主要讲解如何创建这个后台模板,本文创建的后台模板不集成到项目内部,只是静态html页面.后台模板是系统开发必须的,一般小公司有个3套后台模板就够用了.本项目后台模板主要是jquery easyui插件创建的,不需要美工设计就可以创建出来,而且效果还可以,具体效果图如下: 这个版面的缺点是,只能适应2层

phpwind9.0模板制作教程——制作论坛风格

由于论坛模板机制和门户等模板机制不同,所以今天我就先重点讲讲论坛模板制作的大概过程. 一.先来熟悉下phpwind9.0的论坛模板机制. 其实phpwind9.0的模板机制和discuzx2.5差不多,都是程序运行本身自带的默认模板(template内文件),然后如果我们自己设计一套模板放在对应的文件夹中并且后台进行指定的话,那么程序就将运行我们新建的模板风格,官方这样做的目的是:想改哪里就做哪里的模板,很方便很灵动,如果说为了修改一个论坛界面的风格动辄就要去做整站模板的话,那可就得不偿失了.

zencart网站上线前,邮件模板默认网址修改

涉及到的文件 includes\languages\语言包\模板\email_extras.php 后台\includes\languages\语言包\email_extras.php 后台\includes\languages\语言包\email_welcome.php 若要修改邮件模板css样式,模板文件在email/目录下 zencart网站上线前,邮件模板默认网址修改

最新discuz模版制作7堂课让你精通discuz模版制作

第一课  基本知识储备一.基本 HTML 代码二.网站语言编码  三.DIV+CSS 认知及应用 第二课  必备软件.环境配置及程序安装 第三课  DISCUZ 构架详解 一.DISCUZ 基础构架讲解 二.DISCUZ 所有文件结构详解  第四课  模板仿制.自制技巧及实例 一.新建模板及模板基础配置 二.代码的复制及删减 三.样式文件调整  第五课  DISCUZ 模板简易二次开发技巧  实例一.以 DISCUZ 为基础制作分类信息模板实例二.制作瀑布流模板 实例三.制作 DISCUZ 专题

Play Framework Web开发教程(33): 结构化页面-组合使用模板

和你编写代码类似,你编写的页面也可以由多个小的片段组合而成,这些小的片段本身也可以由更小的片段构成.这些小片段通常是可以在其它页面重复使用的:有些部分可以用在所有页面,而有些部分是某些页面特定的.本篇介绍如何使用这些可重用的小模板来构成整个页面.Includes到目前为止的例子,我们只显示了HTML的片段,没有实例显示整个页面.下面我们给出完整的显现产品列表的代码和模板: 1 def catalog() = Action { 2     val products = ProductDAO.lis

WordPress小工具开发教程(网站公告)

WordPress小工具开发教程(网站公告) BY TIANQIXIN · 2012 年 12 月 26 日 wordpress主题小工具,可以自由拖动到侧边栏,并在前台实现相应功能!一般自带的小工具功能有限,我们可以通过自己开发小工具来增强wordpress的侧边栏功能.制作wordpress小工具需要用到WP_Widget类,该类位于wp-includes\widgets.php,有兴趣的同学可以打开看看,基本上我们只要扩展这个类就可以开发自己的小工具了.本站以网站公告为例,最终效果图如下:

DEDE5.7如何制作网站地图?

DEDE用的人很多,可能大家在使用的过程中会碰到一些问 题,这很正常的,今天我们来讲讲DEDE5.7如何制作网站地图,其实网站地图分两种,一种做给网友看的,方便网友可以方便地找到自己想浏览的内容,另外 一种是做给搜索引擎蜘蛛看,方便蜘蛛在你网站上面抓取内容.    当然,我们这里讲的主要是针对蜘蛛的,因为DEDE默认的就有针对用户的网站地图,主要是以栏目的形式展现,这个可以在DEDE后台自行生成.其实大家印象当中的网站地图是XML格式的,一般命名成sitemap.xml,接下来进入正题.    

Dedecms 5.7如何制作网站地图?

dedecms用的人很多,可能大家在使用的过程中会碰到一些问 题,这很正常的,今天我们来讲讲dedecms 5.7如何制作网站地图,其实网站地图分两种,一种做给网友看的,方便网友可以方便地找到自己想浏览的内容,另外 一种是做给搜索引擎蜘蛛看,方便蜘蛛在你网站上面抓取内容. 当然,我们这里讲的主要是针对蜘蛛的,因为DEDE默认的就有针对用户的网站地图,主要是以栏目的形式展现,这个可以在DEDE后台自行生成.其实大家印象当中的网站地图是XML格式的,一般命名成sitemap.xml,接下来进入正题.

深圳网站优化:网站上线前要做哪些准备?

随着搜索引擎的普及,越来越多的人通过搜索引擎进行学习,学习网站搭建也已经不算什么难事,但是有很多朋友网站还没完善好就匆匆将网站上线,导致搜索引擎对网站的评分大大降低,甚至因为网站上线后经常改动,导致网站被降权,犯这种错误的朋友并不少见,所以今天我们就来聊一聊,网站上线前要做哪些准备? 网站上线的底层需求 1.一个合适的域名:域名就相当于网站在搜索引擎中的门牌号,一个没有域名的网站是不能展现到互联网上的,小编推荐在大型的域名供应商购买主流的域名,比如.com.cn.net,不要图便宜去购买中文域名