Создайте событие для отображения звукового уведомления в symfony

#symfony #events #notifications #symfony-3.4

#symfony #Мероприятия #уведомления #symfony-3.4

Вопрос:

Я хочу добавить звуковое уведомление в администраторе моего приложения на symfony 3.4, когда пользователь размещает заказ, я создал событие, я вызываю его в контроллере моего заказа, но я не знаю, как создано уведомление в функции события:

Мой вопрос в том, как создать звуковое уведомление, пожалуйста, помогите

     public function checkoutAction(Request $request, $erreur,  
     EventDispatcherInterface $eventDispatcher)
     {
    $commande = new Commande();
    //panier
    $panier = $this->get('session')->get('panier', null);
    if (!$panier) {
        return $this->redirectToRoute('ce_panier_list');
    }
    $commande->setPanier($panier);
    //type commande
    $typeCommande = $this->get('session')->get('typecmd');
    $commande->setTypeCommande($typeCommande);
    //etat
    $commande->setEtat("en attente de validation");

    //user
    $usr = $this->getUser();
    if ($usr)
        $commande->setUser($usr);
    //livraison
    if ($typeCommande == "livraison" amp;amp; $usr) {
        $commande->setAdresseLiv($usr->getAdresseLiv());
        $commande->setVilleLiv($usr->getVilleLiv());
        $commande->setZoneLivraison($usr->getZoneLivraison());
    }
    // prixcommande
    $commande->setPrixCommande($commande->getTotal());
    //form
    $form = $this->createForm(CommandeType::class, $commande, array(
        'connected' => ($usr != null),
        'typeCommande' => $typeCommande
    ));

    if ($request->isMethod('POST') amp;amp; $form->handleRequest($request)->isValid()) {

        $event = new GenericEvent($commande);
        $eventDispatcher->dispatch(Events::COMMANDE_ATTENTE, $event);

        if ($commande->getModePaiement() != "paypal") {
            if (!$usr) {
                $userManager = $this->get('fos_user.user_manager');
                $user = $userManager->createUser();
                $this->createUserFromCommande($user, $commande);
                $userManager->updateUser($user);
                $token = new UsernamePasswordToken($user, null, 'main', 
                $user->getRoles());
                $this->get('security.token_storage')->setToken($token);
                $this->get('session')->set('_security_main', 
                serialize($token));
                $commande->setUser($user);
                $commande->setNullLivrInfo();
            }
            $em = $this->getDoctrine()->getManager();
            $em->persist($commande);
            $em->flush();
            $this->sendMailCommande($commande);
            $this->get('session')->set('panier', array());

            return $this->redirectToRoute('ce_commande_termine', 
            array('id' => $commande->getId()));
  

Событие :

  class Notify implements EventSubscriberInterface
{

public static function getSubscribedEvents()
{
    return [

        Events::COMMANDE_ATTENTE => 'onCommandNotify'

    ];
}

public function onCommandNotify(GenericEvent $event)
{
        ????????? How to create an audible notification
}
}
  

Спасибо за треки

Комментарии:

1. Я думаю, вам нужно установить флаг внутри сеанса администратора и написать функцию javascript, которая регулярно проверяет наличие этого флага. Если оно установлено, воспроизведите звук уведомления и снимите флаг.

2. Спасибо за ваш ответ, вы нашли пример, я немного заблудился