Guest User

Untitled

a guest
Jan 24th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.67 KB | None | 0 0
  1. if ((Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null)
  2. {
  3. Add-PsSnapin Microsoft.SharePoint.PowerShell
  4. }
  5. cls
  6. $webpartFileName = "Test"
  7. Function Execute-AddTestsWebpart($parameters)#, [System.Xml.XmlElement]$data, [string]$extId, [string]$extensionPath)
  8. {
  9. Write-Host "Started inserting Event webpart.."
  10. $siteCollectionUrl = $parameters["SiteUrl"]
  11. $pageUrls = $parameters["PageUrls"]
  12. $zone = $parameters["Zone"]
  13. $pages = $pageUrls.Split(",")
  14. $rootWeb = Get-SPWeb $siteCollectionUrl
  15. if($rootWeb -ne $null)
  16. {
  17. $webPartGallery = $rootWeb.Lists["Web Part Gallery"]
  18. for($i=0; $i -lt $pages.Count; $i++)
  19. {
  20. $web = Get-SPWeb ($siteCollectionUrl)
  21. $allowunsafeupdates = $web.AllowUnsafeUpdates
  22. $web.AllowUnsafeUpdates = $true
  23.  
  24. if($web -ne $null)
  25. {
  26. if($webPartGallery -eq $null)
  27. {
  28. Write-Host("Unable to retrieve Webpartgallery")
  29. }
  30. else
  31. {
  32. Write-Host("$pageUrls")
  33. Write-Host("Processing "+ ($siteCollectionUrl+$pages[$i])) -ForegroundColor Yellow
  34. $page = $web.GetFile(($siteCollectionUrl+$pages[$i]))
  35. $page.CheckOut()
  36. Write-Host " Adding Event Webpart in " ($siteCollectionUrl+$pages[$i]) " started.."
  37.  
  38. $webpart=$webPartGallery.Items | ? { $_.Title -eq $webpartFileName}
  39. if($webpart -eq $null) {
  40. Write-Host("Unable to retrieve webpart: $webpartFileName") -ForegroundColor Red
  41. }
  42. else
  43. {
  44. $webpartmanager = $rootWeb.GetLimitedWebPartManager(($siteCollectionUrl+$pages[$i]), [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
  45. $webPartsInPage = @()
  46. foreach($wp in $webPartManager.WebParts)
  47. {
  48. $webPartsInPage +=$wp
  49. }
  50. foreach($wp in $webPartsInPage)
  51. {
  52. $webPartManager.CloseWebPart($wp)
  53. $webPartManager.SaveChanges($wp)
  54. }
  55. $webPartManager.SaveChanges($wp)
  56. Write-Host "-" $webpart.Title
  57. $xmlReader = New-Object System.Xml.XmlTextReader($webpart.File.OpenBinaryStream());
  58. $err = $null
  59. $webpart = $webpartmanager.ImportWebPart($xmlReader,[ref]$err)
  60. Write-Host("Imported webpart:" + $webpart.Title) -ForegroundColor Green
  61. Write-Host "="
  62.  
  63. if(!$webpartmanager.WebParts.Contains($webpart)){
  64. Write-Host " Adding event Webpart in " ($siteCollectionUrl+$pages[$i]) " completed.." -ForegroundColor DarkGreen
  65. $webpart.Height = 800
  66. $webpart.Width = 1200
  67. $webpartmanager.AddWebPart($webpart, $zone, 1)
  68. Write-Host "Completed inserting event webpart.."
  69. }
  70. else
  71. {
  72. Write-Host -f DarkYellow "Webpart " $webpartFileName " already exists in " ($siteCollectionUrl+$pages[$i])
  73. }
  74. }
  75. $page.CheckIn("Closed previous webparts and added event webpart")
  76. }
  77. }
  78.  
  79. }
  80. $web.AllowUnsafeUpdates = $allowunsafeupdates
  81. $xmlReader.Close()
  82. $web.Dispose()
  83. }
  84. else
  85. {
  86. Write-Host -f Red "Site " $siteCollectionUrl "doesn't exist"
  87. }
  88. }
  89.  
  90. $params = @{"SiteUrl"="http://example.net/sites/Test";"PageUrls"="/Lists/Event/NewForm.aspx,/Lists/Event/EditForm.aspx";"Zone"="Main"}
  91. Execute-AddTestsWebpart $params
Add Comment
Please, Sign In to add comment