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 :

Cacher le type de contenu [SP-2007]


Sujet :

SharePoint .NET

  1. #1
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut Cacher le type de contenu
    Bonjour,

    j'ai créé des types de contenus "tâches".

    Dans ma liste personnalisée, les utilisateurs peuvent donc créer différents tpe de tâches.


    Je souhaiterais que lorsqu'une tâche est créée, on ne puisse plus changer son type de contenu...donc cacher le champ "content type" lors de l'édition.

    J'ai éssayé de cacher la colonne à l'aide de SharePoint Explorer, sans résultats.

    Avez-vous une idée pour griser ou cacher ce champ?

    Je souhaiterais faire ceci sans passer par une list definition.
    Je suis sous WSS3.
    Si besoin, on peut égallement cacher les type de contenu lors de la création car les items sont créés par la programmation.


    Merci,

    François

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 519
    Points : 1 663
    Points
    1 663
    Par défaut
    Pour cacher la colonne tu dois pouvoir soit le faire par sharepoint mais c'est à vérifier soit faire un script powershell pour changer les propriétés d'affichage de cette colonne.

    Pour cacher tous tes types de contenu tu vas dans leur gestion dans ta liste et tu décoches toutes les coches Visible.

  3. #3
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut
    Je pense que les scripts powershell permettent d'éffectuer les mêmes actions que SharePointExplorer (pour les listes).
    As-tu un script pour que je test ?

    Pour cacher tous les types de contenu tu vas dans leur gestion dans ta liste et tu décoches toutes les coches Visible.
    J'avais déjà essayé, mais malheureusement on est obligé de garder au moins un content type en visible.
    Mais en effet, si j'arrive par un script ou par programmation à faire passer tous les content type en invisible, celà résoudrait mon problème.

  4. #4
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut
    Un ptit bout de code...qui ne fait rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                using (SPSite myspsite = new SPSite("http://toto"))
                {
                    using (SPWeb mySPWeb = myspsite.OpenWeb())
                    {
                        SPList myList = mySPWeb.Lists["MesTaches"];
                        SPField myField = myList.Fields["Type de contenu"];
                        myField.ShowInEditForm = false;
                        myField.Update();
                    }
                }
    Pas d'exception générée...mais quand j'édite mes taches, je vois toujours le type de contenu

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 519
    Points : 1 663
    Points
    1 663
    Par défaut
    Essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myField.ShowInEditForm = 0;
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myField.ShowInEditForm = false;

  6. #6
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut
    J'ai oublié de préciser, mon code est en C#.

    Le ShowInEditForm n'accepte que des bool?.
    Je ne peux donc pas mettre la valeur 0.

    Si je regarde la valeur de ShowInEditForm, il a bien la valeur false... Mais il n'en tient pas compte.

    Ce champs type de contenu a un comportement différent des autres...ce qui peut être compréhenssible mais il faudrait tout de même pouvoir cacher ce champs

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 519
    Points : 1 663
    Points
    1 663
    Par défaut
    Le code que t'as mis il faut le mettre dans un script powershell...

    Donc ça doit donner un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > null
     
    function FieldViewSetting([string]$SiteURL, [string]$listName, [string]$fieldName, [int]$v1,[int]$v2,[int]$v3)
    { 	 
       $site = new-object Microsoft.SharePoint.SPSite($SiteURL)
       $web = $site.openweb();
     
       $list = $web.Lists[$listName];
       $field = $list.Fields[$fieldName];
     
       $field.ShowInDisplayForm=$v1;
       $field.ShowInEditForm=$v2;
       $field.ShowInNewForm=$v3;
       $field.Update();
    }
    FieldViewSetting "http://toto/" "MesTaches" "Type de contenu" 0 0 0;

  8. #8
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Bonjour,

    J'avoue ne jamais avoir essayé de cacher le champ content type.
    Mais par contre que vous le fassiez avec l'API ou avec powershell le résultat sera la même.

    Ludovic,
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  9. #9
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut
    Oui en effet Ludovic (c'est FLA)


    Je pense aussi que j'aurai le même résultat (je ne saurais tester pour l'instant).

    C'est tout de même triste qu'en SharePoint, une fonctionnalité qui semble si simple soit...si complexe à mettre en place


    Enfin d'autres idées?

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 170
    Points
    170
    Par défaut
    Bonjour,

    perso je verrai bien un petit script JS. Donc

    - Ouvre ta page avec SharePoint Designer (EditForm.aspx)
    - Repère les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script id="onetidPageTitleAreaFrameScript">
        document.getElementById("onetidPageTitleAreaFrame").className="ms-areaseparator";
    </script>
    Elles sont dans le bas de la page. Ajoute ensuite ce code juste en dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <script language="javascript" type="text/javascript">
     
        _spBodyOnLoadFunctionNames.push("HideContentTypeSelect");
     
        function HideContentTypeSelect() {
     
            var selects = document.getElementsByTagName("select");
     
            for (var i = 0; i < selects.length; ++i) {
     
                if (selects[i].title == "Content Type")
                    selects[i].parentNode.parentNode.style.display = 'none';
     
            }
     
        }
     
    </script>
    Chez moi ça fonctionne :-p

  11. #11
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Dans ce cas, tu peux grandement simplifier avec JQuery dans un Content Editor WebPart :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("H3:contains('xxxxxxxxxx')").parent().parent().hide();

    xxxxxxxxxx = le texte se trouvant dans le label du champ ContentType
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  12. #12
    Inactif  
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 170
    Points
    170
    Par défaut
    Ah, moi pas parler JQuery, mais si Ludovic dit que ca fonctionne, ca doit fonctionner ^^ Mais faut juste inclure le fichier js de JQuery ^^

  13. #13
    Membre confirmé
    Avatar de frechy
    Inscrit en
    Novembre 2004
    Messages
    343
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 343
    Points : 511
    Points
    511
    Par défaut
    Merci à vous,

    J'ai éssayé la solution de Ludovic, il doit me manquer des fichiers car celà ne fait qu'afficher
    "$("H3:contains('xxxxxxxxxx')").parent().parent().hide();"
    à l'écran.
    Je ne doute pas que ce doit fonctionner, je regarderai ce soir comment fonctionne le JQuerry.


    Donc pour l'instant j'utilise le code javascript de Sébastien. Celà fonctionne très bien.

  14. #14
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Si tu utilises JQuery, il faut ajouter une balise <script src="....."/> avec la librairie Jquery. Cela peut également être fait dans Content edit Web Part. Il faut dans ce également mettre le fichier .js quelque part dans ta ferme.
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JspException: Type de contenu non reconnu
    Par ouedmouss dans le forum JSF
    Réponses: 1
    Dernier message: 30/06/2007, 04h12
  2. [MOSS 2007] Requete sur les types de contenu
    Par d1g-2-d1g dans le forum SharePoint
    Réponses: 4
    Dernier message: 24/05/2007, 15h46
  3. [Plone]Probleme de vue de mon new type de contenu
    Par schnito dans le forum Zope
    Réponses: 2
    Dernier message: 09/03/2007, 10h09
  4. Déterminer le type du contenu d'un string
    Par nicerico dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2007, 16h18
  5. Réponses: 5
    Dernier message: 05/02/2007, 16h04

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