Domanda

Sono totalmente nuovo su Sharepoint (2007), quindi per favore abbiate pazienza. Vorrei creare automaticamente pagine aspx quando viene creato un nuovo sito. Queste pagine saranno collegate tramite schede che saranno definite da una pagina principale. Non ho una definizione del sito personalizzata e stavo pianificando di applicare la pinzatura delle funzionalità alla definizione del sito vuota pronta all'uso.

Attraverso la mia ricerca, penso che tu possa creare una pagina web part e trasformarla in una funzionalità. Posso quindi pinzare questo alla definizione del sito vuoto. Il problema è che non ho trovato alcuna informazione su come farlo. Quindi le due domande che ho sono:

  1. Come posso creare una funzione che è solo una pagina aspx?
  2. Come posso fissare questa funzione a una definizione del sito vuota?

Ho trovato una persona che fa la stessa domanda qui: Come aggiungere una pagina web part alla definizione di un sito? Ho letto la prima risposta ma in qualche modo mi viene in mente e non so se risponda davvero alla mia domanda.

Grazie mille!

È stato utile?

Soluzione

La risposta alla tua prima domanda dipende dal fatto che tu intenda pagine dell'applicazione o pagine di contenuto . Ognuno di essi ha i suoi vantaggi: le pagine dell'applicazione sono buone in quanto possono eseguire codice lato server personalizzato e le pagine di contenuto sono belle perché (ad esempio) possono essere personalizzate dagli utenti, ma per impostazione predefinita sono limitate in quale tipo di codice può essere eseguire.

Per una discussione abbastanza valida sulle differenze tra i due tipi di funzionalità e restrizioni, controlla l'SDK di Windows SharePoint Services e guarda gli argomenti chiamati " Tipo di pagina _layouts applicazione " e " Tipo di pagina del contenuto . "

Per quanto riguarda la pinzatura, è piuttosto semplice e più flessibile dell'aggiunta di nuove funzionalità al file onet.xml di una definizione del sito. Questo articolo sembra una buona panoramica delle alternative. Potresti voler fare una copia della definizione del sito vuota, rinominarla e quindi usarla nel tuo lavoro,

Funzionalità con pagine di contenuti

Per questo avrai bisogno di tre tipi di cose:

  1. Un file feature.xml - solo il materiale boilerplate che fa riferimento all'elemento manifest.
  2. Un modello di pagina: potrebbe trattarsi dell'intera pagina aspx o potrebbe essere (ad esempio) una shell di una pagina web part con WebPartZones definita ma nessuna web part effettiva (ancora) .
  3. Il file manifest dell'elemento che fa riferimento ai modelli di pagina e definisce tutte le web part che devono essere fornite come parte dell'attivazione della funzione.

La struttura delle cartelle della tua funzione sarebbe simile a questa:

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>

Se configuri la tua funzionalità in quel modo, dovresti essere in grado di distribuire pagine di contenuto del sito all'interno di quella struttura.

Inoltre, consiglio vivamente il libro Inside Windows SharePoint Services di Ted Pattison. Tratta questo argomento in modo molto dettagliato, compresi gli importanti aspetti di sicurezza delle pagine dei contenuti del sito. Vale facilmente il prezzo di acquisto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top