【问题标题】:Adding web page to blank sharepoint site definition将网页添加到空白共享点站点定义
【发布时间】:2010-12-10 07:26:03
【问题描述】:

我对 Sharepoint (2007) 完全陌生,所以请多多包涵。我想在创建新站点时自动创建 aspx 页面。这些页面将通过将由母版页定义的选项卡链接到。我没有自定义站点定义,并计划将功能装订应用到开箱即用的空白站点定义。

通过我的研究,我认为您可以创建一个 Web 部件页面并将其转化为功能。然后我可以将它装订到空白站点定义。问题是我还没有找到有关如何执行此操作的任何信息。所以我的两个问题是:

  1. 如何创建仅是一个 aspx 页面的功能?
  2. 如何将此功能装订到空白网站定义?

我发现有人在这里问同样的问题:How to add a web part page to a site definition? 我阅读了第一个回复,但它有点超出我的想象,我不知道它是否真的回答了我的问题。

非常感谢!

【问题讨论】:

    标签: sharepoint wss


    【解决方案1】:

    第一个问题的答案取决于您是指应用程序页面还是内容页面。它们各有优势:应用程序页面很好,因为它们可以运行自定义的服务器端代码,而内容页面很好,因为(例如)它们可以由用户自定义,但默认情况下受限于可以使用的代码类型运行。

    要对这两种类型在功能和限制方面的差异进行很好的讨论,请查看 Windows SharePoint Services SDK 并查看名为“Application _layouts page type”和“Content page type”的主题。

    至于装订,它比向站点定义的 onet.xml 文件中添加新功能更简单、更灵活。这个article 似乎是对替代方案的一个很好的概述。不过,您可能想复制一份空白网站定义,重命名它,然后在您的工作中使用它。

    内容页面的功能

    为此,您需要三种类型的东西:

    1. feature.xml 文件——只是引用元素清单的样板文件。
    2. 页面模板 -- 这可能是整个 aspx 页面本身,也可能是(例如)定义了 WebPartZones 但还没有实际 Web 部件的 Web 部件页面的外壳。
    3. 元素清单文件,它引用您的页面模板并定义应在激活您的功能时提供的任何 Web 部件。

    您的功能的文件夹结构如下所示:

    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 书。它详细介绍了这个主题,包括网站内容页面的重要安全方面。物超所值。

    【讨论】:

    • 嗨,克里斯,感谢您的回复。我想我想要一个内容页面,因为我可能想要为每个站点定制一个页面版本。您链接到的文章显示了如何将该功能装订到站点定义,但我不确定如何创建该功能。 Windows SharePoint Services 3.0 Web 部件使用 Visual Studio 2005 扩展 (msdn.microsoft.com/en-us/library/aa973249.aspx) 展示了如何使用 Visual Studio 创建 Web 部件和功能,但我应该在代码中编写什么来创建内容页面? ——
    • 太好了!正是我想要的。所以我创建了所有文件并使用 stsadm 工具安装了该功能,但它没有显示在“网站功能”或“网站集功能”下。我读了一些关于解决方案文件的内容。这是我需要的东西吗?这似乎很难做到。
    • 其实上面的功能确实出现了。这是订书机功能,没有
    • 您应该能够在没有 wsp 解决方案文件的情况下执行此操作。您的功能是否位于服务器上模板/功能文件夹下的正确位置?对于解决方案文件的创建,我真的很喜欢 STSDEV。我很久以前就开始使用它了,所以现在可能有更好的工具,但值得一看。
    • 您可能想提出另一个问题来帮助您找到订书机功能,因为它对于这个特定的功能来说非常离题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2011-01-18
    • 2016-01-06
    • 1970-01-01
    相关资源
    最近更新 更多