Archivo de la etiqueta: subsitio

Script para controlar el tamaño de los Sitios en SharePoint

Si tienes multiples subsitios dentro de una coleccion de sitios en SharePoint 2010 y quieres saber por cada uno de ellos, cuanto espacio ocupa, en diferentes medidas, aqui os dejo un script de PowerShell muy útil. Además este script, da el tamaño total de la suma de todos.

#====================================================================================
function GetWebSizes ($StartWeb)
{
    $web = Get-SPWeb $StartWeb
    [long]$total = 0
    $total += GetWebSize -Web $web
    $total += GetSubWebSizes -Web $web
    $totalInMb = ($total/1024)/1024
    $totalInMb = "{0:N2}" -f $totalInMb
    $totalInGb = (($total/1024)/1024)/1024
    $totalInGb = "{0:N2}" -f $totalInGb
    write-host "El tamaño de los subsitios bajo:" $StartWeb " es de " $total "Bytes, el cual es " $totalInMb " MB o" $totalInGb "GB"
    $web.Dispose()
}
#====================================================================================
function GetWebSize ($Web)
{
    [long]$subtotal = 0
    foreach ($folder in $Web.Folders)
    {
        $subtotal += GetFolderSize -Folder $folder
    }
    write-host "Sitio:" $Web.Title " tiene " $subtotal "KB"
    return $subtotal
}
#====================================================================================
function GetSubWebSizes ($Web)
{
    [long]$subtotal = 0
    foreach ($subweb in $Web.GetSubwebsForCurrentUser())
    {
        [long]$webtotal = 0
        foreach ($folder in $subweb.Folders)
        {
            $webtotal += GetFolderSize -Folder $folder
        }
        write-host "Sitio:" $subweb.Title " tiene " $webtotal "Bytes"
        $subtotal += $webtotal
        $subtotal += GetSubWebSizes -Web $subweb
    }
    return $subtotal
}
#====================================================================================
function GetFolderSize ($Folder)
{
    [long]$folderSize = 0
    foreach ($file in $Folder.Files)
    {
        $folderSize += $file.Length;
    }
    foreach ($fd in $Folder.SubFolders)
    {
        $folderSize += GetFolderSize -Folder $fd
    }
    return $folderSize
}
#====================================================================================
$siteurl = "http://intranet"
#Llamada a la funcion para devolver el tamaño del la Intranet
GetWebSizes $siteurl

Como crear un subsitio en SharePoint 2010

Como hacer las cosas desde la interface web de SharePoin, no tiene mucho misterio y además puedes encontrarlo facilmente buscando en Internet, prefiero detallar como se harian las cosas programaticamente, ya que esto es lo que nos va a permitir personalizar SharePoint a nuestro gusto/necesidad.

Este es el caso de la creación de un subsitio y mas contratamente un sitio de tipo blog en idioma Español. A continuación os dejo una funcion, que crea un nuevo sitio utilizando la plantilla de blog: SPWebTemplate.WebTemplateBLOG (aunque se puede usar cualquier otra que necesitemos, para ello puedes consultar el listado de plantillas de sitio de SharePoint 2010). He de destacar que el idioma de creacion de estas plantillas enla funcion es el Spanish – Spain (Modern Sort), pero se puede usar cualquier otro, solo tienes que cambiar el LCID:

private void CreateBlogSite(SPWeb web, string siteUrl, string siteTitle, string siteDescription)
{
  string siteTemplate = SPWebTemplate.WebTemplateBLOG; //epecifica la plantilla de sitio (Blog)
  uint siteLocationID = 3082; //idioma Spanish - Spain (Modern Sort)
  SPWebCollection subsite = web.Webs;
  subsite.Add(siteUrl, siteTitle, siteDescription, siteLocationID, siteTemplate, true, false);
}

Para más informacion puedes consultar el metodo SPWebCollection.Add.