Invalid Area message after editing block
Has anyone else seen this issue on 5.6.x? On a couple of my sites, I have this problem after I edit a block.
I go into EDIT mode, click on a block in an area and choose EDIT, make changes in the block editor, SAVE in the block editor.
When the editor closes to show changes, the block is gone and a message saying "INVALID AREA" is in its place. If I publish changes, all my changes are there and everything is fine. Here's a vid:
what version of concrete 5.6 are you using? It seems there was an issue in 188.8.131.52 with global areas:
I've just checked and it seems this was never fixed :(
So what you're trying to edit is a Stack within a Global Area?
If so, you could either try to use blocks instead of a Stack in that Global Area or try to apply the patch:
(where lines starting with - need to be deleted and lines starting with + need to be added)
If you try to apply the patch, back up the old file in case something goes wrong (and try this locally first if you can)
edit_block_popup.php (line 7).
This patch is fixing edit_area_popup.php, but while editing a block this file isn't used.
I tried to track this issue down in version 184.108.40.206, but the only reason i can come up with is an invalid cache, dit you try clearing the cache? ( even when you have it disabled )
The other 2 possibilities are:
that this line fails: $c = Page::getByID($_REQUEST['cID'], 'RECENT');
or this one $a = Area::get($c, $_REQUEST['arHandle']);
but if it's not the cache then they are both almost just direct calls to the database.
do you know how to open the database? maybe you can give me an export of the tables "Pages", "Collections", "PagePaths" and "Areas". Not sure if i can find anything with those tables but it i think that the problem almost has to be in there..
i just realized that this code is executed with $arIsGlobal = null.
$globalCache = $arIsGlobal ? ':1' : ''; $a = CacheLocal::getEntry('area', $c->getCollectionID() . ':' . $arHandle . $globalCache);
so that could mean that a global area and a normal area with the same name ('handle') could collide