none
Comment gérer les web part dans les modèles de pages ? RRS feed

  • Question

  • Bonjour,

    Dans le cadre développement dans une solution SharePoint, j’ai besoin de mettre des web part dans des modèles de page et de pouvoir modifier leur contenu dans le site, le problème c’est que quand j’insert des webpart dans les modèle de page, le site il ne me donne pas la main de changer le contenu des web part, ou s’il est possible d’insérer un zone web part vierge  avec un web part par défaut et d’avoir la possibilité de le changer à partie du site

    Merci d’avance

     

    mardi 7 octobre 2008 17:46

Toutes les réponses

  • Il faut que tu ajoute une WebPartZone dans ta Page Layout et que tu definisse les WebPart à instancier par défaut dans cette zone en ajoutant leur XML de définition (export de ta webpart en .dwp ou .webpart) dans le noeud XML AllUsersWebPart de la définition de ta page layout.

     

    Exemple:

    <Module Name="Default" Url="" Path="">
       <File Url="default.aspx" NavBarHome="True">
          <View List="104" BaseViewID="0" WebPartZoneID="Left"/>
          <View List="106" BaseViewID="0" WebPartZoneID="Left" WebPartOrder="2"/>
          <AllUsersWebPart WebPartZoneID="Right" WebPartOrder="1">
             <![CDATA[
                <WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" xmlns:iwp="http://schemas.microsoft.com/WebPart/v2/Image">
                   <Assembly>Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>
                   <TypeName>Microsoft.SharePoint.WebPartPages.ImageWebPart</TypeName>
                   <FrameType>None</FrameType>
                   <Title>Site Image</Title>
                   <iwp:ImageLink>/_layouts/images/homepage.gif</iwp:ImageLink>
                </WebPart>
              ]]>
          </AllUsersWebPart>
          <View List="103" BaseViewID="0" WebPartZoneID="Right" WebPartOrder="2"/>
          <NavBarPage Name="Home" ID="1002" Position="Start">  </NavBarPage>
          <NavBarPage Name="Home" ID="0" Position="Start">  </NavBarPage>
       </File>
    </Module>
    
    mercredi 8 octobre 2008 09:45
  • Merci, mais si il est possible de expliquer what to do step by step.

    par exemple : je veux ajouter par défaut le web part MSImage.dwp dans le webpartZone qui se trouve dans la page layout Product.aspx

    Merci encore une fois

     

    mercredi 8 octobre 2008 11:30
  • Il faut d'abord ajouter ta WebPartZone dans la page Product.aspx à l'endroit désiré

    Code Snippet

     

    <WebPartPages:WebPartZone runat="server" Title="Ma WebPart Zone" ID="MaZone">
    <ZoneTemplate></ZoneTemplate>    
    </WebPartPages:WebPartZone>
    

     

     

     

    Ensuite tu dois certainement avoir un fichier XML qui définit ta Page Layout (qui lie le Product.aspx avec un content type entre autres) Cette définition XML doit contenir un noeud à l'intérieur duquel il te faut ajouter un noeud AllUsersWebPart de la manière suivante

     

    Code Snippet

    <AllUsersWebPart WebPartZoneID="MaZone" WebPartOrder="1">
             <![CDATA[
    ICI LE XML CONTENU DANS TON MSImage.dwp            

              ]]>
          </AllUsersWebPart>

     

     

    J'espère que cela va t'aider.
    mercredi 8 octobre 2008 12:00
  • Merci c’est claire, Just ou je peu trouver la définition XML de mon Page layout  (Product.aspx)

     

    mercredi 8 octobre 2008 14:37
  •  

    D'après ta question, je crois comprendre que tu as déployé ta Page Layout en l'uploadant directement dans l'interface. La technique dont je te parles implique de déployer ta page via une Feature.

     

    Cet article explique comment deployer masterpage et page layout par Feature: http://spreflections.wordpress.com/2008/09/24/deploy-master-page-and-page-layout-as-a-feature/

    jeudi 9 octobre 2008 07:37
  • Ma page layouts est crée par SharePoint designer

     

    jeudi 9 octobre 2008 13:57