MediaHub

Latest: Version 1.x

A site-wide media library for ProcessWire. Upload once, use everywhere, with a full crop editor, usage tracking, collections, and a clean PHP API.

Read the Docs

Overview

What is MediaHub?

ProcessWire's native image and file fields are attached to individual pages, which works well for page-specific content but gets messy when the same asset needs to appear across multiple pages. MediaHub solves this by providing a central library shared across your entire site.

Upload an asset once. Reference it from any page, any template. Update the file or its metadata and it updates everywhere it's used.

Key features

  • Global media library: one asset, available everywhere. Update it once and it's reflected on every page that references it.
  • Images, documents, and more: upload and manage images, PDFs, Word documents, spreadsheets, audio, video, and any other file type your allowed extensions list permits.
  • Image cropping: built-in crop editor with nine presets plus custom ones. Each crop is a first-class page with its own ID, image file, and metadata.
  • Inline crop badges: crops for configured presets are auto-generated when the page editor renders. Editors see filled badges on each image card and can click to adjust the crop position without leaving the page.
  • Collections: organise assets into hierarchical folders or albums. An asset can belong to multiple collections.
  • Tags: global library tags for admin filtering, plus per-field display tags for context-specific labelling on individual pages.
  • Usage tracking: every asset detail page lists which ProcessWire pages reference it, with direct links to edit or view.
  • Per-reference metadata: override alt text and assign field-level tags per page without touching the global asset.
  • TinyMCE integration: insert MediaHub images directly into rich text fields with a dedicated picker plugin. Supports rename tracking and crop selection.
  • Import tools: bring existing images into the library with a site-wide scanner or per-page import button. Intelligent deduplication with filename and perceptual hash matching.
  • Full ProcessWire image API: image() returns a standard Pageimage, so native PW resize, crop, srcset, and image manipulation methods all work without change.
  • Clean template API: built on ProcessWire's custom page classes with purpose-built methods like $asset->image(), $asset->isDocument(), $asset->crops(), and $asset->altText().

Requirements

  • ProcessWire 3.0.165+
  • PHP 8.0+
  • AdminThemeUikit
  • $config->usePageClasses = true in site/config.php

Interested in MediaHub?

Get in touch to discuss licensing and pricing options.

Contact Me