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 deApp\Classes\Outputusada para adicionar conteúdo renderizado.$event->routeName: o nome da rota atual, ounullquando 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
RenderFooterEventquando 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 usandoaddView(). - Use
$event->routeNamequando a injeção deve ser aplicada apenas a páginas específicas do painel.