Skip to content

Mux Plugin Custom Events Documentation

The Mux plugin provides several custom events that extend Craft's event system. All custom events extend craft\events\CancelableEvent, allowing you to cancel operations by setting $event->isValid = false.

MuxAssetEvent

Event Class: rocketpark\mux\events\MuxAssetEvent Triggered by: rocketpark\mux\services\Assets

Events:

  • beforeCreateAsset - Triggered before creating a new MuxAsset
  • afterCreateAsset - Triggered after successfully creating a new MuxAsset
  • beforeUpdateAsset - Triggered before updating an existing MuxAsset
  • afterUpdateAsset - Triggered after successfully updating an existing MuxAsset
  • beforeDeleteAsset - Triggered before deleting a MuxAsset
  • afterDeleteAsset - Triggered after successfully deleting a MuxAsset

Event Properties:

  • MuxAssetElement $asset - The MuxAsset element
  • bool $isNew - Whether this is a new asset (true for create operations)
  • array $eventData - Additional event data
php
use rocketpark\mux\services\Assets;
use rocketpark\mux\events\MuxAssetEvent;

Event::on(
    Assets::class, 
    Assets::EVENT_BEFORE_CREATE_ASSET, 
    function(MuxAssetEvent $event) {
    // Custom logic before creating asset
    if ($event->asset->title === 'Blocked Title') {
        $event->isValid = false; // Cancel the operation
    }
});

MuxAssetUploadEvent

Event Class: rocketpark\mux\events\MuxAssetUploadEvent Triggered by: rocketpark\mux\services\Assets

Events:

  • beforeUploadAsset - Triggered before uploading a file to Mux
  • afterUploadAsset - Triggered after successfully uploading a file to Mux

Event Properties:

  • string $title - The upload title
  • string|null $volumeUid - The volume UID
  • string|null $folderId - The folder ID
  • array|null $uploadData - The upload response data from Mux API
  • array $eventData - Additional event data
php
use rocketpark\mux\services\Assets;
use rocketpark\mux\events\MuxAssetUploadEvent;

Event::on(
    Assets::class, 
    Assets::EVENT_BEFORE_UPLOAD_ASSET, 
    function(MuxAssetUploadEvent $event) {
    // Custom validation before upload
    if (empty($event->title)) {
        $event->isValid = false;
    }
});

MuxAssetMoveEvent

Event Class: rocketpark\mux\events\MuxAssetMoveEvent Triggered by: rocketpark\mux\services\Assets

Events:

  • beforeMoveAsset - Triggered before moving MuxAssets
  • afterMoveAsset - Triggered after successfully moving MuxAssets

Event Properties:

  • array $elementIds - The MuxAsset element IDs being moved
  • int|null $volumeId - The source volume ID
  • int|null $targetFolderId - The destination folder ID
  • array $eventData - Additional event data
php
use rocketpark\mux\services\Assets;
use rocketpark\mux\events\MuxAssetMoveEvent;

Event::on(
    Assets::class, 
    Assets::EVENT_BEFORE_MOVE_ASSET, 
    function(MuxAssetMoveEvent $event) {
    // Custom logic before moving assets
    if (count($event->elementIds) > 10) {
        $event->isValid = false; // Prevent moving too many assets at once
    }
});

MuxAssetSyncEvent

Event Class: rocketpark\mux\events\MuxAssetSyncEvent Triggered by: rocketpark\mux\services\Assets

Events:

  • beforeSynchronizeMuxAsset - Triggered just before a synchronized asset is going to be saved

Event Properties:

  • MuxAssetElement $element - Craft mux asset element being synchronized
  • Asset $source - Source MUX API asset object
  • array $metafields - List of Mux metafields for the asset
php
use rocketpark\mux\services\Assets;
use rocketpark\mux\events\MuxAssetSyncEvent;

Event::on(
    Assets::class, 
    Assets::EVENT_BEFORE_SYNCHRONIZE_MUX_ASSET, 
    function(MuxAssetSyncEvent $event) {
    // Custom logic before synchronizing asset data
    if ($event->source->status === 'errored') {
        $event->isValid = false; // Skip synchronization for errored assets
    }
});

MuxFolderEvent

Event Class: rocketpark\mux\events\MuxFolderEvent Triggered by: rocketpark\mux\services\Folders

Events:

  • beforeCreateFolder - Triggered before creating a new MuxFolder
  • afterCreateFolder - Triggered after successfully creating a new MuxFolder
  • beforeDeleteFolder - Triggered before deleting a MuxFolder
  • afterDeleteFolder - Triggered after successfully deleting a MuxFolder

Event Properties:

  • MuxFolder $folder - The MuxFolder model
  • bool $isNew - Whether this is a new folder (true for create operations)
  • array $eventData - Additional event data
php
use rocketpark\mux\services\Folders;
use rocketpark\mux\events\MuxFolderEvent;

Event::on(
    Folders::class, 
    Folders::EVENT_BEFORE_CREATE_FOLDER, 
    function(MuxFolderEvent $event) {
    // Custom validation before creating folder
    if (empty($event->folder->name)) {
        $event->isValid = false;
    }
});

MuxVolumeEvent

Event Class: rocketpark\mux\events\MuxVolumeEvent Triggered by: rocketpark\mux\services\Volumes

Events:

  • beforeCreateVolume - Triggered before creating a new MuxVolume
  • afterCreateVolume - Triggered after successfully creating a new MuxVolume
  • beforeUpdateVolume - Triggered before updating an existing MuxVolume
  • afterUpdateVolume - Triggered after successfully updating an existing MuxVolume
  • beforeDeleteVolume - Triggered before deleting a MuxVolume
  • afterDeleteVolume - Triggered after successfully deleting a MuxVolume

Event Properties:

  • MuxVolume $volume - The MuxVolume model
  • bool $isNew - Whether this is a new volume (true for create operations)
  • array $eventData - Additional event data
php
use rocketpark\mux\services\Volumes;
use rocketpark\mux\events\MuxVolumeEvent;

Event::on(
    Volumes::class, 
    Volumes::EVENT_BEFORE_CREATE_VOLUME, 
    function(MuxVolumeEvent $event) {
    // Custom validation before creating volume
    if (empty($event->volume->name)) {
        $event->isValid = false;
    }
});