Add custom and listview web part to wiki page using powershell
2013-09-13 17:21
246 查看
As we know, Adding list view web part is different from custom web part using powershell, what's more, there are also difference between adding web part to web part zone page and wiki pag. here is the method.
the web part folder, second, read the custom via OpenBinaryStream() method and import the file to web part object.
And, because of add web part to wiki page, the wiki page didn't have web part zone, but it has the hide zone named "WPZ", after adding web part to the wiki page, we still couldn't see it, the reason is that the wiki page is reloadey by the html code,
we had to re-write the html:
so we just change the id of div, then we will get the result.
"Trending Tags"
More to Link: http://soufiane-benyoussef.blogspot.in/2011/09/add-custom-webpart-to-page-using-power.html
1. Add custom web part to wiki page:
Note: because of custom web part, we couldn't new the web part via new-object Microsoft.SharePoint.WebPartPages.XsltListViewWebPart, had to get the web part from the folder of the web part catalog. first, we should get the custom web part via name inthe web part folder, second, read the custom via OpenBinaryStream() method and import the file to web part object.
And, because of add web part to wiki page, the wiki page didn't have web part zone, but it has the hide zone named "WPZ", after adding web part to the wiki page, we still couldn't see it, the reason is that the wiki page is reloadey by the html code,
we had to re-write the html:
<div class="ms-rtestate-read ms-rte-wpbox" contenteditable="false" style="float:left;width:30&%;min-width:300px;"> <div class="ms-rtestate-notify ms-rtestate-read $($lvwpGuid)" id="div_$($lvwpGuid)" unselectable="on"></div> <div id="$($lvwpGuid) " unselectable="on" style="display: none"></div> </div>
so we just change the id of div, then we will get the result.
Here is the function:
Call the function : AddCustomWebPart http://localhost "SitePages/Home.aspx" "TrendingTagsWebPart_TrendingTags.webpart""Trending Tags"
function AddCustomWebPart($siteCollectionUrl, $pageUrl, $webPartName, $title){ $site = new-object Microsoft.SharePoint.SPSite($siteCollectionUrl); $web = $site.OpenWeb() $defaultPage = $web.GetFile($pageUrl) $item = $defaultPage.Item #Create fancy GUID $lvwpGuid = [System.Guid]::NewGuid().ToString() $lvwpKey = "g_" + $lvwpGuid.Replace("-","_") $errorMsg = "" [Microsoft.SharePoint.SPList]$wpList = $site.GetCatalog([Microsoft.SharePoint.SPListTemplateType]::WebPartCatalog) [Microsoft.SharePoint.SPFolder]$wpFolder = $wpList.RootFolder [Microsoft.SharePoint.SPFile]$wpFile = $wpFolder.Files[$webPartName] [System.Xml.XmlReader]$xmlReader = [System.Xml.XmlReader]::Create($wpFile.OpenBinaryStream()) [Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager]$wpManager = $defaultPage.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared) $myCustomWP = $wpManager.ImportWebPart($xmlReader,[ref]$errorMsg) $myCustomWP.ID = $lvwpKey $myCustomWP.Title = $title $wpManager.AddWebPart($myCustomWP, "WPZ", 0); #if you wan to add the web part to web part zone page instead of wiki page, you just need to change the value "WPZ" to the zone # name you want, and the follow code wiil be not added. The same to add list view web part to wiki page # Add the HTML content and web part containers to the page. $wikiContent = @" <div class="ms-rtestate-read ms-rte-wpbox" contenteditable="false" style="float:left;width:30&%;min-width:300px;"> <div class="ms-rtestate-notify ms-rtestate-read $($lvwpGuid)" id="div_$($lvwpGuid)" unselectable="on"></div> <div id="$($lvwpGuid) " unselectable="on" style="display: none"></div> </div> "@ #wiki content is stored in the field “Wiki Content” $item["WikiField"] = $wikicontent $item.Update() $xmlReader.Close() $web.Dispose() $site.Dispose() write-host "Done" }
1. Add list view web part to wiki page:
call the function :
AddWebPartToWiki http://localhost "SitePages/Home.aspx" "Links" "LinkOne"function AddWebPartToWiki($siteCollectionUrl, $pageUrl, $listName, $viewName){ $web = get-spweb $siteCollectionUrl $list = $web.Lists[$listName] $wpPage = $web.GetFile($pageUrl) $item = $wpPage.Item # Get the LimitedWebPartManager $webpartmanager=$wpPage.GetLimitedWebPartManager([System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared) #Create fancy GUID $lvwpGuid = [System.Guid]::NewGuid().ToString() $lvwpKey = "g_" + $lvwpGuid.Replace("-","_") # Instantiate wp $lvwp = new-object Microsoft.SharePoint.WebPartPages.XsltListViewWebPart $lvwp.ID = $lvwpKey $lvwp.WebID = $web.ID; $lvwp.ChromeType = "TitleOnly"; $lvwp.Title = "Your Title"; #$lvwp.TitleUrl = "http://dev-sp"; $lvwp.Toolbar = "No Toolbar"; $lvwp.ListID = $list.ID; $lvwp.ListName = $list.ID.ToString(); # Set the view $lvwp.ViewGuid = $list.Views[$viewName].ID.ToString(); # Add the web part $webpartmanager.AddWebPart($lvwp, "WPZ", 0); # Add the HTML content and web part containers to the page. $wikiContent = @" <div class="ms-rtestate-read ms-rte-wpbox" contenteditable="false" style="float:left;width:30%;min-width:300px;"> <div class="ms-rtestate-notify ms-rtestate-read $($lvwpGuid)" id="div_$($lvwpGuid)" unselectable="on"></div> <div id="$($lvwpGuid) " unselectable="on" style="display: none"></div> </div> "@ #wiki content is stored in the field “Wiki Content” $item["WikiField"] += $wikicontent $item.Update() # Update the web $web.Update(); $web.Dispose(); write-host "success" }
More to Link: http://soufiane-benyoussef.blogspot.in/2011/09/add-custom-webpart-to-page-using-power.html
相关文章推荐
- Add custom and listview web part to a page in wiki page using powershell
- CS001497 - Add data to a web page with JavaScript, WebKit, and Qt
- How to add custom fields to Customer Registration and Account page in magento
- Add/Remove listview web part in publish site via powershell
- How To Print Using Custom Page Sizes on Windows NT and Windows 2000(VB6)
- SilverLight_How to: Add Silverlight to a Web Page by Using HTML
- Add/Remove listview web part in publish site via powershell
- Add Script Editor and Content Editor Web Part via powershell
- How To Do Math Using PowerShell, Part 1 and Part 2
- (极力推荐)BW:How to load and generate a custom hierarchy in SAP Business Warehouse (SAP BW) without using flat files
- Using Wppackager to Package and Deploy Web Parts for Microsoft SharePoint Products and Technologies
- [Project] Simulate HTTP Post Request to obtain data from Web Page by using Python Scrapy Framework
- A problem displaying [localhost] caused Internet Explorer to refresh the webpage using Compatibility
- How to Implement Add/Edit/Delete/View with PHP using Angular JS (Part-1)
- Infinite Scroll To Load More Content in Webpage Using Ajax, and Jquery
- Gitosis and Gitweb – Part 2 – Add Projects and Contributors
- Send and Receive JSON objects to Web Service Methods using jQuery AJAX in ASP.Net
- Deploy Ceph and start using it: end to end tutorial – Installation (part 1/3)
- How to add, modify, or delete registry subkeys and values by using a registration entries (.reg) file
- Sys.WebForms.PageRequestManagerParserErrorException - what it is and how to avoid it