Add web part to the page

21/10/2012 15:10

Add web part to the page


$assembly=[void][reflection.assembly]::LoadWithPartialName("Microsoft.SharePoint.Publishing, Version=, Culture=neutral, PublicKeyToken=71e9bce111e9429c")
#you have to get the web, where you want to add the webpart, you can also include everything into a function and call the function, when iterating, this is explained in no. 2
 $site = Get-SPSite -Identity $serverUrl
 $web = $site.RootWeb
#first you have to check out the file/page, if publishing/versioning is disabled, then you can skip this step
 $file = $web.GetFile("/Pages/wpTest.aspx")
 #initialize the webpart-manager and locate it to the page
 $webpartmanager = $web.GetLimitedWebPartManager("https://fastlanessl/Pages/wpTest.aspx", [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared)
 #see list of web parts on the page
 #Add web part to the page
 $webpart = new-object ([Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart])
 $webpart.Title = "New Content Query WP"
 $webpart.ChromeType = [System.Web.UI.WebControls.WebParts.PartChromeType]::None;
 #if your webpart does need some properties to be set, do it now
 $webpartmanager.AddWebPart($webpart, "Zone1",0); #the code in the brakets adds the $webpart to the mentioned zone and sets the sorting of the webpart on the first place

Close and Delete Web Part

#close web part
#select web part
#delete web part
#no save changes method used

Add custom Web Part to the page

#use script above, but you have to load your custom assembly (e. g. my project was 'Skusky' and 'Skusky.dll' assembly)
#use your custom wp class to create new wp instance (in my project it was 'VisualWebPartForResources' namespace with 'VisualWebPartForResources' class)
$webpart = new-object ([Skusky.VisualWebPartForResources.VisualWebPartForResources])