代码之家  ›  专栏  ›  技术社区  ›  Mauro

将ContentTypes添加到具有SiteDefinition的列表

  •  1
  • Mauro  · 技术社区  · 14 年前

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

    我已经在下面的网站定义中包含了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> 
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Mauro    14 年前

    解决办法是

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

    <!-- 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>