您的位置:首页 > 其它

Sharepoint3 - 制作一个最简单的MasterPage模板

2007-11-01 16:33 801 查看
序言:这半年时间都在忙公司的MOSS2007(Sharepoint3)的项目,尽管我对Sharepoint这个东西没什么好感,但在这半年多的开发工作里,还是总结出了一点经验和技巧,现在分享出来希望能给刚学Sharepoint3的新人有点帮助。

正文:在MSDN上有一篇文章也是说如何制作一个最简单的Masterpage,但很不幸的告诉大家,那个文章所写的Masterpage是错误的,在某些特定的页面会抛Error,所以我就花了点时间自己重新整理一个。

<HTML dir="<%$Resources:wss,multipages_direction_dir_value%>" runat="server" xmlns:o="urn:schemas-microsoft-com:office:office" __expr-val-dir="ltr">

<HEAD runat="server">

<META Name="GENERATOR" Content="Microsoft SharePoint">

<META Name="progid" Content="SharePoint.WebPartPage.Document">

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

<META HTTP-EQUIV="Expires" content="0">

<SharePoint:RobotsMetaTag runat="server"/>

<Title ID=onetidTitle><asp:ContentPlaceHolder id=PlaceHolderPageTitle runat="server"/></Title>

<SharePoint:CssLink runat="server"/>

<SharePoint:Theme runat="server"/>

<SharePoint:ScriptLink language="javascript" name="core.js" Defer="true" runat="server"/>

<SharePoint:CustomJSUrl runat="server"/>

<SharePoint:SoapDiscoveryLink runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server"/>

<SharePoint:DelegateControl runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true"/>

</HEAD>

<BODY scroll="yes" onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();">

<form runat="server" onsubmit="return _spFormOnSubmitWrapper();">

<!--必选项-->

<WebPartPages:SPWebPartManager id="m" runat="Server"/>

<!--可选项,是头顶那个欢迎信息和登录的控件-->

<wssuc:Welcome id="IdWelcome" runat="server" EnableViewState="false"></wssuc:Welcome>

<!--可选项,SiteAction那个按钮的控件-->

<SharePoint:SiteActions runat="server" AccessKey="<%$Resources:wss,tb_SiteActions_AK%>" id="SiteActionsMenuMain"

PrefixHtml="<div><div>"

SuffixHtml="</div></div>"

MenuNotVisibleHtml="&nbsp;">

<CustomTemplate>

<SharePoint:FeatureMenuTemplate runat="server"

FeatureScope="Site"

Location="Microsoft.SharePoint.StandardMenu"

GroupId="SiteActions"

UseShortId="true"

>

<SharePoint:MenuItemTemplate runat="server" id="MenuItem_Create"

Text="<%$Resources:wss,viewlsts_pagetitle_create%>"

Description="<%$Resources:wss,siteactions_createdescription%>"

ImageUrl="/_layouts/images/Actionscreate.gif"

MenuGroupId="100"

Sequence="100"

UseShortId="true"

ClientOnClickNavigateUrl="~site/_layouts/create.aspx"

PermissionsString="ManageLists, ManageSubwebs"

PermissionMode="Any" />

<SharePoint:MenuItemTemplate runat="server" id="MenuItem_EditPage"

Text="<%$Resources:wss,siteactions_editpage%>"

Description="<%$Resources:wss,siteactions_editpagedescription%>"

ImageUrl="/_layouts/images/ActionsEditPage.gif"

MenuGroupId="100"

Sequence="200"

ClientOnClickNavigateUrl="javascript:MSOLayout_ChangeLayoutMode(false);"

/>

<SharePoint:MenuItemTemplate runat="server" id="MenuItem_Settings"

Text="<%$Resources:wss,settings_pagetitle%>"

Description="<%$Resources:wss,siteactions_sitesettingsdescription%>"

ImageUrl="/_layouts/images/ActionsSettings.gif"

MenuGroupId="100"

Sequence="300"

UseShortId="true"

ClientOnClickNavigateUrl="~site/_layouts/settings.aspx"

