
In Kirby 4.0, the pages section can now be used with a custom query, which can be used to:
I’m trying to use the new query option as a replacement for the k3-pagesdisplay-section plugin. But I’m missing one of its options, controls: false, which hides the three-dots menu, and turns the section into a simple list of links to pages.
What’s the use case?
I want to encode this relationship as a pages field in one content type, but also display that relationship as a non-editable list of pages in the other content type.
Here’s what I did:
The rasteiner/k3-pagesdisplay-section plugin addresses this use case well. With the new query option, the built-in pages section addresses it as well, but since it shows controls, there’s a risk of accidental deletion of content by confused editors.
It would be great if the pages section could have an option to disable showing controls. Not as a permission (editors do have the permission to delete those pages, in my use case), but as UX option (I want to nudge editors to only delete content in the place where this content exists, i.e. in the editing page for that content or for its parent; and not in other places where the content might be referenced).
Attached: screenshots of the current setup with Kirby 3 and the k3-pagesdisplay-section plugin (right-hand column), and of a tentative setup with Kirby 4 and a pages section with query option (right-hand column).
Alternative solutions:
k3-pagesdisplay-section plugin for Kirby 4).exhibit.txt or artist.txt file), and offers dedicated relationships UI fields that can be used to edit those relationships from any of the two content types in the relationship.I have the exact same problem with the same kind of many-to-many relationships.

This would be a great improvement. (Unexperienced) editors could think they can remove a page from a section (Ses expositions) by “deleting” the page. But this action would not only remove the page from the section but delete the page entirely. To have an option, to disable the “options” (changeStatus, move, delete, etc.) would be a great UX improvment!

This could be addressed with a custom Panel CSS, hiding the options dropdown toggle and/or the page status flag.

Here is my custom panel css.
body > :where(
[data-template="person"],
) :where(
.k-section-name-locations,
.k-section-name-articles,
.k-section-name-events,
) .k-item-options {
display: none;
}
A section named articles can exist multiple times in different templates. That’s why I selected the template first and then the sections name.
When I create a new section, where I want to disable the options, I have to think about the panel css and carefully create a new css selector, when I change the template name, I also have to update the panel css.
Again, an option for pages/files section would be very hand.
Proposal:
# e.g. blueprints/pages/person.yml
articles:
label: Assigned articles
type: pages
query: page.articles
create: false
search: true
options: false # ← new option: disables/hides page options