Feb 06 2023 12:28 PM - edited Feb 06 2023 12:30 PM
In Site Pages library, I need to change News (Promoted State =2) to Page (Promoted State = 0) -- however, the Promoted State column is read only. Is there another way to change the page from News to regular Page without using Power Automate or PowerShell?
Feb 06 2023 12:34 PM
SolutionFeb 06 2023 12:37 PM
Feb 06 2023 12:37 PM
Apr 17 2023 09:29 AM
May 03 2023 09:04 AM
@CLHess That's correct, the $file object in the original post doesn't carry the Id of the page so it's passing null to the Get-PnpListItem cmdlet.
Assuming you know the name of the page you're wanting to unpublish, you'd be able to retrieve it with the code below without the need for the page Id.
# Get the desired page object
$PostName = "Some Post"
$Page = Get-PnPListItem -List "Site Pages" | Where-Object {$_.FieldValues.Title -eq $PostName}
# Change promoted state and update
$Page["PromotedState"] = 0
$Page.UpdateItem()
Invoke-PnPQuery
Jun 22 2023 01:51 AM - edited Jun 22 2023 02:02 AM
Hi, @Tamras1972 !
Just to counterpoint @Adnan Amin's words, which I'd kindly suggest are a little strong. I say this because you can change this value easily.
There are a few ways, I will cover the two most obvious ones.
The 'Promoted State' is literally available on every site page to change a Site Page to a News page and back again via the fly-outs in the top right.
You can also display this column in the Site Page library very easily, see Greg's handy explanation here.
Equally, it can be amended by calls to the API, my recommendation is to use the /ValidateUpdateListItem endpoint when sending.
Method | POST |
URI | SITE/lists/YOUR_PREFERENCE_ON_GETTING_LIST/items(ITEM_NUMBER)/ValidateUpdateListItem |
Body | See below table, the SharePoint site doesn't allow code in tables like the Power Platform one. Weird! |
{
"formValues": [
{
"FieldName": "PromotedState",
"FieldValue": "1"
}
],
"bNewDocumentUpdate": true
}
You may need to ensure that you have specific headers here, I'm not going in to ALL the detail. 🙂
Here is a table of the Promoted States:
Promoted State | Page Type | Published Status |
0 | Site Page | Published/Unpublished |
1 | News Page/Link | Unpublished |
2 | News Page/Link | Published |
Hope that this helps anyone else that's ended up here. 🙂
Jun 22 2023 02:05 AM
@influentialeliot you don't even need to use the api to change the promoted state from 2 to 0. Just format the Promoted State column with the following JSON:
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"flex-wrap": "wrap",
"display": "flex",
"flex-direction": "row"
},
"children": [
{
"elmType": "div",
"txtContent": "=if(@currentField == 0 ,'0 : Page' , if(@currentField == 1, '1 : News (Unpublished)' , if(@currentField == 2 , '2 : News','') ) )",
"style": {
"box-sizing": "border-box",
"padding": "4px 8px 5px 8px",
"display": "flex",
"border-radius": "16px",
"height": "27px",
"align-items": "center",
"white-space": "nowrap",
"overflow": "hidden",
"margin": "4px 4px 4px 4px",
"border": "1px solid"
},
"attributes": {
"class": "=if(@currentField == 0 ,'ms-fontColor-themePrimary ms-borderColor-themePrimary ms-bgColor-white' , if(@currentField == 1, 'ms-fontColor-themePrimary ms-borderColor-themePrimary ms-bgColor-themeLighter' , if(@currentField == 2 , 'ms-fontColor-white ms-borderColor-themePrimary ms-bgColor-themePrimary','') ) )"
}
},
{
"elmType": "div",
"style": {
"font-size": "18px",
"cursor": "pointer",
"padding": "10px",
"border-radius": "50%",
"display": "=if(@currentField == 0 , 'none' ,'')"
},
"attributes": {
"iconName": "MoreVertical",
"class": "ms-fontColor-themePrimary ms-bgColor-themeLighter--hover"
},
"customCardProps": {
"openOnEvent": "click",
"directionalHint": "rightCenter",
"isBeakVisible": true,
"formatter": {
"elmType": "div",
"txtContent": "Demote (Change to 0:Page)",
"style": {
"padding": "10px 20px 10px 20px",
"cursor": "pointer"
},
"attributes": {
"class": "ms-bgColor-themeLighter--hover"
},
"customRowAction": {
"action": "setValue",
"actionInput": {
"PromotedState": "0"
}
}
}
}
}
]
}
Rob
Los Gallardos
Intranet, SharePoint and Power Platform Manager (and classic 1967 Morris Traveller driver)
Jun 22 2023 06:11 AM
Jun 22 2023 10:46 PM
@CLHess @Tamras1972 Anyone looking for a easier solution to change SharePoint news page to site page, check my solution given on below thread:
Change SharePoint News Page to Site Page. Hope it helps!
Please consider giving a Like if my post helped you in any way.
Nov 02 2023 02:46 AM
@RobElliott This was one of the smartest things i've seen. I've always built a PA flow with a button in a formatted column. This is so much better. Thanks for sharing.
Nov 03 2023 02:34 AM - edited Nov 03 2023 02:34 AM
Hi, Rob ... yes ... and that is lovely!
That said, the Power Automate way allows people to fit it into their automations so that someone doesn't *have* to press a button. I would not have posted it otherwise. 🙂
Dec 05 2023 06:51 AM
Dec 12 2023 03:50 PM
Jan 12 2024 10:06 AM
@RobElliott This solution is wonderful!
Thank you so much!
May 06 2024 11:37 PM
My answer comes late, but I was able to edit this column with the quick edit function.
Feb 06 2023 12:34 PM
Solution