Aug 25 2020 09:55 PM
Hi.
I'd like to be able to create a page/news template on site A, and copy it over site B. I found a way to copy files over from site A to site B by running something like Get-PnPFile to download the template from site A, and Add-PnPFile -Path './mytemplate.aspx' -Folder 'templates' to upload the file to site B's "templates"-folder, but on site B the template is not listed under the templates gallery when creating new pages/news, so I must have missed something.
Any pointers as to how to both copy the template file and also get it to appear on site B's templates gallery will be appreciated.
Aug 26 2020 02:31 AM
SolutionHi,
You need to have at least one template created before copied files are visible on Templates gallery. I noticed this when copying templates over with Power Automate.
I have been using PnP Provisioning Template to copy page templates between sites. If you are interested, you can check out my blog post about this topic.
https://mattipaukkonen.com/2020/07/02/distribute-sharepoint-page-templates-with-pnp-powershell-and-p...
Idea is first get all client side pages to a provisioning template, create a new template object with just page templates and apply it to a target site.
Aug 27 2020 10:40 PM
Thanks, this seems to be exactly what I'm looking for! I'll check it out.
Sep 08 2020 10:48 PM
@Matti Paukkonen I got things working exactly as needed, thanks to your script. Again, thanks!
Sep 15 2020 03:09 AM
@Matti Paukkonen , copying the templates works perfectly. However, when I have a template containing images, and copy that template to a new site, we find that the image doesn't seem to get copied. Is this a case even for you? Have you found a way to get this working?
Sep 22 2020 08:59 PM
Hi @kenneho,
You can include images to a template by adding -PersistBrandingFiles handle, for example
$basetemplate = Get-PnPProvisioningTemplate -IncludeAllClientSidePages -Handlers PageContents,Pages -OutputInstance -Schema LATEST -PersistBrandingFiles
If you are creating a new template, like in my blog post, you need to add Files.
$template.Files.AddRange($basetemplate.Files)
Example above is actually adding all image from SiteAssets library.
Hope this helps! Blog post examples also updated.
Aug 26 2020 02:31 AM
SolutionHi,
You need to have at least one template created before copied files are visible on Templates gallery. I noticed this when copying templates over with Power Automate.
I have been using PnP Provisioning Template to copy page templates between sites. If you are interested, you can check out my blog post about this topic.
https://mattipaukkonen.com/2020/07/02/distribute-sharepoint-page-templates-with-pnp-powershell-and-p...
Idea is first get all client side pages to a provisioning template, create a new template object with just page templates and apply it to a target site.