SharePoint Online: PowerShell kullanarak İçerik Türü Oluşturma


SharePoint Online'da İçerik Türü nedir?

İçerik türleri, belirli bir amaca hizmet etmek üzere gruplandırılmış bir dizi sütundur. Bir Fatura şablonu düşünün! Siz ve kullanıcılarınızın her seferinde sıfırdan farklı şablonlar oluşturması yerine, bir Fatura şablonunu bir kez tanımlayabilirsiniz ve kullanıcılarınız bu şablonu istediğiniz sayıda liste veya belge kitaplığında kullanmaya başlayabilir! Bu şekilde işbirliği ortamınızda standardizasyonu zorlarsınız. Veya kuruluşunuzun projelerini takip etmek için gerekli sütunların yer aldığı bir "Proje Takip" listesi düşünün. Proje izleme listesi için her sütunu her seferinde oluşturup eklemek yerine, proje izleme içerik türü şablonunu istediğiniz sayıda listede birkaç tıklamayla kullanabilirsiniz.

SharePoint Online listeleri veya belge kitaplıkları birden fazla içerik türü içerebilir. Örneğin, bir projeyle ilgili her şeyi tek bir varlık olarak düzenlemek için bir kitaplığa "Fatura", "Teklif", "Satın Alma Siparişi" vb. gibi birden fazla içerik türü ekleyebilirsiniz. Bir içerik türünü SharePoint Online listesi veya kitaplığıyla ilişkilendirdiğinizde SharePoint, söz konusu liste veya kitaplıktaki Yeni Öğe komutundan söz konusu içerik türünden yeni öğeler oluşturmanıza olanak tanır. Belge içerik türü olması durumunda, bu belirli içerik türünden oluşturulan tüm belgelere temel oluşturacak bir belge şablonu da tanımlayabilirsiniz.

En iyi uygulama olarak içerik türleri ideal olarak herhangi bir liste veya kitaplıktan bağımsız olarak üst sitede tanımlanmalıdır. Herhangi bir SharePoint sitesinde, içerik türü merkeziyle SharePoint site koleksiyonlarının altında veya hatta genelinde yeniden kullanılabilir.

SharePoint Online'da İçerik Türü Nasıl Oluşturulur?

SharePoint Online'a içerik türü eklemek için şu adımları izleyin:

  1. Site Ayarlarına gidin >> “Web Tasarımcısı Galerileri” grubu altında “Site İçerik Türleri”ne tıklayın.
  2. Site içerik türleri sayfasında, Öğe, Görevler, Belge vb. gibi varsayılan içerik türlerinin bölümlere göre gruplandırılmış listesini göreceksiniz. Üstteki "Oluştur" bağlantısını tıklayın.
  3. Özel içerik türünüz için bir ad girin. İsteğe bağlı olarak, yeni içerik türünüzün daha net anlaşılması için açıklamasını girebilirsiniz.
  4. İçerik türünüzün temel aldığı "Öğe" gibi ana içerik türünü seçin. Yeni bir içerik türü grubu oluşturabilir veya mevcut bir grubu seçebilirsiniz.

  5. İçerik türü eklemeyi tamamlamak için Tamam'ı tıklayın. İçerik türü oluşturulduktan sonraki adım, meta verilerin içerik türünden kullanılabilmesini sağlamak için gerekli Site sütunlarını içerik türüne eklemektir.

Şimdi SharePoint’te programlı olarak içerik türü oluşturmak için PowerShell betiğini görelim.

SharePoint Online: PowerShell'i kullanarak İçerik Türü Oluşturun

