Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Set-PnPPageTextPart returns You cannot host text controls inside a one column full width section ... #4719

Open
Mesicni opened this issue Jan 31, 2025 · 0 comments
Labels
bug Something isn't working

Comments

@Mesicni
Copy link

Mesicni commented Jan 31, 2025

Reporting an Issue or Missing Feature

Set-PnPPageTextPart returns error You cannot host text controls inside a one column full width section, only an image web part or hero web part are allowed after Microsoft pushed updates to Page layout options.

Expected behavior

Change text webpart text. The issue is probably related to the recent Microsoft updates to top page section, which now allows fullwidth section with webparts instead of only banner or hero.
Related to

Actual behavior

Error: Set-PnPPageTextPart : You cannot host text controls inside a one column full width section, only an image web part or hero web part are allowed
At line:32 char:17

Steps to reproduce behavior

#variables
$siteUrl = "xxx"
$oldText = "abc"
$newText = "def"

#script

Connect-PnPOnline uuu -clientID yyy
 
# Get all pages from the Site Pages library
$pages = Get-PnPListItem -List "Site Pages"
 
foreach ($pageItem in $pages) {
    # Get the file name of the page
    $pageName = $pageItem.FieldValues["FileLeafRef"]
    Write-Host "Processing page: $pageName" -ForegroundColor Yellow
 
    # Load the page
    $page = Get-PnPClientSidePage -Identity $pageName
 
    if ($page) {
        foreach ($webPart in $page.Controls) {
            if ($webPart.Type.Name -eq "PageText") {
                $textContent = $webPart.Properties["Text"]

                # Replace old text with new text
                $updatedTextContent = $textContent -replace [regex]::Escape($oldText), $newText
 
                # Update the text part
                #Set-PnPPageTextPart -Page $pageName -Text $updatedTextContent -InstanceId $webPart.InstanceId
                # $instanceIdString = $webPart.InstanceId.ToString()
                #Write-Host "Text webpart $instanceIdString.InstanceId updated successfully for page $pageName." -ForegroundColor Green
            }
        }
    } else {
        Write-Host "Page not found or could not be loaded: $pageName" -ForegroundColor Red
    }
}

What is the version of the Cmdlet module you are running?

1.12.0

Which operating system/environment are you running PnP PowerShell on?

  • [ x] Windows
@Mesicni Mesicni added the bug Something isn't working label Jan 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant