Jump to content

Recommended Posts

Posted

Hi everyone,

I've been running this module in production a spirits catalog with 12,000+ products — for several months. Today I'm releasing it publicly.

GitHub: https://github.com/mxmsmnv/Collections

The problem

ProcessWire's page tree is brilliant for site structure. It's painful for data management. When you have thousands of pages as records — products, listings, vacancies, menu items — you hit the same walls on every project: no table view, no inline filters, no bulk actions, no export, no REST API, no role scoping per dataset.

Every PW developer has solved some version of this. Collections solves it once.

Screenshots

col1.thumb.png.6cd1705ea49faea6f3816393b7886c6c.png col1-dark.thumb.png.f09459ddb87d920eafdb641c696f07fa.png

col2.png.d89734d75d147e365c6794e36fdb9538.png col3.png.bed5a85b61a08b994df977e1e8103679.png

col7.png.8dd72336d58efb0d4c08a75fe95c3ba0.png col4.png.8dd0c316aa682c10f892b65ca08627c0.png

col5.png.ee20f73576a3ae2dfd42bd878ac7d6f9.png col6.png.d843289011c5892dce54faf5fa3f9ee4.png

What it does

Gives any ProcessWire template a configurable admin table — live search, dropdown filters, inline status toggles, bulk actions, CSV/JSON export, and a REST API — all configured through a UI, without writing code.

Admin UI:

  • Configurable columns per collection with custom labels
  • Live search with 300ms debounce across multiple fields including Page references
  • Dropdown filters for FieldtypePage and FieldtypeOptions fields
  • Inline publish/unpublish toggle via AJAX
  • Bulk actions: publish, unpublish, delete with CSRF protection
  • CSV and JSON export with active filters preserved
  • Role-based permissions matrix — scope each role per collection
  • "View in Collection" button injected into the page edit form

REST API:

  • Bearer token, query param, HTTP Basic, and PW session auth
  • API key management with expiration dates and per-key capability scopes
  • SHA-256 hashed keys, usage tracking, rate limiting (100 req/min)
  • WireCache support for GET responses

ProFields support: Table, Textareas, Multiplier, Repeater Matrix, Combo — including dot-notation for subfields (address.city, blocks.hero.title, prices.*.amount)

Field types: Text, Textarea, Integer, Float, Checkbox, URL, Email, Date, Image, File, FieldtypeFileB2, FieldtypePage, FieldtypeOptions, MapMarker, Color

Requirements: ProcessWire 3.0.244+, PHP 8.2+

 

There's a thread from 2013 asking for exactly this: Module Idea: Flat Listings — here it is, 12 years later.

Known issues are tracked on GitHub — the module is stable for production use, active development continues.

  • Like 5
Posted

Brilliant implementation as usual. Ditto - I find when creating modules that tables are almost always the most important working view and the data model I have to fight and customise the most. I’d love to see this incorporated into the core and more modules too. 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...