224

Product support

Get help in the plugin support forum.

  • Added on Aug 12, 2026
  • Current version: 1.4.3
  • Platform Compatibility
    v4.x 1.4
    v3.x 1.4
    v2.x not tested
    v1.x not tested
  • License: Regular / Extended
  • Created by

Categories

Installation

Add the plugin to your project on the marketplace, then install it:

composer require powersystems/mediaoptimizer-plugin php artisan october:migrate

Configuration

Go to Settings → Media Optimizer in the backend. All settings apply immediately, no cache clear needed:

  • Max width / max height — images larger than this are resized down (aspect ratio preserved).
  • Size limit (KB) — JPEGs are re-encoded at stepping-down quality until they fit under this, or hit a floor of quality 40.
  • WebP enabled — writes a .webp sibling next to every processed image, using its own quality setting.
  • Media Trash enabled — intercepts deletes instead of removing files immediately; Retention period (days) controls automatic cleanup.

Resize, WebP generation, filename cleanup and Media Trash all work immediately after install with these settings — no further wiring needed.

Wiring the ImageWithAlt field

This is the one part that needs manual setup, since it's a field type you add to your own blueprints or models:

hero_image: label: Hero image type: mediaoptimizer_imagewithalt defaultFolder: /hero-images

Render it in your theme:

{% set banner = post.hero_image|imageWithAlt %} {% if banner.url %} <img src="{{ banner.url }}" alt="{{ banner.alt }}"> {% endif %}

The filter safely handles the raw JSON string that Tailor content types return for this field.

Media Trash

Deleted files move to a hidden .trash/ directory instead of being removed from disk. Restore or permanently purge them from Media Manager → Trash in the backend. Anything past the retention period is purged automatically by October's scheduler — make sure php artisan schedule:run is wired into your server's cron.

Support

Email support@psaruba.com for help with installation, configuration, or custom feature requests.

Installation via Command Line

php artisan plugin:install PowerSystems.MediaOptimizer

Installation

Add the plugin to your project on the marketplace, then install it:

composer require powersystems/mediaoptimizer-plugin
php artisan october:migrate

Configuration

Go to Settings → Media Optimizer in the backend. All settings apply immediately, no cache clear needed:

  • Max width / max height — images larger than this are resized down (aspect ratio preserved).
  • Size limit (KB) — JPEGs are re-encoded at stepping-down quality until they fit under this, or hit a floor of quality 40.
  • WebP enabled — writes a .webp sibling next to every processed image, using its own quality setting.
  • Media Trash enabled — intercepts deletes instead of removing files immediately; Retention period (days) controls automatic cleanup.

Resize, WebP generation, filename cleanup and Media Trash all work immediately after install with these settings — no further wiring needed.

Wiring the ImageWithAlt field

This is the one part that needs manual setup, since it's a field type you add to your own blueprints or models:

hero_image:
    label: Hero image
    type: mediaoptimizer_imagewithalt
    defaultFolder: /hero-images

Render it in your theme:

{% set banner = post.hero_image|imageWithAlt %}
{% if banner.url %}
    <img src="{{ banner.url }}" alt="{{ banner.alt }}">
{% endif %}

The filter safely handles the raw JSON string that Tailor content types return for this field.

Media Trash

Deleted files move to a hidden .trash/ directory instead of being removed from disk. Restore or permanently purge them from Media Manager → Trash in the backend. Anything past the retention period is purged automatically by October's scheduler — make sure php artisan schedule:run is wired into your server's cron.

Support

Email support@psaruba.com for help with installation, configuration, or custom feature requests.

1.4.3

Support the October CMS 3.x line alongside 4.x (PHP floor lowered to 8.1). Core classes that moved between releases (MediaLibrary, ResizeImages) are now resolved at runtime instead of being imported directly.

Aug 04, 2026

1.4.2

Add an imageWithAlt Twig filter so theme templates can safely read an ImageWithAlt field's value (handles the same raw-JSON-string case as the widget itself).

Aug 04, 2026

1.4.1

Fix ImageWithAlt not reloading saved image/alt text on Tailor content types (value came back as a JSON string, not a decoded array).

Aug 04, 2026

1.4.0

Also clean up filenames when a file is manually renamed via the Media Manager, not just on upload.

Aug 04, 2026

1.3.3

Fix Media Trash restore/purge not invalidating the Media Manager's folder cache.

Aug 04, 2026

1.3.2

Fix Media Trash list columns config structure (columns must be nested under list.columns).

Aug 04, 2026

1.3.1

Fix missing index.php view for the Media Trash page (was showing blank).

Aug 04, 2026

1.3.0

create_image_alt_suggestions_table.php

Aug 04, 2026

1.2.0

create_trashed_files_table.php

Aug 04, 2026

1.1.0

Add an independent WebP quality setting, since WebP compresses more efficiently than JPEG at the same numeric quality value.

Aug 04, 2026

1.0.0

Resize, compress and optional WebP generation for images uploaded via the Media Manager.

Aug 04, 2026

Updates install through Composer or the backend Settings → Updates & Plugins screen. After updating, run:

php artisan october:migrate

Notable changes by version

  • 1.2.0 — added the Media Trash feature (new database table). Existing media and settings are untouched; Trash is disabled by default until you enable it under Settings → Media Optimizer.
  • 1.3.0 — added the ImageWithAlt field and its alt-text suggestion table. This is opt-in: nothing changes until you add the field type to a blueprint or model yourself.
  • 1.4.0 — filename cleanup now also runs on manual rename through the Media Manager, not just on upload.
  • 1.4.1 / 1.4.2 — fixes for ImageWithAlt not reloading saved values on Tailor content types, and the imageWithAlt Twig filter.
  • 1.4.3 — adds October CMS 3.x support alongside 4.x. No configuration changes; core classes that moved between October releases are now resolved at runtime.

Recommended process

Test on a staging copy first, especially if you rely on the Media Trash or ImageWithAlt field in production. Take a database backup before running migrations, as is good practice for any plugin update.