Accueil
NexoPOS

Événement de rendu du pied de page

RenderFooterEvent est déclenché pendant que NexoPOS rend le pied de page du tableau de bord. Les modules peuvent écouter cet événement et ajouter une sortie de pied de page personnalisée, généralement des scripts, du balisage ou une vue Blade qui doit être disponible lorsque la page a fini de se charger.

Quand l’événement a lieu

NexoPOS déclenche cet événement depuis la vue d’injection du pied de page lorsque la requête actuelle correspond à une route Laravel. Le nom de la route actuelle est transmis à l’événement, afin que les gestionnaires puissent décider si leur contenu de pied de page doit être injecté sur chaque page ou uniquement sur une page spécifique.

Propriétés disponibles

  • $event->output : une instance de App\Classes\Output utilisée pour ajouter du contenu rendu.
  • $event->routeName : le nom de l’itinéraire actuel, ou null lorsqu’aucun nom d’itinéraire n’est disponible.

Écouter depuis un module

Un module peut enregistrer un écouteur en créant une classe d’écouteur dans son répertoire Listeners, par exemple RenderFooterEventListener. L’écouteur reçoit l’instance de l’événement via sa méthode handle().

<?php

namespace Modules\MyModule\Listeners;

use App\Events\RenderFooterEvent;

class RenderFooterEventListener
{
    public function handle( RenderFooterEvent $event )
    {
        $event->output->addView( 'MyModule::footer.scripts' );
    }
}

Écouter avec Event::listen

L’événement peut également être enregistré directement via la méthode Event::listen() de Laravel. Cela est utile lorsque le gestionnaire est enregistré depuis un fournisseur de services ou une autre classe de démarrage.

use App\Events\RenderFooterEvent;
use Illuminate\Support\Facades\Event;

Event::listen( RenderFooterEvent::class, function ( RenderFooterEvent $event ) {
    $event->output->addView( 'MyModule::footer.scripts' );
} );

Limiter l’injection à une route

Lorsque le contenu du pied de page n’est nécessaire que sur un seul écran, vérifiez $event->routeName avant d’ajouter la vue. Cela permet d’éviter que les ressources et le balisage du module n’apparaissent sur les pages qui n’en ont pas besoin.

Event::listen( RenderFooterEvent::class, function ( RenderFooterEvent $event ) {
    if ( $event->routeName !== 'ns.dashboard.orders.index' ) {
        return;
    }

    $event->output->addView( 'MyModule::orders.footer' );
} );

Injecter la vue

Utilisez $event->output->addView( 'ModuleNamespace::path.to.file' ) pour ajouter une vue Blade à la sortie du pied de page. Le chemin de la vue doit être résolvable par Laravel à l’aide de l’espace de noms des vues enregistré du module.

$event->output->addView( 'ModuleNamespace::path.to.file' );

Résumé

  • Utilisez RenderFooterEvent lorsqu’un module doit injecter une sortie de pied de page après le chargement d’une page.
  • Ajoutez du contenu via $event->output, généralement avec addView().
  • Utilisez $event->routeName lorsque l’injection doit s’appliquer uniquement à des pages spécifiques du tableau de bord.