Kirby 3.2.0––our second feature branch since the launch––is on the horizon and will launch on June
18th25th. It’s a massive new release with countless new features and enhancements––99% of which are coming from your ideas and feedback. Thank you so so much for all your input in the last months since the launch of v3.
These are just a few of the highlights:
- Page locking of currently edited pages makes working in teams a lot safer
- Duplicating pages (with or without subpages/files) to create new content instead of starting from scratch
- Upload functionality for the files field makes it a lot more user-friendly
- Better permissions allow you to fine-control each option for pages, files and users
Check out the complete list of new features.
We published release candidate 2 yesterday, and we need your help with testing it, especially the content locking feature. If you can, throw the new version at an existing project and let as many editors as possible test it. (But please don't test the 3.2.0-RC2 in a production environment!)
A starter kit for Panel plugins
Bastian created a Pluginkit for Panel plugins along with some documentation to get you started with Panel plugins more easily.
- The OAuth 2 plugin is an interface to use OAuth 2.0 providers for user authentication in Kirby 3.
- Based on the idea of the ](https://github.com/medienbaecker/kirby-link-field) by Thomas Günther, there is now an extended Link field by Oblik Studio that allows you to choose between different types of links (pages, files, email, phone, external).
- Prevent unauthorised access to a page tree with the Secured Pages plugin. (Note that the plugin does not prevent access to files.)
Always test third-party plugins thoroughly before using them in production.
We have added quite a few new recipes to our cookbook:
Email with attachments: How to send an email with file attachments from a frontend form.
Creating pages from frontend: Learn how to create pages from user input on the front end, e.g. from an event registration form.
Subpage builder: With the subpage builder, you can auto-generate subpages recursively when you create a new page.
Fetching field options: This recipe answers an often asked question: how to fetch the text labels from your fields' options.
Cleaning up content files: During development, you often restructure content, so that you end up with unused fields in your content files. This recipe shows how to remove this clutter.
Sebastian Greger describes the process of creating "Sendmentions and Commentions – webmention plugins for Kirby 3" including fully functional prototypes (links to the projects in the article).
"Structuring the docker setup for PHP projects" is the third part of an in-depth tutorial on how to setup a Docker development environment for PHP development.
Inlining CSS can be a way to improve the performance of your web projects but it also has some downsides. Milica Mihajlija gives an introduction and lists various tools that help automate this process, while an article by Scott Jehl explains how to cache inlined CSS.
Chris Cid shows ways to deal with long words in CSS if they don't fit into the container.
Are background images an anti-pattern and why? Andrew Welch has an answer when it is better to avoid them.
Following a discussion on Twitter, Anselm Hannemann wrote a post about Open Source giants, discussing the ethical impact of using Open Source projects from companies like Google, Facebook or Palantir if you don't agree with their business models.
In "An exercise program for the fat web", Jeff Atwood shows how to set up the Pi-Hole to get rid of all the ad overhead on websites, effectively blocking these ads for every single device on your network.
Manuel Matuzovic created a little experiment to prove that automatic accessibility testing has its limits and that a high score in a tool like Lighthouse doesn't mean that a site is accessible at all.
GitHub: Generate new repositories with repository templates. The Kirby Starterkit and Plainkit can now be used as templates for your own projects. Unlike forks, the new repo will not have a direct connection back to the original repository.