Bonjour;
La classe SPContentType est une classe "Sealed", donc on ne peut pas hériter de cette classe. A-t-on un autre moyen pour créer un ContentType personnel ?
Merci.
Bonjour;
La classe SPContentType est une classe "Sealed", donc on ne peut pas hériter de cette classe. A-t-on un autre moyen pour créer un ContentType personnel ?
Merci.
bonjour,
content type personalisé je le met en place en suivant cette logique:
1- je rajoute des colonne (personalisé) au site
2- je crée un nouveau contenttype
3- je rajoute mes colonnes personnalisé
4- je désactive le content type par défaut
voila j'espere que ca va t'aider avancer
a+
Tu peux le faire en xml via feature, tu hérites du contentType parent et ensuite tu rajoutes tes colonnes.
Tu trouveras plein d'information sur la msdn.
Kaabi> J'ai plusieurs clients qui vont utiliser ma solutions. Donc c'est pas pratique de leur demander à tous de créer manuelement mon ContentType.
han75> La classe SPContentType est une classe Sealed ----> on ne peut hériter de cette classe.
D'autres idées ?
Non je crois que tu n'as pas compris ce que j'ai voulu dire.
Lorsque je dis dérive d'un contentType je parle via feature pas en C# ou autre.
Tu dérive par rapport aux ID du contentType. Voila un lien qui pourra t'aider : http://msdn.microsoft.com/en-us/library/aa543822.aspx
Merci han75;
le lien que tu m'as donné est trés intéressant. mais reste un problème. je n'arrive pas à trouver comment ajouter des colonnes à mon ContentType. Certaines colonnes sont prédifinies dans le WSS 3.0 et d'autres c'est moi qui les a codé.
Peux tu STP m'aider ?
Merci beaucoup.
Le XML du ContentType contient des noeuds fils, dont un noeud FieldRef. Ce noeud FieldRef référence une colonne de site. Dans le même fichier (ou un autre), tu peux définir des noeuds Fields permettant de décrire de nouvelles colonnes de sites.
Ainsi, si tu définis un ContentType comme suit :
Et un Field comme suit :<ContentType ID="0x01010074028495836529382374920328427329"
Name="Mon Nouveau ContentType"
Group="Mes ContentTypes"
Description="Ma Description"
V2ListTemplateName="doclib"
Version="0">
<FieldRefs>
<FieldRef ID="{9120E9B0-8C20-407b-9C9E-74C020E8348C}" Name="MaColonneDeSite" />
<FieldRefs>
</ContentType>
...tu ajouteras un Field à ton type de contenu.<Field ID="{9120E9B0-8C20-407b-9C9E-74C020E8348C}" Type="Choice" BaseType="Text" Name="MaColonne">
<CHOICES>
<CHOICE>Choix 1</CHOICE>
<CHOICE>Choix 2</CHOICE>
<CHOICE>Choix 3</CHOICE>
</CHOICES>
</Field>
Tu trouveras des infos sur l'élément Field ici : http://msdn.microsoft.com/en-us/library/ms948164.aspx
Merci gribouillon pour ton aide précieuse.
J'ai une autre question:
comment ajouter à mon ContentType un une colonne de type lookup ?
Merci beaucoup.
Tu ne peux pas par XML. Une colonne de type LookUp référence l'ID d'une colonne existante, donc pas d'une colonne de site (donc pas de colonne défini dans le XML non plus), mais bien une colonne de liste.
Il faut donc le faire par code. Tes fichiers de définition de ContentType et de Fields seront inclus dans une Feature qui peut utiliser un FeatureReceiver, c'est à dire une classe qui exécute du code lors de l'installation/désinstallation et de l'activation/désactivation de la feature. C'est dans ces méthodes qu'il te faut ajouter un champs de type LookUp.
Tu trouveras un exemple sur le blog d'Arnault Nouvel(fait une recherche sur Google pour avoir le lien directement), en bas du post. Ce code concerne les Site Definitons, mais il peut également être utilisé dans un Feature Receiver.
Merci beaucoup beaucoup gribouillon. Je te suis trés reconnaissant.
Tu peux très bien le faire par XML moi je le fais de cette manière.
L'utilisation d'un receiver n'est pas le seule manière.
Oui, tant que tu références une colonne de liste et non une colonne de site, ce qui sous-entend que la liste existe déjà.
Au fait, j'ai réussi à créer un Field Lookup; im reste le problème de référencer un Custom field que j'ai développé dans une autre solution et qui est déja déployé. (Je connais son ID)
Comment le faire ?
Et merci beaucoup beaucoup.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager