Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if ((Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null)
- {
- Add-PsSnapin Microsoft.SharePoint.PowerShell
- }
- cls
- $webpartFileName = "Test"
- Function Execute-AddTestsWebpart($parameters)#, [System.Xml.XmlElement]$data, [string]$extId, [string]$extensionPath)
- {
- Write-Host "Started inserting Event webpart.."
- $siteCollectionUrl = $parameters["SiteUrl"]
- $pageUrls = $parameters["PageUrls"]
- $zone = $parameters["Zone"]
- $pages = $pageUrls.Split(",")
- $rootWeb = Get-SPWeb $siteCollectionUrl
- if($rootWeb -ne $null)
- {
- $webPartGallery = $rootWeb.Lists["Web Part Gallery"]
- for($i=0; $i -lt $pages.Count; $i++)
- {
- $web = Get-SPWeb ($siteCollectionUrl)
- $allowunsafeupdates = $web.AllowUnsafeUpdates
- $web.AllowUnsafeUpdates = $true
- if($web -ne $null)
- {
- if($webPartGallery -eq $null)
- {
- Write-Host("Unable to retrieve Webpartgallery")
- }
- else
- {
- Write-Host("$pageUrls")
- Write-Host("Processing "+ ($siteCollectionUrl+$pages[$i])) -ForegroundColor Yellow
- $page = $web.GetFile(($siteCollectionUrl+$pages[$i]))
- $page.CheckOut()
- Write-Host " Adding Event Webpart in " ($siteCollectionUrl+$pages[$i]) " started.."
- $webpart=$webPartGallery.Items | ? { $_.Title -eq $webpartFileName}
- if($webpart -eq $null) {
- Write-Host("Unable to retrieve webpart: $webpartFileName") -ForegroundColor Red
- }
- else
- {
- $webpartmanager = $rootWeb.GetLimitedWebPartManager(($siteCollectionUrl+$pages[$i]), [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
- $webPartsInPage = @()
- foreach($wp in $webPartManager.WebParts)
- {
- $webPartsInPage +=$wp
- }
- foreach($wp in $webPartsInPage)
- {
- $webPartManager.CloseWebPart($wp)
- $webPartManager.SaveChanges($wp)
- }
- $webPartManager.SaveChanges($wp)
- Write-Host "-" $webpart.Title
- $xmlReader = New-Object System.Xml.XmlTextReader($webpart.File.OpenBinaryStream());
- $err = $null
- $webpart = $webpartmanager.ImportWebPart($xmlReader,[ref]$err)
- Write-Host("Imported webpart:" + $webpart.Title) -ForegroundColor Green
- Write-Host "="
- if(!$webpartmanager.WebParts.Contains($webpart)){
- Write-Host " Adding event Webpart in " ($siteCollectionUrl+$pages[$i]) " completed.." -ForegroundColor DarkGreen
- $webpart.Height = 800
- $webpart.Width = 1200
- $webpartmanager.AddWebPart($webpart, $zone, 1)
- Write-Host "Completed inserting event webpart.."
- }
- else
- {
- Write-Host -f DarkYellow "Webpart " $webpartFileName " already exists in " ($siteCollectionUrl+$pages[$i])
- }
- }
- $page.CheckIn("Closed previous webparts and added event webpart")
- }
- }
- }
- $web.AllowUnsafeUpdates = $allowunsafeupdates
- $xmlReader.Close()
- $web.Dispose()
- }
- else
- {
- Write-Host -f Red "Site " $siteCollectionUrl "doesn't exist"
- }
- }
- $params = @{"SiteUrl"="http://example.net/sites/Test";"PageUrls"="/Lists/Event/NewForm.aspx,/Lists/Event/EditForm.aspx";"Zone"="Main"}
- Execute-AddTestsWebpart $params
Add Comment
Please, Sign In to add comment