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 MuxAssetafterCreateAsset- Triggered after successfully creating a new MuxAssetbeforeUpdateAsset- Triggered before updating an existing MuxAssetafterUpdateAsset- Triggered after successfully updating an existing MuxAssetbeforeDeleteAsset- Triggered before deleting a MuxAssetafterDeleteAsset- 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
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 MuxafterUploadAsset- 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
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 MuxAssetsafterMoveAsset- 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
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
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 MuxFolderafterCreateFolder- Triggered after successfully creating a new MuxFolderbeforeDeleteFolder- Triggered before deleting a MuxFolderafterDeleteFolder- 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
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 MuxVolumeafterCreateVolume- Triggered after successfully creating a new MuxVolumebeforeUpdateVolume- Triggered before updating an existing MuxVolumeafterUpdateVolume- Triggered after successfully updating an existing MuxVolumebeforeDeleteVolume- Triggered before deleting a MuxVolumeafterDeleteVolume- 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
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;
}
});