Özel bir içerik türü oluşturmak PowerShell yardımıyla otomatikleştirilebilir. PowerShell kullanarak SharePoint Online'da nasıl içerik türü oluşturulacağı aşağıda açıklanmıştır.


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#function to turn ON Content Type in SharePoint Online list or library
Function Create-SPOContentType()
{ 
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $CTypeName,
        [Parameter(Mandatory=$true)] [string] $CTypeDesc,
        [Parameter(Mandatory=$true)] [string] $ParentCTypeName,
        [Parameter(Mandatory=$true)] [string] $CTypeGroup
    )

    Try {
        $Cred= Get-Credential
        $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Credentials
        
        #Get all content types from the site
        $ContentTypeColl = $Ctx.web.ContentTypes
        $Ctx.Load($ContentTypeColl)
        $Ctx.ExecuteQuery()

        #Get the parent content type
        $ParentCType = $ContentTypeColl| Where {$_.Name -eq $ParentCTypeName}

        #Check if content type exists already
        $ContentType = $ContentTypeColl| Where {$_.Name -eq $CTypeName}


        If($ContentType -ne $Null)
        {
            Write-host "Content type '$CTypeName' already exists!" -ForegroundColor Yellow
        }
        else
        {
            #Specify properties for the new content type
            $CTypeCreationInfo=New-Object Microsoft.SharePoint.Client.ContentTypeCreationInformation
            $CTypeCreationInfo.Name=$CTypeName
            $CTypeCreationInfo.Description=$CTypeDesc
            $CTypeCreationInfo.Group=$CTypeGroup
            $CTypeCreationInfo.ParentContentType=$ParentCType

            # sharepoint online powershell create content type
            $ContentType=$ContentTypeColl.Add($CTypeCreationInfo)
            $Ctx.ExecuteQuery()
           
            Write-host "Content Type '$CTypeName' Created Successfully!" -ForegroundColor Green
        }
    }
    Catch {
        write-host -f Red "Error Creating Content Type!" $_.Exception.Message
    } 
}

#Set parameter values
$SiteURL="https://crescent.sharepoint.com"
$CTypeName="Projects"
$CTypeDesc="Content type for Project template"
$ParentCTypeName="Item"
$CTypeGroup="Crescent Projects"

#Call the function
Create-SPOContentType -SiteURL $SiteURL -CTypeName $CTypeName -CTypeDesc $CTypeDesc -ParentCTypeName $ParentCTypeName -CTypeGroup $CTypeGroup

Bu betik, SharePoint Online'da belirtilen ana içerik türünden bir içerik türü oluşturur. Bu örnekte, varsayılan alanı "Başlık" olan "Öğe" içerik türünden "Proje" içerik türünü oluşturdum. İçerik türüne ek alanlar eklemek isteyebilirsiniz. PowerShell ile SharePoint Online'da bir içerik türüne nasıl sütun ekleyebileceğiniz aşağıda açıklanmıştır: PowerShell kullanarak SharePoint Online'da İçerik Türüne Site Sütunu Nasıl Eklenir?

PnP PowerShell'i kullanarak SharePoint Online'da İçerik Türü Oluşturma

Add-PnPContentType cmdlet'ini kullanarak SharePoint Online'da bir içerik türü oluşturmak için PnP PowerShell betiği aşağıda verilmiştir:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ContentTypeName ="Crescent Projects V3"
$ContentTypeDescription ="Base Content Type for Crescent Projects Template"
$ContentTypeGroupName = "Crescent Content Types"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Create Content Type
Add-PnPContentType -Name $ContentTypeName -Description $ContentTypeDescription -Group $ContentTypeGroupName

Bu, varsayılan üst öğe olan "Öğe"yi temel alan yeni bir içerik türü oluşturur.

Ana içerik türünü şu şekilde belirtebilirsiniz:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ContentTypeName ="Crescent Project Proposal V1"
$ContentTypeDescription ="Base Content Type for Crescent Project Prposal Template"
$ContentTypeGroupName = "Crescent Content Types"
$ParentContentTypeName ="Document" 

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get the Parent content type
$ParentContentType = Get-PnPContentType -Identity $ParentContentTypeName

#Create Content Type
Add-PnPContentType -Name $ContentTypeName -Description $ContentTypeDescription -Group $ContentTypeGroupName -ParentContentType $ParentContentType

İçerik türü hazır olduğunda içerik türünü listelere ve kitaplıklara ekleyebilirsiniz: SharePoint Online'da Listeye İçerik Türü Nasıl Eklenir?

İlgili makaleler