View .md

PluginUiEvent events

7 FeatherPanel plugin events on PluginUiEvent (7 emitted by the core): the event names, the arguments each listener gets, where they fire and a PHP listener for each.

Last synced from FeatherPanel 15b94e9 on .

On this page

Part of the plugin events reference. Listeners get the payload values as positional arguments in the order shown, cannot cancel the action, and must catch their own exceptions.

Setup

Import PluginUiEvent in your entry class and register listeners in processEvents():

<?php

namespace App\Addons\myplugin;

use App\App;
use App\Plugins\AppPlugin;
use App\Plugins\PluginEvents;
use App\Plugins\Events\Events\PluginUiEvent;

class MyPlugin implements AppPlugin
{
    public static function processEvents(PluginEvents $event): void
    {
        $event->on(PluginUiEvent::onUiError(), function ($source, $message, $context): void {
            App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:system:plugins:ui:error ' . json_encode(['source' => $source, 'message' => $message, 'context' => $context]));
        });
    }

    public static function pluginInstall(): void
    {
    }

    public static function pluginUninstall(): void
    {
    }
}

PluginUiEvent::onUiError()

Name: featherpanel:system:plugins:ui:erroremitted at 4 sitesCancel or modify: nodefinition

Docblock: string source, string message, array context metadata.

#Payload keyListener parameterType
1source$sourcestring
2message$messagestringfrom docblock
3context$contextarray
When it fires (4 sites)
$event->on(PluginUiEvent::onUiError(), function ($source, $message, $context): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:system:plugins:ui:error ' . json_encode(['source' => $source, 'message' => $message, 'context' => $context]));
});

PluginUiEvent::onOverridesRetrieved()

Name: featherpanel:system:plugins:ui:overrides:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: array overrides from Frontend/overrides.json aggregations. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1hide$hidearray
2replace$replacearray
3actions$actionsarray
When it fires (1 site)
$event->on(PluginUiEvent::onOverridesRetrieved(), function ($hide, $replace, $actions): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:system:plugins:ui:overrides:retrieved ' . json_encode(['hide' => $hide, 'replace' => $replace, 'actions' => $actions]));
});

PluginUiEvent::onUiPacksRetrieved()

Name: featherpanel:system:plugins:ui:packs:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: array UI packs from Frontend/ui.json aggregations.

#Payload keyListener parameterType
1packs$packsarray
When it fires (1 site)
$event->on(PluginUiEvent::onUiPacksRetrieved(), function ($packs): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:system:plugins:ui:packs:retrieved ' . json_encode(['packs' => $packs]));
});

PluginUiEvent::onPublicPagesRetrieved()

Name: featherpanel:system:plugins:ui:public-pages:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: array public pages from Frontend/public.json aggregations.

#Payload keyListener parameterType
1pages$pagesarrayfrom docblock
When it fires (1 site)
$event->on(PluginUiEvent::onPublicPagesRetrieved(), function ($pages): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:system:plugins:ui:public-pages:retrieved ' . json_encode(['pages' => $pages]));
});

PluginUiEvent::onThemesRetrieved()

Name: featherpanel:system:plugins:ui:themes:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: array themes from Frontend/theme.json aggregations.

#Payload keyListener parameterType
1themes$themesarray
When it fires (1 site)
$event->on(PluginUiEvent::onThemesRetrieved(), function ($themes): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:system:plugins:ui:themes:retrieved ' . json_encode(['themes' => $themes]));
});

PluginUiEvent::onWidgetsRetrieved()

Name: featherpanel:system:plugins:ui:widgets:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: array widgets by page/location, array context metadata.

#Payload keyListener parameterType
1widgets$widgetsarrayfrom docblock
2context$contextarray
When it fires (1 site)
$event->on(PluginUiEvent::onWidgetsRetrieved(), function ($widgets, $context): void {
    App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:system:plugins:ui:widgets:retrieved ' . json_encode(['widgets' => $widgets, 'context' => $context]));
});