none
Connaître le modèle de site utilisé RRS feed

  • Question

  • Bonjour à tous,

     

    Je souhaiterais savoir s'il est possible de connaître le nom du modèle qui a été utilisé pour la création d'un site ?

     

    D'avance merci pour toutes vos informations,

     

     

    Mathieu

    mardi 2 septembre 2008 14:12

Réponses

  • Bonjour

     

    Il est possible de le récupérer par code. Voici un petit exemple qui pourra vous inspirer :

     

    Code Snippet

                using (SPSite site = new SPSite("http://localhost:100"))
                {
                    using (SPWeb web = site.RootWeb)
                    {
                        string temp = web.WebTemplate + "#" + web.Configuration;
                        int tempId = web.WebTemplateId;

                        Console.WriteLine("Site \"" + web.Title + "\"");
                        Console.WriteLine(temp);
                        Console.WriteLine(tempId);
                    }
                }

     

     

    Cette information est disponible sur l'objet SPWeb correspondant à votre site web :

    • WebTemplate : c'est le nom du template (du répertoire), par exemple STS
    • Configuration : c'est le numéro de configuration (c'est un entier) rattaché à un template (par exemple 0 pour STS correspond au site d'équipe, 1 au site vide)
    • WebTemplateId : correspond l'identifiant donné à cette définition au niveau du fichier WebTemp*.xml permettant de rendre disponibles vos définitions

    Vous pouvez avoir l'équivalent via PowerShell, je suis sur que Fabrice Romelard saura nous fournir ce genre de script Smile

     

    En espérant que cela réponde à votre question.

    mardi 2 septembre 2008 15:05

Toutes les réponses

  • Bonjour

     

    Il est possible de le récupérer par code. Voici un petit exemple qui pourra vous inspirer :

     

    Code Snippet

                using (SPSite site = new SPSite("http://localhost:100"))
                {
                    using (SPWeb web = site.RootWeb)
                    {
                        string temp = web.WebTemplate + "#" + web.Configuration;
                        int tempId = web.WebTemplateId;

                        Console.WriteLine("Site \"" + web.Title + "\"");
                        Console.WriteLine(temp);
                        Console.WriteLine(tempId);
                    }
                }

     

     

    Cette information est disponible sur l'objet SPWeb correspondant à votre site web :

    • WebTemplate : c'est le nom du template (du répertoire), par exemple STS
    • Configuration : c'est le numéro de configuration (c'est un entier) rattaché à un template (par exemple 0 pour STS correspond au site d'équipe, 1 au site vide)
    • WebTemplateId : correspond l'identifiant donné à cette définition au niveau du fichier WebTemp*.xml permettant de rendre disponibles vos définitions

    Vous pouvez avoir l'équivalent via PowerShell, je suis sur que Fabrice Romelard saura nous fournir ce genre de script Smile

     

    En espérant que cela réponde à votre question.

    mardi 2 septembre 2008 15:05
  • Edit : Ok, Gat à été plus rapide :-)

     

    Bonjour,

     

    Je ne sais pas si une commande en natif existe - cependant vous pouvez créer une application console qui executerait le code suivant

     

    Code Snippet

    using (SPSite site = new SPSite(http://SHAREPOINT))

    {

    Console.WriteLine(site.rootWeb.WebTemplate);

    }

     

     

    Attention, je l'ai écrit directement ici, à compiler donc. L'idée derrière est d'utiliser le modèle objet de SharePoint pour arriver à nos fin :-)

     

    Après, il y a peut-etre une commande (stsadm ou autre) pour retrouver l'info

    mardi 2 septembre 2008 15:10
  • Bonjour Gat,

     

    Merci pour votre réactivité.

     

    Je suis désolé de ne pas avoir préciser si cela était possible en utilisant les fonctionnalités de Sharepoint et non pas par programmation.

     

    Cela étant dit, je conserve précieusement votre exemple de code.

     

    Amicalement,

     

    Mathieu

     

    mercredi 3 septembre 2008 08:35
  • Bonjour,

    Il ne me semble pas y avoir de réponses en standard.

    Je valide néanmoins la réponse de Gat qui répond au sujet de la question (au cas ou quelqu'un fait une recherche google à ce sujet)

    Cordialement,
    jeudi 4 septembre 2008 06:53
    Modérateur
  • Bonjour

     

    Il n'y a pas de réponse directement en standard, mais une solution de contournement est envisageable:

     

    1. Sauvegardez votre site en tant que modèle de site (dans les paramètres du site, section "Aspect" et enregistrer en tant que modèle) => pas la peine de sauvegarder le contenu, donnez juste un nom quelconque
    2. Allez dans la galerie des modèles de site pour y trouver votre fichier *.stp, cliquez dessus pour le télécharger sur votre poste. Une fois l'action réalisée, vous pouvez supprimer le modèle de la galerie pour éviter que des utilisateurs ne s'en servent
    3. Renommez le fichier STP en ajoutant l'extension ".cab". Double cliquez dessus : celui-ci devrait s'ouvrir comme un fichier ZIP. Récupérez le fichier manifest.xml qui doit s'y trouver.
    4. Enfin, lisez le fichier XML et plus particulièrement le noeud XML "Details". Dedans se trouvent les 2 noeuds qui nous intéressent. "TemplateId" correspond à l'identifiant de votre définition de site (identifiant situé dans les fichiers webtemp*.xml situés dans le répertoire 12\TEMPLATE\[1036 ou autre code culture]\XML et "Configuration" correspond à la configuration utilisée.

    Bref, c'est faisable mais autrement plus lourd que la méthode par développement.

    En espérant que cette solution alternative vous suffise !

    samedi 6 septembre 2008 14:00