konradmichalik / typo3-pagetree-facets
Pagetree Facets - Filterable page tree with an extensible filter tab API, for TYPO3 v13 and v14.
Package info
github.com/konradmichalik/typo3-pagetree-facets
Type:typo3-cms-extension
pkg:composer/konradmichalik/typo3-pagetree-facets
Requires
- php: ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- ext-ctype: *
- ext-mbstring: *
- doctrine/dbal: ^4.0
- psr/event-dispatcher: ^1.0
- psr/http-message: ^1.0 || ^2.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
- typo3/cms-backend: ^13.4.0 || ^14.3.6
- typo3/cms-core: ^13.4.0 || ^14.3.6
Requires (Dev)
- eliashaeussler/version-bumper: ^4.1.0
- konradmichalik/ttt: ^0.4.0
- phpunit/phpcov: ^10.0.1 || ^11.0.4 || ^12.0 || ^13.1.0
- phpunit/phpunit: ^11.0 || ^12.0 || ^13.0
- typo3/cms-base-distribution: ^13.4.0 || ^14.3.0
- typo3/cms-form: ^13.4.0 || ^14.3.6
- typo3/cms-seo: ^13.4.0 || ^14.3.6
- typo3/testing-framework: ^9.0 || ^10.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-10 12:49:56 UTC
README
TYPO3 extension typo3_pagetree_facets
This extension turns the TYPO3 backend page tree into a faceted filter. Instead of scrolling through a large tree, you narrow it down to exactly the pages you care about: by content type, page state, records, activity, translations or SEO.
Filters are compact tokens that you can type into the tree's existing search field or assemble in a guided modal, and the whole feature is extensible through a public facet API.
Note
Ever scrolled an entire page tree looking for the one page with that content element on it? Or the handful of empty pages nobody ever cleaned up? The core search only matches page titles and UIDs, so it can't answer either question. This extension can, right in the same tree you already know.
✨ Features
- Filterable page tree: type tokens into the tree's search field, or open a guided modal with Ctrl/Cmd+Shift+L
- Nine built-in filter facets (SEO requires EXT:seo, Forms requires EXT:form): content elements, records, activity, page type, layouts, page state, translations, SEO and forms, plus
site:/under:scope tokens - Sharable links, session persistence and favorites: hand a filter to a colleague, keep it across a reload, or save it under a name
- Live match count: see how many pages a selection would match before applying, right in the filter modal (opt-out via
livePreviewCount) - Extensible: add a single option to an existing facet, or a whole facet of your own
- Per-user/group control: disable facets installation-wide or via User TSconfig
- Raw query escape hatch (
raw:, opt-in): match arbitraryfield=valueconditions against any TCA table the user may already read
🔥 Installation
Requirements
- TYPO3 ^13.4 || ^14.3
- PHP 8.2 - 8.5
Composer
composer require konradmichalik/typo3-pagetree-facets
TER
Download the zip file from TYPO3 extension repository (TER).
📖 How it works
Press Ctrl/Cmd+Shift+L (or use the toolbar button next to the tree's search field) to open the filter modal. Pick criteria by clicking through the facets on the left; each selection appears as a removable chip above the tree, with a per-facet count of matching pages, and narrows the tree live as you go.
Prefer typing? Every filter is also a compact token that lands directly in the
tree's existing search field, e.g. doktype:1 is:empty. See Usage
for the full token syntax, the facet/token-key table, and how this differs from
the global backend search.
📚 Documentation
| Topic | What's inside |
|---|---|
| Usage | Token syntax, the Token view toggle, every built-in facet's token keys, and scope tokens |
| Configuration | Extension settings, the raw: power-user token, and per-user/group control via User TSconfig |
| Known Limitations | Scopes as a post-filter, layout inheritance, page permissions, and freetext-with-token search behaviour |
| Extending | The two extension points, the example_tab fixture, and the public API / stability promise |
💎 Credits
This project is inspired by the great pagetreefilter extension.
🧑💻 Contributing
Please have a look at CONTRIBUTING.md.
⭐ License
This project is licensed under GNU General Public License 2.0 (or later).

