Procédure : créer une définition de site personnalisée et une configuration
Dernière modification : mercredi 2 février 2011
S’applique à : SharePoint Foundation 2010
La création d’une définition de site personnalisé ne fait appel à aucun code de procédure. Il s’agit d’une tâche de développement entièrement déclarative. Elle consiste essentiellement à ajouter un balisage Langage CAML (Collaborative Application Markup Language) à deux fichiers critiques : un fichier WebTemp*.xml et un fichier Onet.xml. Dans certains scénarios, vous pouvez également créer une ou plusieurs pages de site personnalisé. Si vous souhaitez vous assurer que votre type de site personnalisé est prêt pour la globalisation, vous pouvez également utiliser un ou plusieurs fichiers de ressources (.resx).
Parfois, un type de site personnalisé est une recombinaison de types de liste, de contenu et de colonne prédéfinis et d’autres fonctionnalités différentes du type de site intégré. Mais le plus souvent, si votre solution Microsoft SharePoint Foundation nécessite un nouveau type de site, il est probable qu’elle fera également intervenir un ou plusieurs types de contenu, de champ et de liste personnalisés, de composants WebPart, d’adaptateurs de composants WebPart mobiles et de modèles de document personnalisés, etc. Vous devez commencer par mener à bien tous ces types de projets de développement secondaires pour pouvoir faire référence à ces éléments dans le balisage de votre définition de site personnalisé.
Pour configurer le projet
Dans Microsoft Visual Studio, créez un projet Définition du site dans la section SharePoint | 2010 des modèles de projet. Faites-en une solution de batterie de serveurs, et non une solution en bac à sable (sandbox). Attribuez-lui un nom qui servira également de nom interne de la définition du site. Les utilisateurs ne verront pas ce nom. Par convention, les définitions de site sont nommées exclusivement avec des lettres majuscules et ne comportent ni espaces, ni tout autre caractère. Si vous prévoyez de spécifier plusieurs configurations dans votre définition de site, ne perdez pas de vue que ce terme représente le nom de famille des types de sites personnalisés. Il doit donc convenir pour ce rôle. Dans cette rubrique, le nom RESEARCH est utilisé dans un exemple continu.
Notes
Dans le projet Visual Studio Définition du site et la présente documentation, il est généralement considéré que vous disposez d’une seule définition de site (c.-à.-d., un seul élément Template dans le fichier WebTemp*.xml même si, encore une fois, vous pouvez disposer de plusieurs types de sites personnalisés (à savoir, plusieurs configurations dans la définition de site). Néanmoins, un même fichier WebTemp*.xml peut comporter plusieurs définitions de site. Dans ce cas, vous pouvez attribuer à votre projet un nom encore plus générique, par exemple le nom de votre société. De même, si un même fichier WebTemp*.xml contient plusieurs définitions de site, vous devez ajouter des fichiers Onet.xml distincts à votre projet Visual Studio pour chaque définition de site et répéter la procédure ci-dessous intitulée « Pour configurer un fichier Onet.xml » pour chaque définition de site, car chacune doit posséder son propre fichier Onet.xml. Vous devrez également vous assurer que le package de solution les déploie chacune dans leur propre sous-répertoire de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. Chaque sous-répertoire doit avoir le même nom que l’attribut Name de l’élément Template correspondant dans le fichier WebTemp*.xml.
En principe, un projet de définition de site ne comporte pas de code et ne doit contenir aucun assembly. Cependant, par défaut, Visual Studio compile toujours un assembly pour chaque projet. Même si l’assembly ne contient pas de classes en l’absence de code dans le projet, Visual Studio le déploie (à nouveau) par défaut avec le package de solution. Autrement dit, un assembly inutile est ajouté au Global Assembly Cache. Ainsi, à moins que vous n’ajoutiez des éléments à votre projet qui sont compilés dans un assembly, vous avez tout intérêt à désactiver ce comportement Visual Studio par défaut. Sinon, votre solution déploiera un assembly inutile qui risque de dérouter les administrateurs de batterie de serveurs ou toute personne chargée de déboguer un déploiement SharePoint. Sélectionnez le nom du projet dans l’Explorateur de solutions. Une fenêtre Propriétés s’ouvre. Attribuez à la propriété Inclure un assembly dans le package la valeur false.
Pour configurer un fichier WebTemp*.xml
Ouvrez le fichier WebTemp*.xml dans l’Explorateur de solutions. Dans l’exemple continu, il s’agit du fichier WebTemp_RESEARCH.xml.
Conseil Il peut être utile d’avoir le fichier intégré WebTemp.xml ouvert comme modèle au moment d’exécuter cette procédure. Il se trouve dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\lcid\XML, où lcid est l’ID numérique de la langue/culture (p.ex., 1033 pour l’anglais). Le fichier que vous créez sera fusionné avec le fichier intégré. Veillez à ne pas modifier le fichier intégré. Le nom de votre fichier personnalisé doit correspondre au modèle WebTemp*.xml.
Modifiez l’attribut ID de l’élément Template en lui attribuant une valeur supérieure ou égale à 10 000. Vous serez ainsi assuré que l’ID n’entrera pas en conflit avec des définitions de site futures produites par Microsoft. Si votre batterie de serveurs cible comporte d’autres définitions de site personnalisé, assurez-vous que chacune possède un ID unique.
Un élément Configuration par défaut se trouve dans l’élément Template. Si votre définition de site doit comporter plusieurs configurations (c’est-à-dire, si elle représente une famille de types de sites apparentés), copiez l’élément Configuration de telle sorte qu’il en existe un pour chaque type de site personnalisé dont vous avez besoin dans la famille. Dans l’exemple continu, il existe deux configurations. Pour plus d’informations sur l’utilité d’avoir plusieurs configurations dans une même définition de site, voir Choix entre plusieurs définitions ou plusieurs configurations.
Conservez la valeur 0 de l’attribut ID de l’élément d’origine Configuration, mais renumérotez les copies que vous avez créées dans l’ordre en commençant par 1.
Modifiez l’attribut Title et l’attribut Description de chaque élément Configuration en leur attribuant une valeur appropriée à vos configurations de site personnalisé. Il s’agit des noms et des descriptions qui apparaissent dans l’interface utilisateur lorsque les utilisateurs créent de nouveaux sites Web.
Si vous voulez qu’une image personnalisée apparaisse dans l’interface utilisateur en tant que symbole de votre type de site personnalisé lorsque des utilisateurs créeront des sites à partir de vos configurations de site personnalisé, modifiez la valeur des attributs ImageUrl comme il se doit.
Modifiez la valeur de DisplayCategory pour chaque élément Configuration, le cas échéant. Cette valeur définit le nom de la catégorie sous laquelle la configuration de site apparaît dans l’interface utilisateur lorsqu’un utilisateur crée un site Web. Dans de nombreux cas, il est judicieux d’utiliser la chaîne que vous avez utilisée pour l’attribut Name de l’élément Template. Une autre possibilité consiste à utiliser le nom de votre société. Vous pouvez également utiliser l’une ou l’autre des chaînes prédéfinies « Collaboration » ou « Réunions ». Nous vous recommandons de ne pas utiliser « Personnalisé ». Par défaut, la catégorie « Personnalisé » contient des modèles Web et non des configurations de définition de site, et les administrateurs tiennent peut-être à conserver ce modèle.
L’attribut Hidden doit avoir la valeur FALSE dans tous les éléments Configuration.
Pour plus d’informations sur la personnalisation du fichier WebTemp*.xml, voir Présentation des fichiers Web*Temp.xml et Templates, élément (Site).
L’exemple suivant illustre un fichier WebTemp_RESEARCH.xml personnalisé. Ce fichier utilise deux éléments Configuration pour définir des configurations de définition de site différentes : une pour un site de collaboration de recherche (Research Collaboration site) et l’autre pour un site d’espace de travail de documents de recherche (Research Document Workspace). Les deux définitions de site apparaîtront dans l’interface utilisateur dans une catégorie intitulée « Research & Development » (Recherche et développement).
<?xml version="1.0" encoding="utf-8" ?>
<Templates xmlns:ows="Microsoft.SharePoint">
<Template Name="RESEARCH" ID="10001">
<Configuration ID="0" Title="Research Collaboration site"
Hidden="FALSE" ImageUrl="_layouts/images/stsprev.jpg"
Description="This definition creates a site for the Research
team to create, organize, and share general information."
DisplayCategory="Research & Development">
</Configuration>
<Configuration ID="1" Title="Research Document Workspace" Hidden="FALSE"
ImageUrl="_layouts/images/dwsprev.jpg" Description="This
definition creates a site for Research team colleagues to
work together on specific documents."
DisplayCategory="Research & Development">
</Configuration>
</Template>
</Templates>
Notes
Dans le modèle objet Microsoft SharePoint Foundation, une configuration de définition de site et sa définition de site parent sont représentées par un objet Microsoft.SharePoint.SPWebTemplate. La propriété Name de cet objet concatène le nom de la définition et l’ID de configuration en plaçant un symbole « # » entre les deux. Ainsi, dans l’exemple précédent, les deux configurations de définition de site seraient nommées « RESEARCH#0 » et « RESEARCH#1 ».
Pour configurer un fichier Onet.xml
Ouvrez le fichier Onet.xml dans l’Explorateur de solutions.
Comme vous avez décidé de créer une définition de site plutôt qu’un modèle Web, vous devez effectuer au moins une des opérations représentées par les éléments à puces suivants, ce que vous ne pouvez pas faire avec les modèles Web. (Pour plus d’informations sur l’utilité de créer une définition de site personnalisé ou un modèle Web, voir Choix entre modèles Web personnalisés et définitions de site personnalisées.)
Enregistrez un pied de message électronique personnalisé qui figurera dans les messages électroniques qui sont envoyés à partir des sites Web créés à partir de votre définition de site personnalisé. Pour ce faire, ajoutez un élément ServerEmailFooter en tant qu’enfant de l’élément Project. Pour plus d’informations, voir ServerEmailFooter, élément (Site).
Configurez votre type de site personnalisé de sorte qu’il utilise un post-processeur de boîte de dialogue de fichier personnalisé ou un fournisseur de sécurité externe personnalisé. Pour ce faire, ajoutez un élément Components en tant qu’enfant de l’élément Project. Pour plus d’informations, voir Components, élément (Site) et les rubriques relatives à ses éléments enfants.
Enregistrez un type de document personnalisé afin de l’utiliser dans les bibliothèques de documents des sites Web qui sont créés à partir de votre définition de site personnalisé. Pour cela, exécutez les étapes suivantes.
Ajoutez un élément DocumentTemplates en tant qu’enfant de l’élément Project, et ajoutez un élément DocumentTemplate en tant qu’enfant de l’élément DocumentTemplates.
Conférez à l’attribut Path de l’élément DocumentTemplate le nom que vous avez utilisé pour la valeur de l’attribut Name de l’élément Template de votre fichier WebTemp*.xml personnalisé. Dans notre exemple, vous utiliseriez « RESEARCH ».
Conférez à l’attribut Type de l’élément DocumentTemplate une valeur supérieure ou égale à 10 000 pour éviter qu’il n’entre en conflit avec les futurs modèles de document créés par Microsoft.
Conférez à l’attribut DisplayName et à l’attribut Description de l’élément DocumentTemplate les valeurs appropriées.
Si nécessaire, ajoutez et définissez les autres attributs possibles de l’élémentDocumentTemplate. Pour plus d’informations, voir Procédure : ajouter un modèle de document, un type de fichier et une application d'édition à une définition de site, DocumentTemplate, élément (Site) et DocumentTemplates, élément (Site).
Ajoutez un élément enfant DocumentTemplateFiles au nouvel élément DocumentTemplate. Ajoutez-lui ensuite au moins un élément enfant DocumentTemplateFile et définissez ses attributs. Pour plus d’informations, voir Procédure : ajouter un modèle de document, un type de fichier et une application d'édition à une définition de site et DocumentTemplateFile, élément (Site).
Répétez les étapes précédentes pour chaque modèle de document personnalisé inclus dans votre définition de site personnalisé. Chaque élément DocumentTemplate doit disposer d’une valeur d’attribut Type différente. Vous enregistrerez les modèles de document prédéfinis de votre type de site personnalisé dans une étape ultérieure.
Conférez aux attributs suivants de l’élément Project des valeurs appropriées. (Seuls les attributs Title et ListDir sont obligatoires, et la valeur de ListDir peut être une chaîne vide.)
ListDir
Revision
SiteLogoUrl
SiteLogoDescription
Title
N’utilisez pas l’attribut UIVersion. Pour plus d’informations sur ces attributs, voir Project, élément (Site).
Si vous voulez enregistrer des modèles de document prédéfinis afin de les utiliser dans vos sites personnalisés, exécutez ces étapes.
Si vous ne l’avez pas déjà fait dans une étape précédente, ajoutez un élément DocumentTemplates en tant qu’enfant de l’élément Project.
Copiez les éléments DocumentTemplate nécessaires à partir du fichier Onet.xml pour le site d’équipe standard, situé dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\SiteTemplates\sts\XML, et collez-les dans votre élément DocumentTemplates.
Ajoutez autant d’éléments Configuration à l’élément Configurations qu’il y a d’éléments Configuration dans le fichier WebTemp*.xml personnalisé que vous avez créé dans la procédure précédente.
Définissez l’attribut ID de chaque élément Configuration avec des nombres consécutifs, en commençant par 0. Au moment d’apporter d’autres modifications aux éléments Configuration, ne perdez pas de vue que la configuration dans le fichier Onet.xml spécifie les détails de la configuration du fichier WebTemp*.xml qui partage le même numéro d’ID. Ainsi, dans l’exemple continu, la configuration 0 dans le fichier Onet.xml donne les détails de la configuration du site « Research Collaboration » dans le fichier WebTemp_Research.xml, tandis que la configuration 1 spécifie les détails de la configuration de « Research Document Workspace ».
Définissez l’attribut Name de chaque élément Configuration. La valeur de l’attribut Name ne doit pas nécessairement correspondre à la valeur de l’attribut Title de la configuration correspondante dans le fichier WebTemp*.xml. Par convention, le premier est un acronyme du dernier. Dans l’exemple continu, les configurations 0 et 1 ont pour nom respectif « RC » et « RDW ».
Dans chaque élément Configuration, ajoutez autant d’éléments enfants List que nécessaire à l’élément Lists de sorte que chaque site Web créé à partir de l’une de vos configurations soit automatiquement créé avec les listes souhaitées. (Si l’élément Lists est au départ une balise d’élément vide, <Lists />, divisez-le en balises de début et de fin : <Lists></Lists>.)
Dans le cas des types de liste prédéfinis, copiez l’élément List de l’un des fichiers Onet.xml prédéfinis dans les dossiers descendants de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. Pour vos types de liste personnalisés, vous devez construire un élément List. Par exemple, si vous définissez un type de liste intitulé « My_custom_list » avec un attribut Type de valeur 10 001, vous pouvez ajouter <List Title="My_Custom_List" Type="10001" Url="Lists/My_Custom_List" FeatureId="guid"/> pour créer l’élément Lists. L’attribut Url contient l’URL du dossier contenant la définition de chaque liste, qui comprend les fichiers ASPX, Schema.xml, et les fichiers éventuellement associés. Lorsqu’il est spécifié, l’attribut QuickLaunchUrl contient le chemin d’accès complet au fichier AllItems.aspx correspondant à une liste, qui affiche la liste dans la zone Lancement rapide. Pour plus d’informations sur l’enregistrement d’une liste dans une configuration de définition de site, voir List, élément (Site) et Bloc de construction : listes et bibliothèques de documents.
Dans chaque élément Configuration, ajoutez autant d’éléments Module enfants que nécessaire dans l’élément Modules de sorte que chaque site Web créé à partir de l’une de vos configurations soit automatiquement créé avec les fichiers dont il a besoin. Chaque module auquel vous faites référence dans une configuration doit être défini dans l’élément Modules principal qui figure également dans le fichier Onet.xml, mais qui se trouve en dehors de l’élément Configurations. Pour plus d’informations sur l’enregistrement de modules dans un fichier Onet.xml, voir Module, élément (Site) et Modules.
Dans chaque élément Configuration, ajoutez autant d’éléments Feature enfants que nécessaire dans l’élément SiteFeatures et l’élément WebFeatures de sorte que chaque site Web créé à partir de l’une de vos configurations soit créé automatiquement avec les fonctionnalités dont il a besoin et que celles-ci sont activées. Utilisez l’élément SiteFeatures pour enregistrer les fonctionnalités qui s’étendent à la collection de sites. Utilisez WebFeatures pour enregistrer les fonctionnalités qui s’étendent au site Web. Les fonctionnalités que vous enregistrez, y compris les fonctionnalités personnalisées que vous créez, doivent déjà être déployées dans un sous-dossier de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES au moment où un site Web est créé à partir de votre configuration de définition de site. Par exemple, vous pouvez ajouter un type de contenu, comme décrit dans Procédure : ajouter un type de contenu à un site, ou un type de colonne, comme décrit dans Procédure : ajouter une colonne à un site. Pour enregistrer des fonctionnalités intégrées fournies avec SharePoint Foundation, vous pouvez copier des éléments Feature à partir de l’élément SiteFeatures et de l’élément WebFeatures dans des fichiers Onet.xml prédéfinis situés dans des dossiers descendants de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. Pour plus d’informations sur l’enregistrement de fonctionnalités, voir WebFeatures, élément (Site), SiteFeatures, élément (Site).
L’exemple ci-dessous illustre un élément Configurations qui prolonge l’exemple continu.
<Configurations> <Configuration ID="0" Name="RC"> <Lists> <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="$Resources:core,shareddocuments_Title;" Url="$Resources:core,shareddocuments_Folder;" QuickLaunchUrl="$Resources:core,shareddocuments_Folder;/Forms/AllItems.aspx" /> <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" Type="108" Title="$Resources:core,discussions_Title;" Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;/AllItems.aspx" EmailAlias="$Resources:core,discussions_EmailAlias;" /> <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" Type="104" Title="$Resources:core,announceList;" Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;"> <Data> <Rows> <Row> <Field Name="Title">$Resources:onetid11;</Field> <Field Name="Body">$Resources:onetid12;</Field> <Field Name="Expires"><ows:TodayISO/></Field> </Row> </Rows> </Data> </List> <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" Type="103" Title="$Resources:core,linksList;" Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" Type="106" Title="$Resources:core,calendarList;" Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" EmailAlias="$Resources:core,calendar_EmailAlias;" /> <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" Type="107" Title="$Resources:core,taskList;" Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;/AllItems.aspx" /> </Lists> <Modules> <Module Name="Default" /> </Modules> <SiteFeatures> <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> </SiteFeatures> <WebFeatures> <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> </WebFeatures> </Configuration> <Configuration ID="1" Name="RDW"> <Lists> <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" Type="101" Title="$Resources:core,shareddocuments_Title;" Url="$Resources:core,shareddocuments_Folder;" /> <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" Type="108" Title="$Resources:core,discussions_Title;" Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" /> <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" Type="104" Title="$Resources:core,announceList;" Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;"> <Data> <Rows> <Row> <Field Name="Title">$Resources:onetid11;</Field> <Field Name="Body">$Resources:onetid12;</Field> <Field Name="Expires"><ows:TodayISO/></Field> </Row> </Rows> </Data> </List> <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" Type="103" Title="$Resources:core,linksList;" Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" Type="106" Title="$Resources:core,calendarList;" Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" /> <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" Type="107" Title="$Resources:core,taskList;" Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" /> </Lists> <Modules> <Module Name="DWS" /> </Modules> <SiteFeatures> <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> </SiteFeatures> <WebFeatures> <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> </WebFeatures> </Configuration> </Configurations>
Si vous souhaitez qu’une page spécifique s’ouvre automatiquement pour les utilisateurs qui créent un site à partir de votre configuration de définition de site, ajoutez un élément ExecuteUrl à l’élément Configuration. En règle générale, cet élément est utilisé pour ouvrir une page d’application personnalisée spécifique que vous avez créée et dans laquelle l’utilisateur peut définir certaines options en rapport avec votre type de site personnalisé. Pour plus d’informations sur cet élément, voir ExecuteUrl, élément (Site). Pour plus d’informations sur les pages d’application personnalisées, voir Type des pages d'application ou pages __layouts.
Ajoutez des éléments NavBar enfants dans l’élément NavBars pour personnaliser les zones de navigation des pages des sites Web créés à partir de votre définition de site personnalisé. Souvent, le moyen le plus simple d’effectuer cette opération est de copier les éléments NavBar dans l’un des fichiers Onet.xml prédéfinis dans les dossiers descendants de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. (L’élément NavBars s’applique aux sites Web basés sur n’importe quelle configuration de la définition de site.) Pour plus d’informations sur ce balisage, voir NavBar, élément (site).
Parmi les types de liste vulnérables qui figurent sur les sites de réunion ou blog, certains ont été créés avant l’introduction des fonctionnalités dans SharePoint Foundation. Ces types de liste sont spécifiés dans les éléments ListTemplate des fichiers Onet.xml pour les définitions de site MPS et BLOG. Si vous avez besoin de ces types de liste dans votre définition de site personnalisé, ajoutez un élément ListTemplates en tant qu’enfant de l’élément Project, puis copiez-le dans les éléments ListTemplate nécessaires à partir des fichiers Onet.xml MPS et BLOG. (N’ajoutez pas d’éléments ListTemplate personnalisés. Au lieu de cela, créez des listes personnalisées en tant que fonctionnalités et référencez-les dans un élément List enfant d’un élément Lists de l’élément Configuration, comme décrit dans une étape précédente.) Pour plus d’informations sur le balisage de modèles de liste, voir ListTemplate, élément (Site).
Ajoutez des éléments Module enfants dans l’élément Modules principal directement en dessous de l’élément Project de sorte que chaque fois qu’un site Web de votre type personnalisé est créé, il soit automatiquement mis en service avec les fichiers et les composants WebPart « tous utilisateurs » nécessaires. Les nouveaux modules que vous ajoutez doivent être référencés dans un élément Modules secondaire contenu dans un élément Configuration. Si un module n’est pas référencé dans au moins une configuration, il n’est pas utilisé. Pour enregistrer l’un des modules intégrés fournis avec SharePoint Foundation, vous pouvez copier l’élément Module correspondant à partir de l’un des fichiers Onet.xml prédéfinis contenus dans les dossiers descendants de %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. Pour plus d’informations sur le balisage de modules, voir Modules, élément (Site).
Si vous souhaitez que les pages de sites Web créées à partir de votre définition disposent d’une zone d’en-tête personnalisée spécifique, définissez l’attribut AlternateHeader de l’élément Project. Pour plus d’informations, voir Project, élément (Site).
Si vous souhaitez que les pages de sites Web créées à partir de votre définition possèdent des fonctions ECMAScript (code JavaScript ou Microsoft JScript) personnalisées (p.ex., personnalisation du menu Edition), définissez l’attribut CustomJSUrl de l’élément Project. Pour plus d’informations, voir Project, élément (Site).
Si vous voulez empêcher l’utilisation de certains types de fonctions de Microsoft SharePoint Designer ou d’autres applications de conception dans les pages des sites Web créés à partir de votre définition (p.ex., création d’une sauvegarde ou d’un sous-site), définissez l’attribut DisableWebDesignFeatures de l’élément Project. Pour plus d’informations, voir Project, élément (Site).
Vous pouvez créer des définitions de styles de feuilles de style en cascade (CSS) personnalisées à utiliser au niveau des sites Web créés à partir de votre définition. Pour cela, il convient de créer un fichier .css sous un nom unique dans %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\LCID\STYLES, où LCID est l’ID numérique de la langue/culture (p.ex., 1033 pour l’anglais). Dans ce nouveau fichier, copiez le contenu du fichier .css par défaut spécifié dans les pages .aspx de la définition de site, puis ajoutez ou mettez à jour les styles dans le nouveau fichier .css. Utilisez l’attribut AlternateCSS de l’élément Project pour spécifier le chemin d’accès au nouveau fichier .css. Voici un exemple :
AlternateCSS = "/_layouts/[%=System.Threading.Thread.CurrentThread.CurrentUICulture.LCID%]/styles/MyStyles.css">
Pour personnaliser les pages du site
Double-cliquez sur le fichier Default.aspx dans l’Explorateur de solutions. Vous pouvez le modifier à votre convenance, notamment en le pointant vers une page maître personnalisée. Pour plus d’informations sur la personnalisation les pages de site, voir le nœud Sites et pages.
Si des sites Web qui sont basés sur votre type de site personnalisé doivent disposer systématiquement d’autres types de pages lors de leur création, ajoutez au projet autant de pages aspx supplémentaires qu’il en faut. Pour ce faire, cliquez avec le bouton droit sur le nœud Définition du site (pas le nom du projet) dans l’Explorateur de solutions et ajoutez un fichier nommé custompage.aspx. Cet ajout est l’assurance que ce fichier sera enregistré dans le manifeste du package et déployé à l’emplacement approprié lors du déploiement de votre solution.
Si vous incluez une page maître personnalisée dans le cadre de votre solution, il est important de l’ajouter au projet de façon adéquate, de sorte que le manifeste de la solution la déploie à l’emplacement approprié. Cliquez avec le bouton droit sur le nom du projet dans l’Explorateur de solutions (et non sur le nœud Définition du site), pointez sur Ajouter, puis sélectionnez Dossier mappé SharePoint.
Dans la boîte de dialogue Ajouter un dossier mappé SharePoint, sélectionnez TEMPLATE\GLOBAL, puis cliquez sur OK.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud GLOBAL, puis ajoutez un nouveau fichier avec l’extension de nom de fichier .master. Le nouveau fichier est ainsi créé dans le nœud GLOBAL et enregistré dans le manifeste du package de solution.
Ouvrez la nouvelle page maître et ajoutez le balisage. Pour plus d’informations sur les pages maîtres personnalisées, voir Pages maîtres.
Pour déployer et tester la définition de site
Dans le menu Générer, sélectionnez Déployer la solution. Tous les fichiers sont alors automatiquement déployés à leur emplacement approprié et l’application Web est recyclée.
Conseil Si votre environnement de développement est une batterie multiserveur et non une installation monoserveur, Visual Studio ajoute la solution à la galerie de solutions de la batterie dans l’application Administration centrale, mais il ne la déploie pas. Déployez-la dans l’Administration centrale.
Ajoutez à votre batterie de déploiement un site basé sur l’une de vos configurations de définition de site personnalisé. Le ou les nouveaux types de sites doivent dès lors figurer dans l’interface utilisateur de création de sites. Dans l’exemple continu, Research Collaboration site et Research Document Workspace doivent figurer dans une catégorie appelée Research & Development.
Localisation définitions de site personnalisées
Pour plus d’informations sur la création de versions localisées de votre définition de site personnalisée, voir Procédure : créer des versions localisées de définitions de site personnalisées.
Voir aussi
Concepts
Types de site : modèles Web et définitions de site
Vue d’ensemble de la création de définitions de site personnalisées
Choix entre plusieurs définitions ou plusieurs configurations