Evento di rendering del footer
RenderFooterEvent viene inviato mentre NexoPOS esegue il rendering del footer della dashboard. I moduli possono ascoltare questo evento e aggiungere output personalizzato nel footer, di solito script, markup o una vista Blade che deve essere disponibile quando la pagina ha terminato il caricamento.
Quando l’evento si svolge
NexoPOS invia questo evento dalla vista di injection nel footer quando la richiesta corrente ha una route Laravel. Il nome della route corrente viene passato all’evento, così i listener possono decidere se il contenuto del footer debba essere iniettato in ogni pagina o solo in una pagina specifica.
Proprietà disponibili
$event->output: une instance deApp\Classes\Outpututilisée pour ajouter du contenu rendu.$event->routeName: il nome della rotta corrente, oppurenullquando non è disponibile alcun nome di rotta.
Ascolta da un modulo
Un modulo può registrare un listener creando una classe listener all’interno della sua directory Listeners, ad esempio RenderFooterEventListener. Il listener riceve l’istanza dell’evento tramite il suo metodo handle().
<?php
namespace Modules\MyModule\Listeners;
use App\Events\RenderFooterEvent;
class RenderFooterEventListener
{
public function handle( RenderFooterEvent $event )
{
$event->output->addView( 'MyModule::footer.scripts' );
}
}
Ascolta con Event::listen
L’evento può anche essere registrato direttamente tramite il metodo Event::listen() di Laravel. Questo è utile quando l’ascoltatore viene registrato da un service provider o da un’altra classe di bootstrap.
use App\Events\RenderFooterEvent;
use Illuminate\Support\Facades\Event;
Event::listen( RenderFooterEvent::class, function ( RenderFooterEvent $event ) {
$event->output->addView( 'MyModule::footer.scripts' );
} );
Limitazione dell’iniezione a una rotta
Quando il contenuto del footer è necessario solo su una schermata, controlla $event->routeName prima di aggiungere la vista. In questo modo gli asset e il markup del modulo restano lontani dalle pagine che non li richiedono.
Event::listen( RenderFooterEvent::class, function ( RenderFooterEvent $event ) {
if ( $event->routeName !== 'ns.dashboard.orders.index' ) {
return;
}
$event->output->addView( 'MyModule::orders.footer' );
} );
Iniettare la vista
Utilizza $event->output->addView( 'ModuleNamespace::path.to.file' ) per aggiungere una view Blade all’output del footer. Il percorso della view deve essere risolvibile da Laravel utilizzando lo spazio dei nomi delle view registrato del modulo.
$event->output->addView( 'ModuleNamespace::path.to.file' );
Riepilogo
- Utilizza
RenderFooterEventquando un modulo deve iniettare l’output del footer dopo che la pagina è stata caricata. - Aggiungi contenuto tramite
$event->output, di solito conaddView(). - Usa
$event->routeNamequando l’iniezione deve applicarsi solo a pagine specifiche della dashboard.