3

Our SP2013 farm contain 10 site collections. Each collection have their own Master page. In one of site collection I created a page with some OOB search webparts and a customized natvigation webpart. The natvigation webpart is shared with all 10 site collections.

I have tried open two SC with Sharepoint Designer 2013 and copy & paste over this page. The page load up an error "Sorry, something went wrong This page is not using a valid page layout. To correct the problem, edit page settings and select a valid page layout."

Then I have tried "download as a copy" and upload the aspx file to another site collection. The same error show up.

May I know is there any easy way to copy this page over 10 site collections? Thank you.

3 Answers 3

3

SharePoint Designer (SPD) could be utilized to import/export site pages across site collections. enter image description here

How to copy site page from one site collection to another

  • open SharePoint (source) site via SPD and select the page you would like to export

  • click the Export button in SPD and save the specified file

  • open the exported file and find the element mso:PublishingPageLayout. Then update it's value to specify the correct Master Page gallery location. For example, if the destination site is located under the projects site collection, then the updated element might look like this: <mso:PublishingPageLayout msdt:dt="string">/projects/_catalogs/masterpage/BlankWebPartPage.aspx, Blank Web Part page</mso:PublishingPageLayout>
  • open SharePoint (destination) site via SPD and click the Import button. Click Add File.. button and select the exported file

That's it.

Note: in some cases SPD could incorrectly generate the namespaces in the exported file. If you receive the error: Web Part Error: Unknown server tag. then open the exported file and make sure that TagPrefix name and web parts namespaces are correctly specified.

4
  • I tested and it returns error "Type 'Microsoft.SharePoint.WebControls.EmbeddedFormField' does not have a public property named 'table'. " Why it complain simple object like table? How can I work around it? Thanks for advice.
    – Mark L
    Commented Jun 3, 2014 at 15:53
  • I tried again with a clearer setup. I can import the page successfully and not error throw. However all the webparts are lost. Only the blank page layout remained.
    – Mark L
    Commented Jun 10, 2014 at 8:14
  • I raised another question at sharepoint.stackexchange.com/questions/103190/…. Thanks!
    – Mark L
    Commented Jun 10, 2014 at 8:22
  • Mark, there are have to be some errors, since web parts are not preserved after the export. I've tested it with ootb search result page by exporting it from one site collection to another, and it works for me. Commented Jun 10, 2014 at 8:25
0

You can create that page as Site page or application page and deploy that. In this way you can get that page across all site collections.

http://msdn.microsoft.com/en-us/library/ff354405.aspx

http://msdn.microsoft.com/en-us/library/ee231581.aspx

0

This is what I did to move pages between sites. Hope it helps.

Import-Module SharePointPnPPowerShellOnline

#Source and Target Sites
$tenant = "tenant";
$SourceUrl="https://$tenant.sharepoint.com/sites/sourceSite"
$targetRelativeLibraryUrl="/sites/marketing/SitePages"

#SPO Connection
$AdminPassword=Read-Host -Prompt "Password" -AsSecureString
$adminUPN = "[email protected]"
$Credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $adminUPN, $AdminPassword
Connect-PnPOnline -Url $SourceUrl -Credentials $cred
#Connect-PnPOnline -Url $SourceUrl -UseWebLogin
$ServerRelativeUrl=(Get-PnPWeb).ServerRelativeUrl

#Get all source pages
$pages = Get-PnPListItem -List sitepages

Foreach($page in $pages){
    $pageName = $page.FieldValues["FileLeafRef"]
    #if($pageName -like "Migrated*"){ #OPTIONAL FILTER
        
        #Write-Host $pageName
        $file = Get-PnPFile -Url "$ServerRelativeUrl/sitePages/$pageName"
        $fileServerRelativeUrl = Get-PnPProperty -ClientObject $file -Property "ServerRelativeUrl"

        #Start the move
        Move-PnPFile -ServerRelativeUrl $fileServerRelativeUrl -TargetServerRelativeLibrary $targetRelativeLibraryUrl -Force  -AllowSchemaMismatch -AllowSmallerVersionLimitOnDestination
    #}
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.