2010-07-29 9 views
1

L'utilisation de SharePoint 2010 et Visual Studio I a créé une définition de site (héritée du site de publication) qui crée correctement toutes les listes requises et inclut désormais des instances de page dans la bibliothèque de documents "Pages". Les Pages utilisent le pagelayout personnalisé correct et le type de contenu correct, cependant, parce que la bibliothèque "pages" n'accepte que les pages Article, Vierge et Bienvenue par défaut, elle ne connaît pas mes types de contenu personnalisés et donc la page ne l'est pas. fonctionne comme prévu. J'ai essayé d'ajouter un EventListener sur l'événement "List Added", sans succès, le débogage ne s'arrête même pas à mes points d'arrêt, j'ai aussi essayé les événements List Adding, List Item added et Site Provisioned. Aucun de ceux qui semblent fonctionner comme je le veux.Ajout de ContentTypes à une liste avec SiteDefinition

J'ai inclus le XML pour la définition de site ci-dessous, comment puis-je ajouter mes types de contenu personnalisés à la bibliothèque de pages afin que je n'aie pas à l'ajouter manuellement?

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

Répondre

3

Jamais esprit, je l'ai eu ... suite

solution a consisté à

  1. Ajouter une fonctionnalité au projet de définition du site avec ce qui suit dans son fichier elements.xml
<Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
    <ContentTypeBinding ContentTypeId="0x010100899F73B9F6814EA9AED9876985F28B39" ListUrl="Pages" /> 
</Elements> 

Puis ajouter une dépendance de fonctionnalité dans le fichier Onet.xml

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

et enfin à ajouter chaque page dans un module à la fin du fichier (y compris le type de contenu)

<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> 
+0

J'oublie toujours la capacité ContentTypeBinding. Merci d'avoir répondu à votre message et d'avoir fourni ces précieux commentaires. –