Ir al contenido principal

Diferentes tipos de contenido en diferentes carpetas es una biblioteca

En el caso que en una biblioteca tengamos varias carpetas y queramos que contextualmente en cada carpeta, nos obligue a crear un tipo de contenido diferente, debemos ejecutar a través de Powershell, el siguiente script, donde $curItem es la carpeta en la que quedamos cambiar el tipo de contenido:


$curItem["ContentTypeId"] = $myCTId
$curItem.SystemUpdate($false)

Previamente, hay que ir accediendo al sitio, a la biblioteca y encontrar la carpeta/as en las que queremos hacer esta configuración:

# Get your site collection first
$site = Get-SPSite -Identity http://mysitecol

#if your list is in the top web:
$web = $site.RootWeb
# or if your list is in a subsite:   $web = $site.OpenWeb("/mysubweb")

#then you can get your list:
$list = $web.Lists["my list display name"]

$folderCTName = "Folder"
# your content type id looks like 0x0120...... 
$myCTId = "<EnteryourContentTypeIDHere>"

#finally you loop through each folder, and if the content type is default folder CT, you replace it by your own content type
for($count = $list.Folders.Count; $count -ge 0; $count--)
{
    $curItem = $list.Folders[$count]
    if ($curItem.ContentType.Name -eq $folderCTName)
    {
                $curItem["ContentTypeId"] = $myCTId
                $curItem.SystemUpdate($false)
    }
}

Comentarios