fendinger/kirby-pagestree-section

Kirby CMS Panel plugin that displays pages as a collapsible tree view

Maintainers

Package info

github.com/fendinger/kirby-pagestree-section

Language:Vue

Type:kirby-plugin

pkg:composer/fendinger/kirby-pagestree-section

Statistics

Installs: 6

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-04-15 19:28 UTC

This package is auto-updated.

Last update: 2026-04-15 19:51:37 UTC


README

Kirby Pagestree Section

Kirby Pagestree Section

A Kirby CMS Panel plugin that provides a pagestree section type. It displays pages as a collapsible tree view — similar to the native pages section, but with recursive rendering of all subpages as a nested, expandable tree.

Features

  • Collapsible tree view with toggle arrows
  • Native Kirby look & feel using k-item components
  • Drag & drop sorting for listed pages (sort handle at the left edge)
  • Full context menu matching the native pages section (Open, Preview, Rename, Change URL, Change Status, Change Position, Change Template, Move, Duplicate, Delete)
  • Status indicators with native Kirby themes (draft, unlisted, listed)
  • Client-side search/filter across all tree levels (parents stay visible when children match)
  • Pagination for root-level pages
  • Multi-language support
  • Open/closed state persisted in sessionStorage
  • Supports all properties from the native pages section
  • Automatic reload after panel actions (rename, delete, status change, etc.)

Installation

Composer

composer require fendinger/kirby-pagestree-section

Manual

Download and copy this plugin to /site/plugins/kirby-pagestree-section.

Usage

Add the section to any blueprint:

sections:
  tree:
    type: pagestree
    label: Page Tree

Full example

sections:
  tree:
    type: pagestree
    label: Site Tree
    parent: site
    maxDepth: 4
    status: all
    sortable: true
    search: true
    limit: 20
    templates:
      - default
      - blog-post
    create:
      - default
      - blog-post
    text: "{{ page.title }}"
    info: "{{ page.date.toDate('d.m.Y') }}"
    empty: No pages yet
    help: Drag listed pages to reorder them

Properties

All properties from the native pages section are supported, plus one additional property:

Property Type Default Description
maxDepth int null Maximum nesting depth (null = unlimited)

Inherited from pages section

Property Type Default Description
batch bool false Enable batch delete
columns array Not applicable (tree layout)
create mixed null Templates allowed for new pages, or false to disable
empty string Text for the empty state
flip bool false Reverse sort order
headline string Section headline
help string Help text below the section
image mixed [] Image/icon configuration
info string Info text template
label string Section label (alias for headline)
layout string list Not applicable (tree layout)
limit int 20 Number of root pages per page
max int null Maximum number of pages
min int null Minimum number of pages
parent string Parent page query
query string null Filter pages by query
search bool false Enable client-side filter
size string auto Not applicable (tree layout)
sortable bool true Enable drag & drop sorting
sortBy string null Auto-sort field (disables manual sorting)
status string all Filter by status: draft, unlisted, listed, published, all
template string null Filter by single template
templates array null Filter by multiple templates
templatesIgnore array null Exclude templates
text string {{ page.title }} Display text template

Support

If you find this plugin useful, you can support the development:

Buy Me A Coffee

License

MIT

Author

fendinger.de