PermissionsString="EnumeratePermissions,ManageWeb,ManageSubwebs,AddAndCustomizePages,ApplyThemeAndBorder,ManageAlerts,ManageLists,ViewUsageData"

PermissionMode="Any" />

</SharePoint:FeatureMenuTemplate>

</CustomTemplate>

</SharePoint:SiteActions>

<!--可选项,设计状态下的Console-->

<asp:ContentPlaceHolder ID="WSSDesignConsole" runat="server">

<wssuc:DesignModeConsole id="IdDesignModeConsole" runat="server"/>

</asp:ContentPlaceHolder>

<!--这个tag比较重要,它是设置Webpart的那个工具条,如果页面上不加上这个Tag,那个工具条就会生成在页面的最下端,从而破坏页面结构-->

<PlaceHolder id="MSO_ContentDiv" runat="server"></PlaceHolder>

<!--必选项,这个就不用说了吧-->

<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server"></asp:ContentPlaceHolder>

<input type="text" name="__spDummyText1" style="display:none;" size=1/>

<input type="text" name="__spDummyText2" style="display:none;" size=1/>

<!--没用的PlaceHolder不要删除掉,因为有些页面会把东西输出到这些PlaceHolder的,少一个都可能会出错,把他隐藏就行-->

<div style="display:none">

<asp:ContentPlaceHolder id="PlaceHolderUtilityContent" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderBodyAreaClass" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderTitleAreaClass" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderGlobalNavigationSiteMap" runat="server">

<asp:SiteMapPath SiteMapProvider="SPSiteMapProvider" id="GlobalNavigationSiteMap" RenderCurrentNodeAsLink="true" SkipLinkText="" NodeStyle-CssClass="ms-sitemapdirectional" runat="server"/>

</asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderGlobalNavigation" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderSiteName" runat="server">

<SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" id="onetidProjectPropertyTitle">

<SharePoint:ProjectProperty Property="Title" runat="server" />

</SharePoint:SPLinkButton>

</asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server">

<SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox"/>

</asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderHorizontalNav" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderTopNavBar" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder ID="SPNavigation" runat="server">

<SharePoint:DelegateControl runat="server" ControlId="PublishingConsole"

PrefixHtml="<tr><td colspan="4" id="mpdmconsole" class="ms-consolemptablerow">"

SuffixHtml="</td></tr>">

</SharePoint:DelegateControl>

</asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderPageImage" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderTitleLeftBorder" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderTitleBreadcrumb" runat="server">

<asp:SiteMapPath SiteMapProvider="SPContentMapProvider" id="ContentMap" SkipLinkText="" NodeStyle-CssClass="ms-sitemapdirectional" runat="server"/>  

</asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderPageTitleInTitleArea" runat="server" />

<asp:ContentPlaceHolder id="PlaceHolderMiniConsole" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderTitleRightMargin" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarDataSource" runat="server" />

<asp:ContentPlaceHolder id="PlaceHolderCalendarNavigator" runat="server" />

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarTop" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBar" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderTitleAreaSeparator" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderLeftActions" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderNavSpacer" runat="server"></asp:ContentPlaceholder>

<asp:ContentPlaceHolder id="PlaceHolderLeftNavBarBorder" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderBodyLeftBorder" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat="server"/>

<asp:ContentPlaceHolder id="PlaceHolderBodyRightMargin" runat="server"></asp:ContentPlaceHolder>

<asp:ContentPlaceHolder id="PlaceHolderFormDigest" runat="server">

<SharePoint:FormDigest runat=server/>

</asp:ContentPlaceHolder>

</div>

</form>

</BODY>

</HTML>

PS:其实有一些Sharepoint自带的控件是很好用的,希望大家能发掘出来

这个模板是基于Blank site那个模板加工的,如果是MOSS里的Publish模板那者一些特殊的模板可能还要加点东西上去。

希望这个能为大家带来帮助。

有问题可以联系我的Email或者留言,我会尽量做到有问必复的。

Email: ou.jasmine@gmail.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: