Hello Kirby community!
After updating to KirbyCMS version 3.5.0 to 3.7.0 I am facing the issue of getting a blank screen when creating a new page. I deleted the media/ directory as suggested on the website and I also don’t have a content folder (removed for ensuring it’s nothing in my contents that is messing up the update – the error occurs with or without contents).
In the Kirby Panel on localhost I try to create a page using the “Add” button and when clicking on “Create Draft” I get the blank screen. I also get a JS error as seen in the console:
I’m using composer to install the KirbyCMS package in a Docker container and this is the “require” section of our composer.json file for:
"php": "^7.4",
"getkirby/cms": "^3.7",
"ext-mbstring": "^7.2",
"ext-curl": "^7.2",
"ext-ctype": "^7.2",
"ext-gd": "*",
"symfony/dependency-injection": "^5.2",
"symfony/config": "^5.2",
"symfony/yaml": "^5.2",
"php-ffmpeg/php-ffmpeg": "^0.17.0"
I’m facing the same issue when upgrading to version 3.6.6. Any idea on what could be the issue?
Thanks in advance for your help
Have you also updated all plugins?
Hello, texnixe.
The issue could actually be narrowed down to one of the custom made plugins. In the index.js file of the plugin the fields “issue”, “page” and “update” are referenced but it’s undefined. I found that this.path field of the page view object is also undefined, which was not the case in the previous version. Also the pages.breadcrumb() function seems to not exist anymore.
Since this is a custom written-plugin I’m not sure how to go about updating it. How would you suggest doing that?
Okay I found on the release notes’ breaking changes that indeed the .breadcrumb() function has been removed
Is there a straightforward mapping of old to new functions or would the plugin need to be re-developed from scratch to match the Fiber architecture?
What sort of a plugin is this? Old Panel views have been replaced with Panel areas…
It is a plugin for archiving pages and indeed it seems like the old way of doing things doesn’t work so I’m rewriting most of it. I think this answers also the question of the original post.
I still have a few issues during the rewrite. As I’m using dialogs I run into the issue of running submit() in the php code as shown here Panel dialogs | Kirby CMS, while I actually want to handle submission on the frontend side only. However, if I omit the implementation of the submit() function I get the error:
“Error: Your dialog does not define a submit handler”.
Reading the documentation it says that I can also return an array with a Vue.js event. I have done it inside the submit() function: return [ 'event' => 'submitData', 'data' => [ 'foo' => 'bar', ] ];
I’m not so familiar with Vue.js, how should I define the counter-part on Vue.js side so that the event “submitData” is called? Unfortunately I couldn’t find any details regarding the JS side in the documentation and the solution posted in this thread Panel Dialog Submit - Dispatch Vuex Events does not work for me.
Wondering if it should be
this.$events.$on
At least that’s what I find in the source code
I’m wondering though what the thought behind the submit() function of the dialog in PHP is. Since it accepts only the $id parameter, how would I pass data from the frontend side to it?