none
Creation de Sites par code RRS feed

  • Question

  • Bonjour,

    Je dois automatiser la creation d'un site Portal via un ajout dans une liste.

    Pour ce qui est de l'EventHandler sur ItemAdded, c'est ok.

    Je test le code via un projet console pour avoir plus facile, et le site se crée bien, mais pas ou je veux.

    CreateSite("http://vpc-moss2007/sites/", "test2", "test2", "sts");

    using (SPSite siteCollection = new SPSite(parentSiteURL))
    {
    SPWeb parentWeb = siteCollection.OpenWeb();

    SPWebTemplateCollection Templates =
    siteCollection.GetWebTemplates(Convert.ToUInt32(LOCALE_ID));

    parentWeb.Webs.Add(
    siteURLRequested,
    siteTitle,
    "",
    Convert.ToUInt32(LOCALE_ID),
    siteTemplate,
    false, false);
    }


    Ce code fonctionne bien, mais il me crée le site à l'adresse : http://vpc-moss2007/test/default.aspx et non pas
    http://vpc-moss2007/Sites/test/default.aspx

    Pourtant dans l'interface admin a le choix entre Sites/ et Personnal/
    (Oui je veux créer un site Portal mais je ne trouve pas le nom du template, j'ai prit "sts" au hasard, c'est vraiment pas clair dans le repertoire 12 ...).

    Je me demande si en fait la fonction que j'utilise est la bonne, car c'est une collection de site que j'aimerai créer et là il crée un site.. je me trompe peut être.
    jeudi 10 avril 2008 13:13

Réponses

  • Ce n'est effectivement pas la bonne méthode. Pour créer une collection de sites, il faut partir de la webApp :

     

    Code Snippet

    public void CreateSiteCollection(SPWebApplication webApp)

    {

    // webApp.Sites.Add(...);

    }

     

     

    La méthode Add est décrite ici : http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.administration.spsitecollection.add.aspx

     

    Le template portail collaboratif se nomme SPSPORTAL (id 47).

     

    J'espère que ceci vous aura aidé.

    jeudi 10 avril 2008 13:24
    Modérateur
  • les templates disponibles sont listés dans le répertoire 12\TEMPLATE\1033\XML (ou encore 1036 ou un autre LCID).

    Ces fichiers WEBTEMPXXX.xml définissent le nom et les ID des templates, référencent des SiteTemplates du dossier SiteTemplates ou une ProvisionClass (c'est le cas du portail qui n'a pas de vrai template à lui... c'est une provisionclass qui créé le site racine et ses sous sites à partir d'autres modèles).

     

    jeudi 10 avril 2008 13:36
    Modérateur

Toutes les réponses

  • Ce n'est effectivement pas la bonne méthode. Pour créer une collection de sites, il faut partir de la webApp :

     

    Code Snippet

    public void CreateSiteCollection(SPWebApplication webApp)

    {

    // webApp.Sites.Add(...);

    }

     

     

    La méthode Add est décrite ici : http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.administration.spsitecollection.add.aspx

     

    Le template portail collaboratif se nomme SPSPORTAL (id 47).

     

    J'espère que ceci vous aura aidé.

    jeudi 10 avril 2008 13:24
    Modérateur
  • Merci :-)

    Il me semblait bien qu'il y a un petit soucis, voyez:



    Je sais créer des portal via l'interface admin mais dans mon repertoire 12 je ne vois pas.

    Ou trouvez vous les Id des template ? j'ai regarde dans Onet.xml mais je ne l'ai pas vraiment trouve.


    Je vais tester le code que vous m'avez montré :-)
    jeudi 10 avril 2008 13:33
  • les templates disponibles sont listés dans le répertoire 12\TEMPLATE\1033\XML (ou encore 1036 ou un autre LCID).

    Ces fichiers WEBTEMPXXX.xml définissent le nom et les ID des templates, référencent des SiteTemplates du dossier SiteTemplates ou une ProvisionClass (c'est le cas du portail qui n'a pas de vrai template à lui... c'est une provisionclass qui créé le site racine et ses sous sites à partir d'autres modèles).

     

    jeudi 10 avril 2008 13:36
    Modérateur
  • Merci pour tout ces éclaircissements :-)

    En effet je viens de voir le template 47 dans le fichier "webtempsps.xml"

    Je viens aussi d'avoir +- le même résultat en parcourant la collection avec une boucle (SPWebTemplateCollection ).

    Je vais tester tout cela :-)



    jeudi 10 avril 2008 13:43