1

使用 SharePoint 2010 和 Visual Studio,我创建了一个站点定义(从发布站点继承),它正确地创建了所有必需的列表,现在在“页面”文档库中包含页面实例。

页面使用正确的自定义页面布局和正确的内容类型,但是,因为“页面”库默认只接受文章、空白和欢迎页面,它不知道我的自定义内容类型,因此页面无法按预期工作。

我尝试在“添加列表”事件上添加 EventListener,但没有成功,调试甚至没有在我的断点处中断,我还尝试了添加列表、添加列表项和站点配置事件。这些似乎都没有按照我想要的方式工作。

我在下面包含了站点定义的 XML,如何将我的自定义内容类型添加到页面库中,这样我就不必手动添加它了?

<?xml version="1.0" encoding="utf-8"?>
<Project Title="Custom_Site_Definition" Revision="2" ListDir="" xmlns:ows="Microsoft SharePoint" xmlns="http://schemas.microsoft.com/sharepoint/">
  <NavBars>
    <NavBar Name="SharePoint Top Navbar" Url="/Site Template" ID="1002" />
<!-- removed -->
  </NavBars>
  <Configurations>
    <Configuration ID="0" Name="Custom_Site_Definition">
      <Lists />
      <WebFeatures>
        <!-- Include the common WSSListTemplateFeatures used by CMS -->
        <Feature ID="00BFEA71-DE22-43B2-A848-C05709900100" > </Feature>
        <Feature ID="00BFEA71-E717-4E80-AA17-D0C71B360101" > </Feature>
        <Feature ID="00BFEA71-52D4-45B3-B544-B1C71B620109" > </Feature>
        <Feature ID="00BFEA71-A83E-497E-9BA0-7A5C597D0107" > </Feature>
        <Feature ID="00BFEA71-4EA5-48D4-A4AD-305CF7030140" > </Feature>
        <Feature ID="00BFEA71-F600-43F6-A895-40C0DE7B0117" > </Feature>

        <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5">
        </Feature>



        <Feature ID="22A9EF51-737B-4ff2-9346-694633FE4416">
          <Properties xmlns="http://schemas.microsoft.com/sharepoint/">
            <Property Key="ChromeMasterUrl" Value=""/>
            <Property Key="WelcomePageUrl" Value="$Resources:osrvcore,List_Pages_UrlName;/at-a-glance.aspx"/>
            <Property Key="PagesListUrl" Value=""/>
            <Property Key="AvailableWebTemplates" Value=""/>
            <Property Key="AvailablePageLayouts" Value=""/>
            <Property Key="SimplePublishing" Value="true" />
          </Properties>
        </Feature>
        <Feature ID="541F5F57-C847-4e16-B59A-B31E90E6F9EA">
          <Properties xmlns="http://schemas.microsoft.com/sharepoint/">
            <Property Key="InheritGlobalNavigation" Value="true"/>
            <Property Key="ShowSiblings" Value="true"/>
            <Property Key="IncludeSubSites" Value="true"/>
          </Properties>
        </Feature>
        <Feature ID="94C94CA6-B32F-4da9-A9E3-1F3D343D7ECB">
          <!-- Office SharePoint Server Publishing -->
        </Feature>
      </WebFeatures>
      <Modules>
        <Module Name="Home" />
      </Modules>
    </Configuration>
  </Configurations>
  <Modules>
    <Module Name="Home" Url="$Resources:osrvcore,List_Pages_UrlName;" Path="">
      <File Url="at-a-glance.aspx" Type="GhostableInLibrary" Level="Draft" >
        <Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/Custom Article Page.aspx, $Resources:cmscore,PageLayout_WelcomeLinks_Title;" />
      </File>
<!-- removed -->
    </Module>
  </Modules>
</Project> 
4

1 回答 1

3

没关系,我明白了……最终

解决方案是

  1. 将功能添加到站点定义项目,并在其 elements.xml 文件中包含以下内容
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentTypeBinding ContentTypeId="0x010100899F73B9F6814EA9AED9876985F28B39" ListUrl="Pages" />
</Elements>

然后在onet.xml文件中添加特性依赖

<!-- Binds custom content types to Pages library.-->
<Feature ID="8290db1f-0a87-44f3-be22-28c61f9c8965">
</Feature>

最后在文件末尾添加模块中的每个页面(包括内容类型)

 <File Url="at-a-glance.aspx" Type="GhostableInLibrary" Level="Draft" >
        <Property Name="Title" Value="At a glance" />
        <Property Name="ContentType" Value="Custom_ContentTypes_Publishing - CustomFive" />
        <Property Name="PublishingPageLayout" Value="~SiteCollection/_catalogs/masterpage/Custom Article Page.aspx, $Resources:cmscore,PageLayout_WelcomeLinks_Title;" />
 </File>
于 2010-07-29T15:17:28.710 回答