Skip to content

webmanufaktur/ProcessShowcase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

ProcessShowcase

A boilerplate / reference module for building backend administrative interfaces in ProcessWire. It does nothing useful on its own — its sole purpose is to demonstrate, in one place, the patterns you will reach for when writing your own admin Process modules.

Install

  1. Copy the ProcessShowcase/ directory to site/modules/.
  2. In the ProcessWire admin go to Modules > Refresh.
  3. Click Install next to "Showcase".
  4. Navigate to Setup > Showcase.

The module installs a single admin page at setup/showcase/ and registers six child subpages via useNavJSON + nav. It only declares a single PHP class — no separate config file, no install hook, no field/template side-effects.

Showcase dashboard screenshot

What it demonstrates

File: ProcessShowcase.module.php

Pattern Implementation
Module configuration page getModuleConfigInputfields()
Admin landing page ___execute()
Custom subpages with menu entries nav + useNavJSON in getModuleInfo() and matching ___executeXxx() methods
Dashboard layout Stat cards + quick-action card grid in ___execute()
All common Inputfield types ___executeForms()
Buttons, button-group, submit + dropdown menu ___executeActions()
Dynamic repeater (add / remove / drag-reorder) ___executeRepeater()
Data tables (MarkupAdminDataTable and UIkit) ___executeTables()
Description / item / nav lists ___executeLists()
Card-grid layouts ___executeCards()

Subpages

URL Method What you'll see
setup/showcase/ ___execute() Stat cards, quick-action tiles, live config summary
setup/showcase/forms/ ___executeForms() Text, email, url, password, textarea, integer, float, datetime, select (single/multiple), radios, checkboxes, single checkbox, toggle, tags, icon, AsmSelect, PageName, PageTitle, Name, rich text (CKEditor → TinyMCE → textarea fallback), Page / PageAutocomplete / PageListSelect, File, Image, Selector, hidden, markup, fieldsets
setup/showcase/actions/ ___executeActions() Radio-based button group, UIkit uk-button-group, submit with dropdown of multiple addActionValue() items, secondary cancel button
setup/showcase/repeater/ ___executeRepeater() Dynamic repeater: add new rows, remove individual rows, drag-to-reorder via jQuery UI .sortable(), with the row count capped by the module's maxItems config
setup/showcase/tables/ ___executeTables() MarkupAdminDataTable with sortable columns, status labels, per-row action button group + a striped UIkit table
setup/showcase/lists/ ___executeLists() uk-description-list, uk-list with badges, uk-nav
setup/showcase/cards/ ___executeCards() Responsive uk-card grid with header / body / footer + action buttons

Key APIs referenced

  • Process base class — ___execute(), ___executeXxx(), $this->headline(), $this->breadcrumb(), $this->browserTitle()
  • ConfigurableModulegetModuleConfigInputfields(InputfieldWrapper $inputfields)
  • InputfieldFormprocessInput(), getValueByName(), magic $form->Inputfield… shortcuts
  • InputfieldSubmitaddActionValue($value, $label, $icon) for the dropdown action menu, showInHeader(true) for header-pinned submit
  • InputfieldButtonsetSecondary(), href, icon
  • MarkupAdminDataTablesetSortable(), setEncodeEntities(false), headerRow(), row()
  • InputfieldMarkup + raw HTML rows + jQuery UI .sortable() — the recipe used for the dynamic repeater
  • Modules::getConfig / Modules::saveConfig — persisting module settings

Safe by design

  • Restricted to superusers in init().
  • Form submissions are echoed back; nothing is written to pages, fields, templates or files.
  • Uninstalling removes the admin page automatically (handled by the page key in getModuleInfo()).

Prompt

Write a complete ProcessWire module designed exclusively as a boilerplate reference for building backend administrative interfaces. Please provide the necessary PHP code and file structure to demonstrate how to implement module configuration pages, custom admin subpages with dedicated menu entries, and dashboard-style layouts. The module must include practical examples of forms utilizing all available ProcessWire input field types, specifically focusing on repeater fields, dropdowns, button groups, and buttons with dropdown menus for executing multiple actions. Additionally, incorporate examples of rendering data using tables, lists, and card layouts within the ProcessWire admin UI.

About

ProcessWire showcase module demonstrating admin UI patterns. Opus 4.7

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages