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;
    }
});