本文翻译自MSDN : Create a Minimal Master Page .

当你配置一个MOSS站点时,第一步中通常会建立一个或多个母版页。使用母版页可以包含很多MOSS站点中的元素,例如导航栏、搜索文本框、登陆控件等等,也包含了对定义站点统一样式的CSS文件。MOSS的站点和站点中所有的页面都是通过母版页来实现统一的用户体现和风格。根据你的需要,也可以对站点集中不同的站点使用不同的母版页来区分每个站点所处于门户中的区域。

当你在MOSS中定义一个站点级时,系统会自动地创建一个母版页库包含了所有的母版页和站点集的页面布局。如果这个站点集用到了发布门户或是协作门户模板,则母版页库中会包含几个不同的母版页,你可以选择使用不同的母版页使站点看起来更加个性化。

在MOSS页面定制中建立母版页是最重要的第一步,它将花费很多时间才能完成。本文将讲述如何建立一个满足MOSS要求的最精简功能的母版页,后面的代码会提供一个仅能保证MOSS页面控件正常布局的母版页。

你可以随便的建立一个空的母版页,但是我们不推荐这样做,因为一个完全空白的母版页中并不包含能使MOSS页面模型正常工作的Content PlaceHolder。而下面的示例代码中会包含所有必须的Content PlaceHolder。

你可以使用记事本,类似于Sharepoint 2007 Designer的Web编辑器,类似于VS 2005的IDE来编辑母版页,本文使用的是Sharepoint 2007 Designer 。

MOSS 要求一个母版页必须包含标题、图标、登陆、搜索等区域和一些基础结构元素包括页面区域、分格栏、边框、控制台和描述文字PlaceHolder。

MOSS提供的母版页需要基于WSS的SPWeb类下的SPWeb.CustomMasterUrl。

建立一个最精简的母版页步骤如下。

step(1): 打开Sharepoint Designer.

step(2): 在文件菜单点击New,选择Sharepiont Content,选择Page 标签。

step(3): 双击母版页来创建一个母版页。

step(4): 选择在设计模式下查看母版页,母版页覆盖了头部和左边的一些区域,几个content placeholders是可见的。

step(5): 选择在代码模式下查看母版页。

step(6): 把下面的代码拷贝并粘贴到母板页中。

<%-- Identifies this page as a .master page written in C# and registers tag prefixes, namespaces, assemblies, and controls. --%>
<%@ Master language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Register Tagprefix="SPSWC" Namespace="Microsoft.SharePoint.Portal.WebControls" Assembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="PublishingWebControls" Namespace="Microsoft.SharePoint.Publishing.WebControls" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register Tagprefix="PublishingNavigation" Namespace="Microsoft.SharePoint.Publishing.Navigation" Assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="wssuc" TagName="Welcome" src="~/_controltemplates/Welcome.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="DesignModeConsole" src="~/_controltemplates/DesignModeConsole.ascx" %>
<%@ Register TagPrefix="PublishingVariations" TagName="VariationsLabelMenu" src="~/_controltemplates/VariationsLabelMenu.ascx" %>
<%@ Register Tagprefix="PublishingConsole" TagName="Console" src="~/_controltemplates/PublishingConsole.ascx" %>
<%@ Register TagPrefix="PublishingSiteAction" TagName="SiteActionMenu" src="~/_controltemplates/PublishingActionMenu.ascx" %>
<%-- Uses the Microsoft Office namespace and schema. --%>
<html>
  <WebPartPages:SPWebPartManager runat="server"/>
  <SharePoint:RobotsMetaTag runat="server"/>

  <%-- The head section includes a content placeholder for the page title and links to CSS and JavaScript files that run on the server. --%>
  <head runat="server">
    <asp:ContentPlaceHolder runat="server" id="head">
      <title>
        <asp:ContentPlaceHolder id="PlaceHolderPageTitle" runat="server" />
      </title>
    </asp:ContentPlaceHolder>
    <Sharepoint:CssLink runat="server"/>
    <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server" />
  </head>
  
  <%-- When loading the body of the .master page, MOSS 2007 also loads the SpBodyOnLoadWrapper class. This class handles .js calls for the master page. --%>
  <body onload="javascript:_spBodyOnLoadWrapper();">
    <%-- The SPWebPartManager manages all of the Web part controls, functionality, and events that occur on a Web page. --%>
    <form runat="server" onsubmit="return _spFormOnSubmitWrapper();">
      <wssuc:Welcome id="explitLogout" runat="server"/>
      <PublishingSiteAction:SiteActionMenu runat="server"/>  
      <PublishingWebControls:AuthoringContainer id="authoringcontrols" runat="server">
        <PublishingConsole:Console runat="server" />
      </PublishingWebControls:AuthoringContainer>
      <%-- The PlaceHolderMain content placeholder defines where the page content should go for all the content from the page layout. The page layout can overwrite any content placeholder from the master page. Example: The PlaceHolderLeftNavBar can overwrite the left navigation bar. --%>
      <asp:ContentPlaceHolder id="PlaceHolderMain" runat="server" />
        <asp:Panel visible="false" runat="server">
        <%-- These ContentPlaceHolders are only necessary to ensure all out of the box MOSS 2007 pages render with this master page. If the system master page is set to any default master page, the only content placeholders required are those that are overridden by your page layouts. --%>
<asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server"/>
<asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" runat="server"/>
<asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea"  runat="server"/>
<asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" runat="server"/>
<asp:ContentPlaceHolder ID="PlaceHolderPageImage" runat="server"/>
<asp:ContentPlaceHolder ID="PlaceHolderBodyLeftBorder" runat="server"/>
<asp:ContentPlaceHolder ID="PlaceHolderNavSpacer" runat="server"/>
<asp:ContentPlaceHolder ID="PlaceHolderTitleLeftBorder" runat="server"/>
<asp:ContentPlaceHolder ID="PlaceHolderTitleAreaSeparator" runat="server"/>
<asp:ContentPlaceHolder ID="PlaceHolderMiniConsole" runat="server"/>
<asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" runat ="server" />
<asp:ContentPlaceHolder id="PlaceHolderLeftActions" runat ="server"/>
<asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat ="server"/>
<asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat ="server"/>
<asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat ="server"/>
</asp:Panel>
    </form>
  </body>
</html>

step(7): 将文件另存为一个.master后缀名的母版页文件到站点集的母版页库(/_catalogs/masterpage)。

翻译说明:实际上在下面的visible=false的pannel中的placeholder都是可选的,根据需要设置这些placeholder的可见性就可以,如果就是一个空白的站点,那么这些placeholder一个都不需要。但要保证其它的结构是正确的。

转载于:https://www.cnblogs.com/wfconquer/archive/2006/12/06/583507.html

MOSS 2007 入门(3) : 建立一个最精简的母版页相关推荐

  1. Moss 2007 入门(1) - 功能概述【转】

    Microsoft Office Sharepoint Server 2007(MOSS 2007) 是微软最新推出的服务器产品,由于工作原因,在今后的很长一段时间内我的主要工作内容都将为围绕着这个产 ...

  2. Moss 2007 入门

    Microsoft Office Sharepoint Server 2007(MOSS 2007) 是微软最新推出的服务器产品,由于工作原因,在今后的很长一段时间内我的主要工作内容都将为围绕着这个产 ...

  3. MOSS 2007基础:WSS 3.0 中的母版页(Master Pages)和内容页(Content Pages)

    原文地址:http://robgarrett.com/cs/blogs/software/archive/2006/07/03/2065.aspx 这篇很短的文章展示了ASP.NET2.0中的母板页和 ...

  4. OSG入门即osgEarth建立一个地球的详细步骤

    最近在学习有关osg的知识,刚开始一头雾水,幸好在老师的指导下才茅塞顿开,同时又结合网上的多个资料总结 一下作为一个初学者入门的经验.希望广大初学者少走弯路! 开始osg编程之前要做osg的编译准备, ...

  5. Floodlight 入门 之 起步篇 - 建立一个Floodlight模块

    Floodlight 入门 之 起步篇 - 建立一个Floodlight模块 2017-3-1 网上也有不少关于Floodlight的入门教程了,我写该博文的目的主要是问了整理个人在学习和使用Floo ...

  6. stm32单片机c语言入门,STM32入门教程1,初学者入门,从零开始,使用keil建立一个简单的ST...

    本文讲述的是如何从零开始,使用keil建立一个简单的STM32的工程,并闪烁LED灯,给小白看. 第零步,当然首先你得有一个STM32的板子,其IO口上接了一个LED... 第一步,建立一个文件夹0. ...

  7. QT学习之C++入门知识准备+建立一个简单的QT界面

    本人使用的QT5.12.10下载地址http://download.qt.io/archive/qt/5.12/5.12.10/ 1.什么是C++ C++是C语言的升级版,在C的基础上加了很多功能,是 ...

  8. linux添加hello驱动,Linux驱动之建立一个hello模块

    目标:在开发板上执行insmod hello.ko能在控制台打印出hello init:接着执行rmmod会在控制台打印出hello exit 建立一个hello模块的步骤如下: 1.建立一个hell ...

  9. 【OpenGL ES】入门及绘制一个三角形

    本文首发于个人博客:Lam's Blog - [OpenGL ES]入门及绘制一个三角形,文章由MarkDown语法编写,可能不同平台渲染效果不一,如果有存在排版错误图片无法显示等问题,烦请移至个人博 ...

最新文章

  1. ansible roles和django项目的整合
  2. 会议交流 | 最新NLP核心技术与前沿实践分享!
  3. 解析xml_Mybatis中mapper的xml解析详解
  4. C#LeetCode刷题之#83-删除排序链表中的重复元素(Remove Duplicates from Sorted List)
  5. html动态图标代码,SVG动态图标是如何实现的
  6. 不敢摔!三星Galaxy Fold换屏费用可以入手一部华为Mate 30了
  7. linux-libre 电脑,[图]没有任何专有代码 GNU Linux-libre 5.1-gnu内核正式发布
  8. 我的Android进阶之旅------gt;Android中编解码学习笔记
  9. Apache James搭建内网邮件服务器
  10. Subversion代码提交中的org.apache.subversion.javahl.ClientException: svn: E200007: Commit failed异常解决...
  11. 【教程】安卓7.0-11.0高版本 fiddler抓包失败的解决方案
  12. 一个简单的透视游戏的编写
  13. pentaho连接数据库
  14. Day 11 Contractions and Present Perfect
  15. android系统 vender添加自定义的预编译的应用程序
  16. 数据提取方法-数据提取的概念和数据的分类
  17. Oracle OIM 原理
  18. 如何用最短时间学会数据分析?
  19. JAVA 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译
  20. 6-1免疫算法(IA)原理

热门文章

  1. 银行钱数(带小数位)转大写
  2. 如何选择一台适合个人使用的云服务器?
  3. matlab拟合公式不准确,Matlab拟合函数误差:函数值和YDATA大小不相等
  4. Mac电脑chrome打不开脸书,但是saf可以,请教是因为什么
  5. 随机生成数字字母组成的组合
  6. 微信小程序--优购页面制作
  7. 网易mumu模拟器去广告纯净版 v1.26.1.1
  8. win10 常用快捷键
  9. HBuilder uniapp 真机测试打包测试
  10. 我的第一个Android应用BMI-深入浅出Android