src/Twig/FlashBagExention.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Twig;
  3. use Symfony\Component\HttpFoundation\RequestStack;
  4. use Twig\Extension\AbstractExtension;
  5. use Twig\TwigFunction;
  6. use App\Tools\Utils;
  7. class FlashBagExention extends AbstractExtension {
  8.     private RequestStack $requestStack;
  9.     public function __construct(RequestStack $requestStack) {
  10.         $this->requestStack $requestStack;
  11.     }
  12.     public function getFunctions(): array {
  13.         return [
  14.             new TwigFunction('falsh_bag', [$this'showFlashBag'], ['is_safe' => ['html']])
  15.         ];
  16.     }
  17.     /**
  18.      * @return string
  19.      */
  20.     public function showFlashBag(): string {
  21.         $flashBags $this->requestStack->getSession()->getFlashBag()->all();
  22.         foreach ($flashBags as $type => $messages) {
  23.             foreach ($messages as $message) {
  24.                 if (in_array($type, [Utils::OFB_DANGERUtils::OFB_SUCCESSUtils::OFB_WARNING])) {
  25.                     $html "<p class=\"$type\" style=\"padding: 5px; margin: 15px; color: #fff; background-color: #90be2e; border-color: #90be2e; font-size: 14px\">$message</p>";
  26.                 } else {
  27.                     $html "<p class=\"btn-$type kz-flashbag\" style=\"padding: 5px; margin: 15px;\">$message</p>";
  28.                 }
  29.                 return $html;
  30.             }
  31.         }
  32.         return '';
  33.     }
  34. }