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

Try to update a is_active=0 cms page #12

Open
convenient opened this issue Oct 24, 2022 · 2 comments
Open

Try to update a is_active=0 cms page #12

convenient opened this issue Oct 24, 2022 · 2 comments

Comments

@convenient
Copy link

Saw this ages ago and forgot to report, i do believe that its still valid but I have not checked sorry 🙈

But I do remember the issue pretty well I think.

  1. Create a cms page some-page
  2. Set it as is_active=0
  3. Use this tool to try and change some of the content on a store view

The real life scenario was some page was temporarily disabled on production until the automated script could fix it, but the script couldn't fix it because it was is_active=0 and thus could not be loaded for being updated.

This tool uses the GetPageByIdentifier to load

try {
$page = $this->getPageByIdentifier->execute($identifier, $storeId);
} catch (NoSuchEntityException $e) {
// Rather than throwing an exception, create a new page instance

That uses the page resource model
https://github.com/magento/magento2/blob/5a022f69ada01effe32a207000a2391e1c918625/app/code/Magento/Cms/Model/GetPageByIdentifier.php#L43-L47

That uses a function to getPageId
https://github.com/magento/magento2/blob/5a022f69ada01effe32a207000a2391e1c918625/app/code/Magento/Cms/Model/ResourceModel/Page.php#L173-L176

That uses _getLoadSelect
https://github.com/magento/magento2/blob/5a022f69ada01effe32a207000a2391e1c918625/app/code/Magento/Cms/Model/ResourceModel/Page.php#L143-L155

getLoadSelect has hard coded filtering for is_active=1
https://github.com/magento/magento2/blob/5a022f69ada01effe32a207000a2391e1c918625/app/code/Magento/Cms/Model/ResourceModel/Page.php#L190-L207

If the store is set to is_active=0 it could never be loaded in this manner so this tool tries to create a new one, as it thinks it doesn't exist.

I think I had to work around this by using a collection to load the entity, but it was a while ago .

@markshust
Copy link
Owner

Thanks for the report, I'll test out to see if I can replicate.

@convenient
Copy link
Author

Thanks @markshust

Looking at the code I believe it should be an issue, but it was so long ago on a project that is no longer active. Thought i'd raise it in the offchance it's still valid.

I wouldn't lose sleep over it if its not reproducible

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants