Question

Je suis totalement nouveau dans Sharepoint (2007), alors supportez-moi s'il vous plaît. J'aimerais créer automatiquement des pages aspx lorsqu'un nouveau site est créé. Ces pages seront liées via des onglets qui seront définis par une page maître. Je n'ai pas de définition de site personnalisée et je prévoyais d'appliquer l'agrafage de fonctions à la définition de site vierge prête à l'emploi.

Grâce à mes recherches, je pense que vous pouvez créer une page de composant WebPart et en faire une fonctionnalité. Je peux ensuite agrafer ceci à la définition de site vierge. Le problème est que je n'ai trouvé aucune information sur la manière de procéder. Mes deux questions sont donc les suivantes:

  1. Comment créer une fonctionnalité qui n'est qu'une page aspx?
  2. Comment puis-je agrafer cette fonctionnalité à une définition de site vierge?

J'ai trouvé une personne qui posait la même question ici: Comment ajouter une page de composant WebPart à une définition de site? J'ai lu la première réponse, mais ça me dépasse un peu et je ne sais pas si cela répond vraiment à ma question.

Merci beaucoup!

Était-ce utile?

La solution

La réponse à votre première question varie selon que vous vouliez dire pages d'application ou pages de contenu . Ils ont chacun leurs avantages: les pages d’application sont efficaces en ce qu’elles peuvent exécuter un code personnalisé côté serveur et les pages de contenu sont agréables car (par exemple) elles peuvent être personnalisées par les utilisateurs, mais le type de code utilisé est limité par défaut. courir.

Pour une bonne discussion sur les différences entre les deux types de capacités et de restrictions, consultez le kit de développement logiciel (SDK) Windows SharePoint Services et consultez les rubriques "" Type de page d'application _layouts " et " Type de page de contenu ."

En ce qui concerne l'agrafage, il est assez simple et plus flexible que d'ajouter de nouvelles fonctionnalités au fichier onet.xml de la définition de site. Cet article semble être un bon aperçu des solutions de rechange. Vous voudrez peut-être faire une copie de la définition de site vide, la renommer puis l’utiliser dans votre travail.

Fonctionnalités avec des pages de contenu

Vous aurez besoin de trois types de choses pour cela:

  1. Un fichier feature.xml - uniquement le code général qui fait référence au manifeste de l'élément.
  2. Un modèle de page - il peut s’agir de la totalité de la page aspx elle-même ou d’un shell d’une page WebPart avec WebPartZones défini, mais aucun composant WebPart réel (pour le moment). .
  3. Le fichier de manifeste d'élément qui fait référence à vos modèles de page et définit les composants WebPart devant être fournis dans le cadre de l'activation de votre fonctionnalité.

La structure de dossiers de votre fonctionnalité ressemblerait à ceci:

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>

Si vous configurez votre fonctionnalité de cette manière, vous devriez pouvoir déployer des pages de contenu de site dans cette structure.

De plus, je recommande vivement le livre . Il aborde ce sujet de manière très détaillée, y compris les aspects importants de la sécurité des pages de contenu de site. Cela vaut facilement le prix d'achat.

scroll top