Disabled block editor on updating to 6.0.x
-
After update to the 6.x version, I only can edit with the classic editor.
The check for edit with gutenberg is active, but doesn’t works. In consecuence, all the older events shows a broken design.
What can I do?
The page I need help with: [log in to see the link]
-
I think I have found what causes the event calendar to fail for us. We have Redis setup on our environment and when I disable the object cache there, it works like it supposed to. When I enable the Redis object cache it fails again. Is that a know issue and are there solutions available, besides not using Redis?
Don’t know why it only fails in the events calendar v6.x. Version 5 didn’t have this issue for us.
@hanswitteprins thank you very much for your information. I think I have Redis installed in the hosting of this web.
I’m going to try.
Thanks soooo much.
I can’t understand why has been marked the topic as resolved. It’s not resolved.
I dove a bit in Redis and think I might understand something now.
It seems that Redis stores all simple values in string type format (or at least it doesn’t store any boolean values as boolean), so when you try to store a boolean value to it, that value must be type converted to a string value. php translates false to an empty string and true to a string with the number 1 in it, so that might explain the empty string return value of the get.
I have checked the Redis cache and it contained the key
wp:tribe-events:tec_editor_compatibility_toggle_blocks_editor
with an empty string value, so it is found by Redis and it will not return null or true/false as result of it. Instead it will always return the string value of the initial false that is stored as an empty string, and TEC doesn’t translate that to the falsey value of false.When I remove the key and refresh the page the key is added again with again an empty value.
So redis will find always find the key (and not return false or null), but with a value that is of no use to TEC, since TEC always checks for boolean or null to determine what to do.
I am not sure where the value exactly is added, since I haven’t seen a call to the
redis::set()
method being executed. But from what I understand of the code in TEC it must be a type translation problem that causes it.It could probably be solved by TEC by not trying to storing a settings in boolean format in the cache.
Also it seems that TEC stores the value in redis independent on what page I am. Refreshing a Redis settings page also added the key back to the redis cache. I would have expected that to happen only on an event admin page.
Well that must be enough for this error I think. The problem is clear, now TEC needs to decide if the plugin will change as a result. For now TEC and Redis are incompatible
Looking in the github repo, I think I found the commit that has caused all this trouble for us. Before this commit the editor toggle was saved in a static property, but this commit changed that to using the cache for test purposes. Helas it broke compatibility with Redis in doing so.
Commits on Sep 6, 2022 Cache the block editor toggle via cache object Using the cache object rather than <code>static::</code> values allows automated tests to expire the cache. @borkweb
The link to this commit is:
https://github.com/the-events-calendar/the-events-calendar/commit/4fd81db59018fa05e02fe3a3e536a13f77e6c1aaIt seems to be merged in TEC version 6.0.1, so that explains why it broke since version 6.
Also I found that when I manually store the string value “1” in the toggle key in redis, that the functionality seems to work, but of course that would hardcode the outcome instead of letting the settings do that.
Please undo this commit or change the solution so it will work with Redis too.
@glycymeris I have added a new support thread for this issue and pointed to this one, so it would still have an open thread for this problem and I think the problem is now clear enough so it can be fixed easily when someone wants to do that.
Thank you so much for this investigation. I can confirm everything: I had to disable Redis cache in order to upgrade. Now I have to wait for a fix in order to re-enable Redis.
@ornanovitch Glad it helped.
Thank you very much for your support @hanswitteprins ??
I hope the guys of The Events will take note of your suggestions.
@glycymeris , In my still open thread I have a reaction from TEC support. It is now an accepted support case for them, but no timeline as yet.
Masood (@masoodak) said:
Hi @hanswitteprins,
Thanks for reaching and bringing this to our attention.
Our development team has started tracking this in a bug report in our internal system, and a fix for this will hopefully be added to a future update of the plugin.
Many thanks for digging into this and sharing the details.
Kind regards,
Masood(Ref: TEC-4613)
Hi @hanswitteprins, appreciate you providing more details and suggestions here, and yes @glycymeris we will definitely take note of this.
Also, that’s correct. We’re still working on this issue, and the bug ticket is now In Progress. I am unable to provide an exact date or time estimate for when this bug will be fixed, but you’ll be notified when there are any updates.
Hang in there,
Abz—
Bug Ticket Reference: TEC-4613Thank you very much to @hanswitteprins for his exhaustive work researching the problem and to @abzlevelup for your your willingness to resolve the conflict.
??
No worries @glycymeris, we appreciate your patience as well. I already added more details to our existing bug ticket regarding this issue.
Rest assured that we’d notify you if there are updates as well.
Happy Holidays.
Best,
AbzHi there,
We’re back with good news!
Our developers have just released the Events Calendar version 6.0.7, which addresses the issue crashing the Blocks Editor whem the Redis Object cache is activated.
Please update your Events Calendar plugin to include those improvements over your website.
Best regards,
Thank you very much @gugaalves. I have updated the plugin and everything is working again.
Best regards
- The topic ‘Disabled block editor on updating to 6.0.x’ is closed to new replies.