IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SharePoint .NET Discussion :

Création d'un ContentType Personalisé ?


Sujet :

SharePoint .NET

  1. #1
    nassim12
    Invité(e)
    Par défaut Création d'un ContentType Personalisé ?
    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.

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 142
    Points : 93
    Points
    93
    Par défaut
    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+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 107
    Points : 127
    Points
    127
    Par défaut
    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.

  4. #4
    nassim12
    Invité(e)
    Par défaut
    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 ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 107
    Points : 127
    Points
    127
    Par défaut
    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

  6. #6
    nassim12
    Invité(e)
    Par défaut
    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.

  7. #7
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 72
    Points
    72
    Par défaut
    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 :

    <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>
    Et un Field comme suit :

    <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 ajouteras un Field à ton type de contenu.

    Tu trouveras des infos sur l'élément Field ici : http://msdn.microsoft.com/en-us/library/ms948164.aspx

  8. #8
    nassim12
    Invité(e)
    Par défaut
    Merci gribouillon pour ton aide précieuse.

    J'ai une autre question:

    comment ajouter à mon ContentType un une colonne de type lookup ?

    Merci beaucoup.

  9. #9
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 72
    Points
    72
    Par défaut
    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.

  10. #10
    nassim12
    Invité(e)
    Par défaut
    Merci beaucoup beaucoup gribouillon. Je te suis trés reconnaissant.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 107
    Points : 127
    Points
    127
    Par défaut
    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.

  12. #12
    Membre régulier
    Inscrit en
    Août 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Août 2007
    Messages : 62
    Points : 72
    Points
    72
    Par défaut
    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à.

  13. #13
    nassim12
    Invité(e)
    Par défaut
    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.

Discussions similaires

  1. Création d'un contrôle personalisé (dll)
    Par sihammaster dans le forum VB.NET
    Réponses: 3
    Dernier message: 17/09/2013, 20h57
  2. création d'une interface de dessin personalisé
    Par slimebdx dans le forum LabVIEW
    Réponses: 0
    Dernier message: 24/03/2011, 21h24
  3. [AC-2007] Création XML à partir d'un menu personalisé
    Par pio_killer dans le forum Access
    Réponses: 2
    Dernier message: 04/01/2011, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo