Início
NexoPOS

Evento de Renderização do Rodapé

RenderFooterEvent é disparado enquanto o NexoPOS renderiza o rodapé do painel. Os módulos podem ouvir este evento e adicionar uma saída personalizada no rodapé, geralmente scripts, marcação ou uma visualização Blade que deve estar disponível quando a página terminar de carregar.

Quando o Evento Acontece

O NexoPOS envia este evento a partir da visualização de injeção do rodapé quando a solicitação atual possui uma rota do Laravel. O nome da rota atual é passado para o evento, para que os listeners possam decidir se o conteúdo do rodapé deve ser injetado em todas as páginas ou apenas em uma página específica.

Propriedades disponíveis

  • $event->output: uma instância de App\Classes\Output usada para adicionar conteúdo renderizado.
  • $event->routeName: o nome da rota atual, ou null quando nenhum nome de rota estiver disponível.

Ouça de um módulo

Um módulo pode registrar um listener criando uma classe de listener dentro do seu diretório Listeners, por exemplo RenderFooterEventListener. O listener recebe a instância do evento através do seu método handle().

<?php

namespace Modules\MyModule\Listeners;

use App\Events\RenderFooterEvent;

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

Ouça com Event::listen

O evento também pode ser registrado diretamente com o método Event::listen()

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

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

Limitar a Injeção a uma Rota

Quando o conteúdo do rodapé for necessário apenas em uma tela, verifique $event->routeName antes de adicionar a visualização. Isso mantém os assets e a marcação do módulo longe das páginas que não precisam deles.

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

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

Injetando a Visualização

Use $event->output->addView( 'ModuleNamespace::path.to.file' ) para anexar uma view Blade à saída do rodapé. O caminho da view deve ser resolvível pelo Laravel usando o namespace de views registrado do módulo.

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

Resumo

  • Use RenderFooterEvent quando um módulo precisar injetar a saída do rodapé depois que uma página tiver sido carregada.
  • Adicione conteúdo através de $event->output, geralmente usando addView().
  • Use $event->routeName quando a injeção deve ser aplicada apenas a páginas específicas do painel.