2009-01-13 6 views

Répondre

4

Pour créer la définition de liste personnalisée J'utilise toujours un peu construit dans la définition de la liste en tant que modèle.
Créez une nouvelle fonctionnalité puis copiez schema.xml (éventuellement d'autres fichiers si présents) à partir de la fonction existante et modifiez le fichier schema.xml directement avec un éditeur de texte. Je n'ai essayé aucun éditeur personnalisé pour cela et je fais toujours du travail avec les valeurs de copier-coller et de changement d'attributs.

dans les définitions de liste intégrée sont situés dans 12 ruche caractéristiques:

  • Liste personnalisée - Caractéristiques/CustomList/CustList/schema.xml;
  • Bibliothèque de documents - Fonctionnalités/DocumentLibrary/DocLib/schema.xml;
  • Calendrier - Feature/EventsList/Events/schema.xml;
  • Utilisez la recherche pour trouver d'autres.
3

Vous pouvez utiliser SharePoint manager pour sélectionner la liste pour laquelle vous souhaitez utiliser le schéma et l'utiliser comme modèle. Toute génération de schéma dépend du contexte car les GUID de tous les champs personnalisés seront spécifiques à cette collection de sites SharePoint, à moins qu'ils ne soient installés dans le cadre d'une fonctionnalité précédemment spécifiée (en s'appuyant sur un schéma XML déjà créé). Le gestionnaire SharePoint est un bon outil pour cela non pas parce qu'il est spécifique à ce problème, mais parce qu'il est un moyen très utile d'obtenir toutes sortes d'informations (comme le schéma) sur une instance SharePoint.

4

Ma recommandation, et ce qui vous rapproche le plus d'une version finale, est d'utiliser l'interface Web de SharePoint, de configurer votre liste comme vous le souhaitez, y compris les vues, les colonnes personnalisées, etc. un modèle. Le fichier .stp que vous obtenez est essentiellement un fichier .cab avec un nom drôle. Renommez en cab et extrayez le manifeste, qui inclura un fichier schema.xml presque prêt à l'emploi à utiliser.

Ce que vous devez changer est le chemin ou setuppath des formulaires de liste. Vous les trouverez au bas du fichier manifest.xml. Ces formulaires, si vous utilisez les listes SharePoint par défaut, peuvent être définis sur SetupPath = "pages/form.aspx". Voici un exemple de l'élément de formulaires de liste personnalisée:

<Form Type="DisplayForm" Url="DispForm.aspx" 
SetupPath="pages\form.aspx" WebPartZoneID="Main" /> 
    <Form Type="EditForm" Url="EditForm.aspx" 
SetupPath="pages\form.aspx" WebPartZoneID="Main" /> 
    <Form Type="NewForm" Url="NewForm.aspx" 
SetupPath="pages\form.aspx" WebPartZoneID="Main" /> 

Vous devez également mettre à jour le chemin de View pour chaque point de vue, qui devrait être SetupPath = « pages/viewpage.aspx » si vous utilisez les formulaires par défaut dans votre original site.

Notez que vous devez également modifier d'autres attributs, mais si vous vous assurez de suivre le schéma wss.xsd et que votre schéma personnalisé schema.xml valide le schéma wss.xsd, cela devrait vous convenir.

.B

3

J'utilise toujours les extensions STSADM de Gary Lapointes pour extraire ce genre de choses. C'est-à-dire que je le crée d'abord en utilisant l'interface graphique, puis en extrayant des listes, des types de contenu, des colonnes de site, etc. en utilisant la méthode appropriée.

Consultez la liste des extensions de Gary dans STSADM/PowerShell Commands.

0

Ajoutant à la réponse de EG, si vous voulez seulement changer les champs attachés à une liste existante (mais laisser les vues, etc. essentiellement les mêmes), vous devrez changer les choses à deux endroits: List/MetaData/Fields, et List/MetaData/Views/View/ViewFields.

La section Champs est relativement simple, en supposant que vous suivez the documentation. Pour obtenir l'affichage des colonnes dans une vue donnée, vous devez modifier la section ViewFields pour une vue donnée.

Par exemple, si vous avez des colonnes nommées Titre, Auteur et éditeur que vous voulez afficher dans la vue, trouver la section ViewFields de ce point de vue et de le modifier comme suit:

<ViewFields> 
    <FieldRef Name="Title" /> 
    <FieldRef Name="Author" /> 
    <FieldRef Name="Publisher" /> 
</ViewFields> 

Ces champs (et seuls les champs) devrait alors s'afficher dans cette vue.

1

Le gros problème avec tous les fichiers schema.xml que vous copieriez normalement est que 90% du code réside dans les différents éléments de vue. Il existe une solution extrêmement simple pour cela: utilisez l'un des ViewStyles par défaut.

Voici un schéma minimaliste simple et lisible pour commencer. Lire http://mo.notono.us/2009/02/moss-dreaded-schemaxml.html pour plus de détails. À moins que vous avez vraiment, vraiment besoin de modifier le code html rendu, ne prenez pas la peine de jouer avec la vue Caml:

<?xml version="1.0" encoding="utf-8"?> 
<List xmlns:ows="Microsoft SharePoint" Id="{AB426CDE-98F2-432A-B296-880C7931DEF3}" 
    Title="Setting" Url="Lists/Setting" BaseType="0" 
    FolderCreation="FALSE" DisableAttachments="TRUE" VersioningEnabled="FALSE" 
    Direction="$Resources:Direction;" 
    xmlns="http://schemas.microsoft.com/sharepoint/"> 
     <MetaData> 
       <Fields> 
        <Field Type="Text" Name="Title" DisplayName="Name" Required="TRUE" /> 
        <Field Type="Text" Name="Value" DisplayName="Value" Required="TRUE" /> 
       </Fields> 
       <Views> 
        <View BaseViewID="0" Type="HTML" WebPartZoneID="Main" DisplayName="All Items" DefaultView="TRUE" 
         MobileView="True" MobileDefaultView="False" SetupPath="pages\viewpage.aspx" 
         ImageUrl="/_layouts/images/issues.png" Url="AllItems.aspx"> 
          <ViewStyle ID="17"/> 
          <RowLimit Paged="TRUE">100</RowLimit> 
          <Toolbar Type="Standard" /> 
          <ViewFields> 
            <FieldRef Name="Edit" /> 
            <FieldRef Name="Title"/> 
            <FieldRef Name="Value"/> 
          </ViewFields> 
          <Query> 
            <OrderBy> 
             <FieldRef Name="Title"/> 
            </OrderBy> 
          </Query> 
        </View> 
       </Views> 
       <Forms> 
        <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" /> 
        <Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" /> 
        <Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" /> 
       </Forms> 
       <DefaultDescription>Settings used in the application.</DefaultDescription> 
     </MetaData> 
</List> 
1

Moi-même et Rich Finn ont écrit un outil appelé SPSource qui rétroconcevrait listes Liste modèles, types de contenu et les colonnes du site. S'il vous plaît vérifier au http://spsource.codeplex.com/ il existe des guides d'utilisateur détaillés et webcasts pour vous montrer comment l'utiliser.

0

Créez la liste que vous souhaitez développer dans votre environnement de développement local à l'aide des options du navigateur. Enregistrez le site en tant que modèle. Téléchargez-le dans le système de fichiers local.

Créez maintenant un nouveau projet Visual Studio avec un modèle, importez à partir d'un package de solution. Recherchez le package de solution stocké sur le système de fichiers. Maintenant, quand vous voyez la solution, vous trouverez la liste créée par vous. Le fichier schema.XML sera situé dans la définition de la liste. Copiez le contenu du type de contenu, des champs et des vues et collez-le dans votre fichier schema.xml.

Questions connexes