我对Sharepoint(2007)全新,所以请耐心等待。我想在创建新网站时自动创建aspx页面。这些页面将通过标签链接到标签,标签将由母版页定义。我没有自定义网站定义,并计划将功能装订应用于开箱即用的空白网站定义。
通过我的研究,我认为您可以创建一个Web部件页面并将其转换为一个功能。然后,我可以将其钉在空白网站定义中。问题是我没有找到任何关于如何做到这一点的信息。所以我有两个问题:
我发现有一个人在这里问同一个问题:How to add a web part page to a site definition? 我读了第一个回复,但它有点过头了,我不知道它是否真的回答了我的问题。
非常感谢!
答案 0 :(得分:6)
您的第一个问题的答案取决于您是指应用程序页面还是内容页面。它们各有优势:应用程序页面很好,它们可以运行自定义服务器端代码,而内容页面很好,因为(例如)它们可以由用户自定义,但默认情况下限制在什么样的代码中运行
有关功能和限制两种类型之间差异的相当好的讨论,请查看Windows SharePoint Services SDK并查看名为“Application _layouts page type”和“Content page type”的主题。 / p>
对于装订,它比向网站定义的onet.xml文件添加新功能更简单,更灵活。这个article似乎很好地概述了替代方案。您可能希望制作空白网站定义的副本,重命名,然后在工作中使用该网站定义。
内容页面的功能
你需要三种类型的东西:
WebPartZones
但没有实际Web部件的Web部件页面的shell。您的功能的文件夹结构如下所示:
12
+-- TEMPLATES
+-- FEATURES
+-- YourFeature
+-- PageTemplates
| +-- Page.aspx (simple aspx page)
| +-- WebPartPage.aspx (still simple, but with WebPartZones)
+-- feature.xml
+-- elements.xml
<强>的Feature.xml:强>
<Feature
Id="CFF117BC-9685-4a7b-88D0-523D9DAD21F0"
Title="Custom Pages Feature"
Scope="Web"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml"/>
</ElementManifests>
</Feature>
<强> Elements.xml的强>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Path="PageTemplates" Url="Pages" >
<File Url="Page.aspx" Type="Ghostable" />
<File Url="WebPartPage.aspx" Name="WebPartPage.aspx" Type="Ghostable" >
<AllUsersWebPart WebPartZoneID="Left" WebPartOrder="0">
<![CDATA[
<WebPart xmlns="http://schemas.microsoft.com/WebPart/v2"
xmlns:cewp="http://schemas.microsoft.com/WebPart/v2/ContentEditor">
<Assembly>Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
<TypeName>Microsoft.SharePoint.WebPartPages.ContentEditorWebPart</TypeName>
<Title>Some content that you want to provision with the feature</Title>
<FrameType>TitleBarOnly</FrameType>
<cewp:Content>
Hello world.
</cewp:Content>
</WebPart>
]]>
</AllUsersWebPart>
</File>
</Module>
</Elements>
<强> Page.aspx 强>
<%@ Page MasterPageFile="~masterurl/default.master"
meta:progid="SharePoint.WebPartPage.Document" %>
<asp:Content runat="server" ContentPlaceHolderID="PlaceHolderMain">
Hello World
</asp:Content>
<强> WebPartPage.aspx 强>
<%@ Page Language="C#" MasterPageFile="~masterurl/default.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=12.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" meta:progid="SharePoint.WebPartPage.Document" %>
<%@ Register Tagprefix="WebPartPages"
Namespace="Microsoft.SharePoint.WebPartPages"
Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<asp:Content ID="main" runat="server" ContentPlaceHolderID="PlaceHolderMain" >
<table width="100%">
<tr>
<td valign="top" style="width:50%">
<WebPartPages:WebPartZone ID="Left" runat="server"
FrameType="TitleBarOnly" Title="Left Web Part Zone" />
</td>
<td valign="top" style="width:50%">
<WebPartPages:WebPartZone ID="Right" runat="server"
FrameType="TitleBarOnly" Title="Right Web Part Zone" />
</td>
</tr>
</table>
</asp:Content>
如果以这种方式配置功能,则应该能够在该结构中部署网站内容页面。
另外,我强烈推荐Ted Pattison的Inside Windows SharePoint Services书。它详细介绍了此主题,包括网站内容页面的重要安全方面。这很容易买入。