var/cache/dev/twig/93/938129d9876e8d6a9606e7b9d414e5e3.php line 56

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\CoreExtension;
  6. use Twig\Extension\SandboxExtension;
  7. use Twig\Markup;
  8. use Twig\Sandbox\SecurityError;
  9. use Twig\Sandbox\SecurityNotAllowedTagError;
  10. use Twig\Sandbox\SecurityNotAllowedFilterError;
  11. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  12. use Twig\Source;
  13. use Twig\Template;
  14. use Twig\TemplateWrapper;
  15. /* user/ask_password.html.twig */
  16. class __TwigTemplate_953ec3ab75e1125c959cbfe8e87e8969 extends Template
  17. {
  18.     private Source $source;
  19.     /**
  20.      * @var array<string, Template>
  21.      */
  22.     private array $macros = [];
  23.     public function __construct(Environment $env)
  24.     {
  25.         parent::__construct($env);
  26.         $this->source $this->getSourceContext();
  27.         $this->blocks = [
  28.             'fos_user_title' => [$this'block_fos_user_title'],
  29.             'fos_user_content' => [$this'block_fos_user_content'],
  30.             'stylesheets' => [$this'block_stylesheets'],
  31.             'fos_user_script' => [$this'block_fos_user_script'],
  32.         ];
  33.     }
  34.     protected function doGetParent(array $context): bool|string|Template|TemplateWrapper
  35.     {
  36.         // line 1
  37.         return "base_security.html.twig";
  38.     }
  39.     protected function doDisplay(array $context, array $blocks = []): iterable
  40.     {
  41.         $macros $this->macros;
  42.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  43.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""user/ask_password.html.twig"));
  44.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  45.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""user/ask_password.html.twig"));
  46.         $this->parent $this->loadTemplate("base_security.html.twig""user/ask_password.html.twig"1);
  47.         yield from $this->parent->unwrap()->yield($contextarray_merge($this->blocks$blocks));
  48.         
  49.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  50.         
  51.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  52.     }
  53.     // line 3
  54.     /**
  55.      * @return iterable<null|scalar|\Stringable>
  56.      */
  57.     public function block_fos_user_title(array $context, array $blocks = []): iterable
  58.     {
  59.         $macros $this->macros;
  60.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  61.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""fos_user_title"));
  62.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  63.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""fos_user_title"));
  64.         // line 4
  65.         yield "    <h4 class=\"auth-header\">";
  66.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("menu.init_reset_password"), "html"nulltrue);
  67.         yield "</h4>
  68. ";
  69.         
  70.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  71.         
  72.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  73.         yield from [];
  74.     }
  75.     // line 7
  76.     /**
  77.      * @return iterable<null|scalar|\Stringable>
  78.      */
  79.     public function block_fos_user_content(array $context, array $blocks = []): iterable
  80.     {
  81.         $macros $this->macros;
  82.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  83.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""fos_user_content"));
  84.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  85.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""fos_user_content"));
  86.         // line 8
  87.         yield "    <div class=\"container\">
  88.         <div class=\"comoros-flag-animation\">
  89.             <div class=\"flag-wave\">
  90.                 <svg viewBox=\"0 0 600 400\" xmlns=\"http://www.w3.org/2000/svg\">
  91.                     <!-- Drapeau des Comores animé -->
  92.                     <defs>
  93.                         <linearGradient id=\"waveGrad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">
  94.                             <stop offset=\"0%\" style=\"stop-color:#3b6e2c;stop-opacity:1\" />
  95.                             <stop offset=\"50%\" style=\"stop-color:#ffffff;stop-opacity:1\" />
  96.                             <stop offset=\"100%\" style=\"stop-color:#cf0921;stop-opacity:1\" />
  97.                         </linearGradient>
  98.                         <filter id=\"shadow\">
  99.                             <feDropShadow dx=\"2\" dy=\"4\" stdDeviation=\"3\" flood-opacity=\"0.3\"/>
  100.                         </filter>
  101.                     </defs>
  102.                     
  103.                     <!-- Bande jaune (lune et étoiles) -->
  104.                     <rect x=\"0\" y=\"0\" width=\"600\" height=\"400\" fill=\"#f3c300\"/>
  105.                     
  106.                     <!-- Bandes horizontales -->
  107.                     <rect x=\"80\" y=\"0\" width=\"520\" height=\"80\" fill=\"#3b6e2c\"/>
  108.                     <rect x=\"80\" y=\"80\" width=\"520\" height=\"80\" fill=\"#ffffff\"/>
  109.                     <rect x=\"80\" y=\"160\" width=\"520\" height=\"80\" fill=\"#cf0921\"/>
  110.                     <rect x=\"80\" y=\"240\" width=\"520\" height=\"160\" fill=\"#f3c300\"/>
  111.                     
  112.                     <!-- Triangle blanc -->
  113.                     <polygon points=\"0,0 120,0 120,400 0,400\" fill=\"#ffffff\"/>
  114.                     
  115.                     <!-- Triangle vert -->
  116.                     <polygon points=\"0,0 100,0 100,400 0,400\" fill=\"#3b6e2c\"/>
  117.                     
  118.                     <!-- Croissant et étoiles -->
  119.                     <g class=\"moon-stars\" filter=\"url(#shadow)\">
  120.                         <!-- Croissant de lune -->
  121.                         <circle cx=\"55\" cy=\"200\" r=\"35\" fill=\"#f3c300\"/>
  122.                         <circle cx=\"70\" cy=\"195\" r=\"28\" fill=\"#3b6e2c\"/>
  123.                         
  124.                         <!-- 4 étoiles -->
  125.                         <polygon points=\"45,120 48,130 58,130 50,136 53,146 45,140 37,146 40,136 32,130 42,130\" fill=\"#ffffff\" class=\"star1\"/>
  126.                         <polygon points=\"85,280 88,290 98,290 90,296 93,306 85,300 77,306 80,296 72,290 82,290\" fill=\"#ffffff\" class=\"star2\"/>
  127.                         <polygon points=\"25,300 28,310 38,310 30,316 33,326 25,320 17,326 20,316 12,310 22,310\" fill=\"#ffffff\" class=\"star3\"/>
  128.                         <polygon points=\"95,140 98,150 108,150 100,156 103,166 95,160 87,166 90,156 82,150 92,150\" fill=\"#ffffff\" class=\"star4\"/>
  129.                     </g>
  130.                 </svg>
  131.             </div>
  132.         </div>
  133.         <div class=\"form-text text-md-center\">
  134.             <em>
  135.                 ";
  136.         // line 57
  137.         yield $this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("menu.information_for_reset_password_with_tag", ["%tag_br%" => "<br/>"]);
  138.         yield "
  139.             </em>
  140.         </div>
  141.         <form action=\"";
  142.         // line 61
  143.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("register_ask_new_password");
  144.         yield "\" method=\"POST\" class=\"fos_user_resetting_request\">
  145.             ";
  146.         // line 62
  147.         yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'62$this->source); })()), "_token", [], "any"falsefalsefalse62), 'widget');
  148.         yield "
  149.             <div class=\"form-group\">
  150.                 <label for=\"\">";
  151.         // line 64
  152.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("menu.login_phone"), "html"nulltrue);
  153.         yield "*</label>
  154.                 ";
  155.         // line 65
  156.         yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'65$this->source); })()), "phone", [], "any"falsefalsefalse65), 'widget');
  157.         yield "
  158.                 <div class=\"pre-icon os-icon os-icon-user-male-circle\"></div>
  159.             </div>
  160.             <div class=\"form-group\">
  161.                 <label for=\"\">";
  162.         // line 69
  163.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("menu.optional_email"), "html"nulltrue);
  164.         yield "</label>
  165.                 ";
  166.         // line 70
  167.         yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'70$this->source); })()), "email", [], "any"falsefalsefalse70), 'widget');
  168.         yield "
  169.                 <div class=\"pre-icon os-icon os-icon-email-forward\"></div>
  170.             </div>
  171.             <div class=\"form-group\">
  172.                 <label for=\"\">";
  173.         // line 74
  174.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("menu.verification_code"), "html"nulltrue);
  175.         yield "</label>
  176.                 ";
  177.         // line 75
  178.         yield $this->env->getRuntime('Symfony\Component\Form\FormRenderer')->searchAndRenderBlock(CoreExtension::getAttribute($this->env$this->source, (isset($context["form"]) || array_key_exists("form"$context) ? $context["form"] : (function () { throw new RuntimeError('Variable "form" does not exist.'75$this->source); })()), "validCode", [], "any"falsefalsefalse75), 'widget', ["value" => ""]);
  179.         yield "
  180.                 <div class=\"pre-icon os-icon os-icon-fingerprint\"></div>
  181.             </div>
  182.             <div class=\"multi_submit\">
  183.                 <input id=\"submit_change_password\" class=\"btn btn-primary\" type=\"submit\" value=\"Initialiser\" />
  184.                 <a class=\"btn btn-primary\" href=\"";
  185.         // line 80
  186.         yield $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("logout");
  187.         yield "\">";
  188.         yield $this->env->getRuntime('Twig\Runtime\EscaperRuntime')->escape($this->extensions['Symfony\Bridge\Twig\Extension\TranslationExtension']->trans("menu.cancel"), "html"nulltrue);
  189.         yield "</a>
  190.             </div>
  191.         </form>
  192.     </div>
  193. ";
  194.         
  195.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  196.         
  197.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  198.         yield from [];
  199.     }
  200.     // line 86
  201.     /**
  202.      * @return iterable<null|scalar|\Stringable>
  203.      */
  204.     public function block_stylesheets(array $context, array $blocks = []): iterable
  205.     {
  206.         $macros $this->macros;
  207.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  208.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheets"));
  209.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  210.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheets"));
  211.         // line 87
  212.         yield "    ";
  213.         yield from $this->yieldParentBlock("stylesheets"$context$blocks);
  214.         yield "
  215.     <style>
  216.         /* ============================================
  217.            CADRE RECTANGLE - LARGEUR RÉDUITE
  218.            ============================================ */
  219.         
  220.         /* Cadre rectangle plus petit */
  221.         .auth-box-w {
  222.             max-width: 380px !important;
  223.             width: 100% !important;
  224.             margin: 30px auto !important;
  225.             padding: 25px 28px 30px 28px !important;
  226.             border-radius: 16px !important;
  227.             background: white !important;
  228.             box-shadow: 0 5px 20px rgba(0,0,0,0.1) !important;
  229.             border: 1px solid #ddd !important;
  230.             position: relative !important;
  231.             z-index: 2 !important;
  232.         }
  233.         
  234.         /* Centrage de la carte */
  235.         .auth-wrapper {
  236.             display: flex !important;
  237.             justify-content: center !important;
  238.             align-items: center !important;
  239.             min-height: 100vh !important;
  240.             background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  241.             position: relative !important;
  242.             overflow: hidden !important;
  243.         }
  244.         
  245.         /* Animation du drapeau comorien en arrière-plan */
  246.         .comoros-flag-animation {
  247.             position: fixed !important;
  248.             top: 0 !important;
  249.             left: 0 !important;
  250.             width: 100% !important;
  251.             height: 100% !important;
  252.             z-index: 1 !important;
  253.             pointer-events: none !important;
  254.             overflow: hidden !important;
  255.         }
  256.         
  257.         .flag-wave {
  258.             position: absolute !important;
  259.             top: 50% !important;
  260.             left: 50% !important;
  261.             transform: translate(-50%, -50%) scale(0.8) !important;
  262.             width: 600px !important;
  263.             height: 400px !important;
  264.             opacity: 0.15 !important;
  265.             animation: floatFlag 8s ease-in-out infinite, rotateFlag 20s linear infinite !important;
  266.         }
  267.         
  268.         .flag-wave svg {
  269.             width: 100% !important;
  270.             height: 100% !important;
  271.             animation: waveFlag 3s ease-in-out infinite !important;
  272.         }
  273.         
  274.         /* Animation des étoiles */
  275.         .star1 {
  276.             animation: starGlow 2s ease-in-out infinite;
  277.             transform-origin: 45px 140px;
  278.         }
  279.         
  280.         .star2 {
  281.             animation: starGlow 2.5s ease-in-out infinite 0.5s;
  282.             transform-origin: 85px 300px;
  283.         }
  284.         
  285.         .star3 {
  286.             animation: starGlow 3s ease-in-out infinite 1s;
  287.             transform-origin: 25px 320px;
  288.         }
  289.         
  290.         .star4 {
  291.             animation: starGlow 2.2s ease-in-out infinite 1.5s;
  292.             transform-origin: 95px 160px;
  293.         }
  294.         
  295.         .moon-stars {
  296.             animation: pulse 3s ease-in-out infinite;
  297.         }
  298.         
  299.         @keyframes floatFlag {
  300.             0%, 100% {
  301.                 transform: translate(-50%, -50%) scale(0.8) translateY(0px);
  302.             }
  303.             50% {
  304.                 transform: translate(-50%, -50%) scale(0.85) translateY(-20px);
  305.             }
  306.         }
  307.         
  308.         @keyframes rotateFlag {
  309.             0% {
  310.                 transform: translate(-50%, -50%) scale(0.8) rotate(0deg);
  311.             }
  312.             100% {
  313.                 transform: translate(-50%, -50%) scale(0.8) rotate(360deg);
  314.             }
  315.         }
  316.         
  317.         @keyframes waveFlag {
  318.             0%, 100% {
  319.                 transform: skewX(0deg) scaleX(1);
  320.             }
  321.             50% {
  322.                 transform: skewX(5deg) scaleX(1.05);
  323.             }
  324.         }
  325.         
  326.         @keyframes starGlow {
  327.             0%, 100% {
  328.                 opacity: 0.7;
  329.                 transform: scale(1);
  330.             }
  331.             50% {
  332.                 opacity: 1;
  333.                 transform: scale(1.2);
  334.             }
  335.         }
  336.         
  337.         @keyframes pulse {
  338.             0%, 100% {
  339.                 transform: scale(1);
  340.             }
  341.             50% {
  342.                 transform: scale(1.05);
  343.             }
  344.         }
  345.         
  346.         /* Logos en haut */
  347.         .logo-w {
  348.             padding: 10px 0 20px 0 !important;
  349.             margin-bottom: 10px !important;
  350.             gap: 15px !important;
  351.             display: flex !important;
  352.             justify-content: center !important;
  353.             position: relative !important;
  354.             z-index: 2 !important;
  355.         }
  356.         
  357.         .logo-w img {
  358.             max-width: 85px !important;
  359.             height: auto !important;
  360.         }
  361.         
  362.         /* Bouton langue */
  363.         #buttonSelectLang {
  364.             height: 32px !important;
  365.             margin: 0 !important;
  366.             padding: 4px 10px !important;
  367.             font-size: 11px !important;
  368.         }
  369.         
  370.         /* Titre */
  371.         .auth-header {
  372.             font-size: 22px !important;
  373.             font-weight: 600 !important;
  374.             text-align: center !important;
  375.             margin-bottom: 20px !important;
  376.             padding-bottom: 10px !important;
  377.             border-bottom: 2px solid #e0e0e0 !important;
  378.             color: #333 !important;
  379.         }
  380.         
  381.         /* Texte d'information */
  382.         .form-text {
  383.             background: #f9f9f9 !important;
  384.             padding: 10px 12px !important;
  385.             border-radius: 8px !important;
  386.             margin-bottom: 20px !important;
  387.             font-size: 12px !important;
  388.             color: #666 !important;
  389.             text-align: center !important;
  390.             border-left: 3px solid #007bff !important;
  391.         }
  392.         
  393.         /* Champs de formulaire */
  394.         .form-group {
  395.             margin-bottom: 18px !important;
  396.         }
  397.         
  398.         .form-group label {
  399.             font-size: 12px !important;
  400.             font-weight: 500 !important;
  401.             color: #333 !important;
  402.             margin-bottom: 5px !important;
  403.             display: block !important;
  404.         }
  405.         
  406.         .form-control {
  407.             width: 100% !important;
  408.             padding: 8px 10px !important;
  409.             border: 1px solid #ccc !important;
  410.             border-radius: 6px !important;
  411.             font-size: 13px !important;
  412.             background: #fff !important;
  413.         }
  414.         
  415.         .form-control:focus {
  416.             border-color: #007bff !important;
  417.             outline: none !important;
  418.             box-shadow: 0 0 0 2px rgba(0,123,255,0.1) !important;
  419.         }
  420.         
  421.         /* Boutons */
  422.         .multi_submit {
  423.             display: flex !important;
  424.             gap: 12px !important;
  425.             margin-top: 20px !important;
  426.         }
  427.         
  428.         .btn-primary {
  429.             flex: 1 !important;
  430.             background: #007bff !important;
  431.             border: none !important;
  432.             padding: 8px !important;
  433.             border-radius: 6px !important;
  434.             font-size: 13px !important;
  435.             font-weight: 500 !important;
  436.             cursor: pointer !important;
  437.             color: white !important;
  438.             text-align: center !important;
  439.             transition: background 0.2s !important;
  440.         }
  441.         
  442.         .btn-primary:hover {
  443.             background: #0056b3 !important;
  444.         }
  445.         
  446.         /* Cacher les icônes */
  447.         .pre-icon {
  448.             display: none !important;
  449.         }
  450.         
  451.         /* Petits drapeaux décoratifs */
  452.         .small-flags {
  453.             position: fixed !important;
  454.             bottom: 20px !important;
  455.             right: 20px !important;
  456.             z-index: 2 !important;
  457.             display: flex !important;
  458.             gap: 5px !important;
  459.         }
  460.         
  461.         .small-flag {
  462.             width: 30px !important;
  463.             height: 20px !important;
  464.             background: linear-gradient(135deg, #3b6e2c 33%, #ffffff 33%, #ffffff 66%, #cf0921 66%) !important;
  465.             border-radius: 3px !important;
  466.             animation: smallFlagWave 1s ease-in-out infinite !important;
  467.         }
  468.         
  469.         @keyframes smallFlagWave {
  470.             0%, 100% {
  471.                 transform: rotate(0deg);
  472.             }
  473.             50% {
  474.                 transform: rotate(5deg);
  475.             }
  476.         }
  477.         
  478.         /* Responsive */
  479.         @media (max-width: 500px) {
  480.             .auth-box-w {
  481.                 max-width: 95% !important;
  482.                 margin: 15px auto !important;
  483.                 padding: 18px 18px 22px 18px !important;
  484.             }
  485.             
  486.             .logo-w img {
  487.                 max-width: 60px !important;
  488.             }
  489.             
  490.             .multi_submit {
  491.                 flex-direction: column !important;
  492.                 gap: 8px !important;
  493.             }
  494.             
  495.             .flag-wave {
  496.                 transform: translate(-50%, -50%) scale(0.4) !important;
  497.             }
  498.         }
  499.     </style>
  500. ";
  501.         
  502.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  503.         
  504.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  505.         yield from [];
  506.     }
  507.     // line 375
  508.     /**
  509.      * @return iterable<null|scalar|\Stringable>
  510.      */
  511.     public function block_fos_user_script(array $context, array $blocks = []): iterable
  512.     {
  513.         $macros $this->macros;
  514.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  515.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""fos_user_script"));
  516.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  517.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""fos_user_script"));
  518.         // line 376
  519.         yield "    ";
  520.         yield from $this->yieldParentBlock("fos_user_script"$context$blocks);
  521.         yield "
  522.     <script>
  523.         change_submit_name();
  524.         \$('#userbundle_user_validCode').on('input', function(e) {
  525.             change_submit_name();
  526.         });
  527.         
  528.         function change_submit_name() {
  529.             if(\$('#userbundle_user_validCode').val().length > 0) {
  530.                 \$('#submit_change_password').val(\"Initialiser votre mot de passe\");
  531.             } else {
  532.                 \$('#submit_change_password').val(\"Demander le code\");
  533.             }
  534.         }
  535.         
  536.         // animations supplémentaires
  537.         \$(document).ready(function() {
  538.             // Créer des petites particules aux couleurs du drapeau
  539.             setInterval(function() {
  540.                 var colors = ['#3b6e2c', '#ffffff', '#cf0921', '#f3c300'];
  541.                 var particle = \$('<div class=\"flag-particle\"></div>');
  542.                 particle.css({
  543.                     position: 'fixed',
  544.                     width: '5px',
  545.                     height: '5px',
  546.                     background: colors[Math.floor(Math.random() * colors.length)],
  547.                     borderRadius: '50%',
  548.                     bottom: '0px',
  549.                     left: Math.random() * window.innerWidth + 'px',
  550.                     opacity: Math.random() * 0.5 + 0.2,
  551.                     zIndex: 1,
  552.                     pointerEvents: 'none'
  553.                 });
  554.                 \$('body').append(particle);
  555.                 
  556.                 particle.animate({
  557.                     bottom: window.innerHeight + 'px',
  558.                     opacity: 0
  559.                 }, Math.random() * 3000 + 2000, function() {
  560.                     particle.remove();
  561.                 });
  562.             }, 500);
  563.         });
  564.     </script>
  565. ";
  566.         
  567.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  568.         
  569.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  570.         yield from [];
  571.     }
  572.     /**
  573.      * @codeCoverageIgnore
  574.      */
  575.     public function getTemplateName(): string
  576.     {
  577.         return "user/ask_password.html.twig";
  578.     }
  579.     /**
  580.      * @codeCoverageIgnore
  581.      */
  582.     public function isTraitable(): bool
  583.     {
  584.         return false;
  585.     }
  586.     /**
  587.      * @codeCoverageIgnore
  588.      */
  589.     public function getDebugInfo(): array
  590.     {
  591.         return array (  550 => 376,  537 => 375,  238 => 87,  225 => 86,  207 => 80,  199 => 75,  195 => 74,  188 => 70,  184 => 69,  177 => 65,  173 => 64,  168 => 62,  164 => 61,  157 => 57,  106 => 8,  93 => 7,  79 => 4,  66 => 3,  43 => 1,);
  592.     }
  593.     public function getSourceContext(): Source
  594.     {
  595.         return new Source("{% extends \"base_security.html.twig\" %}
  596. {% block fos_user_title %}
  597.     <h4 class=\"auth-header\">{{ 'menu.init_reset_password' | trans }}</h4>
  598. {% endblock fos_user_title %}
  599. {% block fos_user_content %}
  600.     <div class=\"container\">
  601.         <div class=\"comoros-flag-animation\">
  602.             <div class=\"flag-wave\">
  603.                 <svg viewBox=\"0 0 600 400\" xmlns=\"http://www.w3.org/2000/svg\">
  604.                     <!-- Drapeau des Comores animé -->
  605.                     <defs>
  606.                         <linearGradient id=\"waveGrad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">
  607.                             <stop offset=\"0%\" style=\"stop-color:#3b6e2c;stop-opacity:1\" />
  608.                             <stop offset=\"50%\" style=\"stop-color:#ffffff;stop-opacity:1\" />
  609.                             <stop offset=\"100%\" style=\"stop-color:#cf0921;stop-opacity:1\" />
  610.                         </linearGradient>
  611.                         <filter id=\"shadow\">
  612.                             <feDropShadow dx=\"2\" dy=\"4\" stdDeviation=\"3\" flood-opacity=\"0.3\"/>
  613.                         </filter>
  614.                     </defs>
  615.                     
  616.                     <!-- Bande jaune (lune et étoiles) -->
  617.                     <rect x=\"0\" y=\"0\" width=\"600\" height=\"400\" fill=\"#f3c300\"/>
  618.                     
  619.                     <!-- Bandes horizontales -->
  620.                     <rect x=\"80\" y=\"0\" width=\"520\" height=\"80\" fill=\"#3b6e2c\"/>
  621.                     <rect x=\"80\" y=\"80\" width=\"520\" height=\"80\" fill=\"#ffffff\"/>
  622.                     <rect x=\"80\" y=\"160\" width=\"520\" height=\"80\" fill=\"#cf0921\"/>
  623.                     <rect x=\"80\" y=\"240\" width=\"520\" height=\"160\" fill=\"#f3c300\"/>
  624.                     
  625.                     <!-- Triangle blanc -->
  626.                     <polygon points=\"0,0 120,0 120,400 0,400\" fill=\"#ffffff\"/>
  627.                     
  628.                     <!-- Triangle vert -->
  629.                     <polygon points=\"0,0 100,0 100,400 0,400\" fill=\"#3b6e2c\"/>
  630.                     
  631.                     <!-- Croissant et étoiles -->
  632.                     <g class=\"moon-stars\" filter=\"url(#shadow)\">
  633.                         <!-- Croissant de lune -->
  634.                         <circle cx=\"55\" cy=\"200\" r=\"35\" fill=\"#f3c300\"/>
  635.                         <circle cx=\"70\" cy=\"195\" r=\"28\" fill=\"#3b6e2c\"/>
  636.                         
  637.                         <!-- 4 étoiles -->
  638.                         <polygon points=\"45,120 48,130 58,130 50,136 53,146 45,140 37,146 40,136 32,130 42,130\" fill=\"#ffffff\" class=\"star1\"/>
  639.                         <polygon points=\"85,280 88,290 98,290 90,296 93,306 85,300 77,306 80,296 72,290 82,290\" fill=\"#ffffff\" class=\"star2\"/>
  640.                         <polygon points=\"25,300 28,310 38,310 30,316 33,326 25,320 17,326 20,316 12,310 22,310\" fill=\"#ffffff\" class=\"star3\"/>
  641.                         <polygon points=\"95,140 98,150 108,150 100,156 103,166 95,160 87,166 90,156 82,150 92,150\" fill=\"#ffffff\" class=\"star4\"/>
  642.                     </g>
  643.                 </svg>
  644.             </div>
  645.         </div>
  646.         <div class=\"form-text text-md-center\">
  647.             <em>
  648.                 {{ 'menu.information_for_reset_password_with_tag' | trans({'%tag_br%': '<br/>'}) | raw }}
  649.             </em>
  650.         </div>
  651.         <form action=\"{{ path('register_ask_new_password') }}\" method=\"POST\" class=\"fos_user_resetting_request\">
  652.             {{ form_widget(form._token) }}
  653.             <div class=\"form-group\">
  654.                 <label for=\"\">{{ 'menu.login_phone' | trans }}*</label>
  655.                 {{ form_widget(form.phone) }}
  656.                 <div class=\"pre-icon os-icon os-icon-user-male-circle\"></div>
  657.             </div>
  658.             <div class=\"form-group\">
  659.                 <label for=\"\">{{ 'menu.optional_email' | trans }}</label>
  660.                 {{ form_widget(form.email) }}
  661.                 <div class=\"pre-icon os-icon os-icon-email-forward\"></div>
  662.             </div>
  663.             <div class=\"form-group\">
  664.                 <label for=\"\">{{ 'menu.verification_code' | trans }}</label>
  665.                 {{ form_widget(form.validCode, { 'value': '' }) }}
  666.                 <div class=\"pre-icon os-icon os-icon-fingerprint\"></div>
  667.             </div>
  668.             <div class=\"multi_submit\">
  669.                 <input id=\"submit_change_password\" class=\"btn btn-primary\" type=\"submit\" value=\"Initialiser\" />
  670.                 <a class=\"btn btn-primary\" href=\"{{ path('logout') }}\">{{ 'menu.cancel' | trans }}</a>
  671.             </div>
  672.         </form>
  673.     </div>
  674. {% endblock fos_user_content %}
  675. {% block stylesheets %}
  676.     {{ parent() }}
  677.     <style>
  678.         /* ============================================
  679.            CADRE RECTANGLE - LARGEUR RÉDUITE
  680.            ============================================ */
  681.         
  682.         /* Cadre rectangle plus petit */
  683.         .auth-box-w {
  684.             max-width: 380px !important;
  685.             width: 100% !important;
  686.             margin: 30px auto !important;
  687.             padding: 25px 28px 30px 28px !important;
  688.             border-radius: 16px !important;
  689.             background: white !important;
  690.             box-shadow: 0 5px 20px rgba(0,0,0,0.1) !important;
  691.             border: 1px solid #ddd !important;
  692.             position: relative !important;
  693.             z-index: 2 !important;
  694.         }
  695.         
  696.         /* Centrage de la carte */
  697.         .auth-wrapper {
  698.             display: flex !important;
  699.             justify-content: center !important;
  700.             align-items: center !important;
  701.             min-height: 100vh !important;
  702.             background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  703.             position: relative !important;
  704.             overflow: hidden !important;
  705.         }
  706.         
  707.         /* Animation du drapeau comorien en arrière-plan */
  708.         .comoros-flag-animation {
  709.             position: fixed !important;
  710.             top: 0 !important;
  711.             left: 0 !important;
  712.             width: 100% !important;
  713.             height: 100% !important;
  714.             z-index: 1 !important;
  715.             pointer-events: none !important;
  716.             overflow: hidden !important;
  717.         }
  718.         
  719.         .flag-wave {
  720.             position: absolute !important;
  721.             top: 50% !important;
  722.             left: 50% !important;
  723.             transform: translate(-50%, -50%) scale(0.8) !important;
  724.             width: 600px !important;
  725.             height: 400px !important;
  726.             opacity: 0.15 !important;
  727.             animation: floatFlag 8s ease-in-out infinite, rotateFlag 20s linear infinite !important;
  728.         }
  729.         
  730.         .flag-wave svg {
  731.             width: 100% !important;
  732.             height: 100% !important;
  733.             animation: waveFlag 3s ease-in-out infinite !important;
  734.         }
  735.         
  736.         /* Animation des étoiles */
  737.         .star1 {
  738.             animation: starGlow 2s ease-in-out infinite;
  739.             transform-origin: 45px 140px;
  740.         }
  741.         
  742.         .star2 {
  743.             animation: starGlow 2.5s ease-in-out infinite 0.5s;
  744.             transform-origin: 85px 300px;
  745.         }
  746.         
  747.         .star3 {
  748.             animation: starGlow 3s ease-in-out infinite 1s;
  749.             transform-origin: 25px 320px;
  750.         }
  751.         
  752.         .star4 {
  753.             animation: starGlow 2.2s ease-in-out infinite 1.5s;
  754.             transform-origin: 95px 160px;
  755.         }
  756.         
  757.         .moon-stars {
  758.             animation: pulse 3s ease-in-out infinite;
  759.         }
  760.         
  761.         @keyframes floatFlag {
  762.             0%, 100% {
  763.                 transform: translate(-50%, -50%) scale(0.8) translateY(0px);
  764.             }
  765.             50% {
  766.                 transform: translate(-50%, -50%) scale(0.85) translateY(-20px);
  767.             }
  768.         }
  769.         
  770.         @keyframes rotateFlag {
  771.             0% {
  772.                 transform: translate(-50%, -50%) scale(0.8) rotate(0deg);
  773.             }
  774.             100% {
  775.                 transform: translate(-50%, -50%) scale(0.8) rotate(360deg);
  776.             }
  777.         }
  778.         
  779.         @keyframes waveFlag {
  780.             0%, 100% {
  781.                 transform: skewX(0deg) scaleX(1);
  782.             }
  783.             50% {
  784.                 transform: skewX(5deg) scaleX(1.05);
  785.             }
  786.         }
  787.         
  788.         @keyframes starGlow {
  789.             0%, 100% {
  790.                 opacity: 0.7;
  791.                 transform: scale(1);
  792.             }
  793.             50% {
  794.                 opacity: 1;
  795.                 transform: scale(1.2);
  796.             }
  797.         }
  798.         
  799.         @keyframes pulse {
  800.             0%, 100% {
  801.                 transform: scale(1);
  802.             }
  803.             50% {
  804.                 transform: scale(1.05);
  805.             }
  806.         }
  807.         
  808.         /* Logos en haut */
  809.         .logo-w {
  810.             padding: 10px 0 20px 0 !important;
  811.             margin-bottom: 10px !important;
  812.             gap: 15px !important;
  813.             display: flex !important;
  814.             justify-content: center !important;
  815.             position: relative !important;
  816.             z-index: 2 !important;
  817.         }
  818.         
  819.         .logo-w img {
  820.             max-width: 85px !important;
  821.             height: auto !important;
  822.         }
  823.         
  824.         /* Bouton langue */
  825.         #buttonSelectLang {
  826.             height: 32px !important;
  827.             margin: 0 !important;
  828.             padding: 4px 10px !important;
  829.             font-size: 11px !important;
  830.         }
  831.         
  832.         /* Titre */
  833.         .auth-header {
  834.             font-size: 22px !important;
  835.             font-weight: 600 !important;
  836.             text-align: center !important;
  837.             margin-bottom: 20px !important;
  838.             padding-bottom: 10px !important;
  839.             border-bottom: 2px solid #e0e0e0 !important;
  840.             color: #333 !important;
  841.         }
  842.         
  843.         /* Texte d'information */
  844.         .form-text {
  845.             background: #f9f9f9 !important;
  846.             padding: 10px 12px !important;
  847.             border-radius: 8px !important;
  848.             margin-bottom: 20px !important;
  849.             font-size: 12px !important;
  850.             color: #666 !important;
  851.             text-align: center !important;
  852.             border-left: 3px solid #007bff !important;
  853.         }
  854.         
  855.         /* Champs de formulaire */
  856.         .form-group {
  857.             margin-bottom: 18px !important;
  858.         }
  859.         
  860.         .form-group label {
  861.             font-size: 12px !important;
  862.             font-weight: 500 !important;
  863.             color: #333 !important;
  864.             margin-bottom: 5px !important;
  865.             display: block !important;
  866.         }
  867.         
  868.         .form-control {
  869.             width: 100% !important;
  870.             padding: 8px 10px !important;
  871.             border: 1px solid #ccc !important;
  872.             border-radius: 6px !important;
  873.             font-size: 13px !important;
  874.             background: #fff !important;
  875.         }
  876.         
  877.         .form-control:focus {
  878.             border-color: #007bff !important;
  879.             outline: none !important;
  880.             box-shadow: 0 0 0 2px rgba(0,123,255,0.1) !important;
  881.         }
  882.         
  883.         /* Boutons */
  884.         .multi_submit {
  885.             display: flex !important;
  886.             gap: 12px !important;
  887.             margin-top: 20px !important;
  888.         }
  889.         
  890.         .btn-primary {
  891.             flex: 1 !important;
  892.             background: #007bff !important;
  893.             border: none !important;
  894.             padding: 8px !important;
  895.             border-radius: 6px !important;
  896.             font-size: 13px !important;
  897.             font-weight: 500 !important;
  898.             cursor: pointer !important;
  899.             color: white !important;
  900.             text-align: center !important;
  901.             transition: background 0.2s !important;
  902.         }
  903.         
  904.         .btn-primary:hover {
  905.             background: #0056b3 !important;
  906.         }
  907.         
  908.         /* Cacher les icônes */
  909.         .pre-icon {
  910.             display: none !important;
  911.         }
  912.         
  913.         /* Petits drapeaux décoratifs */
  914.         .small-flags {
  915.             position: fixed !important;
  916.             bottom: 20px !important;
  917.             right: 20px !important;
  918.             z-index: 2 !important;
  919.             display: flex !important;
  920.             gap: 5px !important;
  921.         }
  922.         
  923.         .small-flag {
  924.             width: 30px !important;
  925.             height: 20px !important;
  926.             background: linear-gradient(135deg, #3b6e2c 33%, #ffffff 33%, #ffffff 66%, #cf0921 66%) !important;
  927.             border-radius: 3px !important;
  928.             animation: smallFlagWave 1s ease-in-out infinite !important;
  929.         }
  930.         
  931.         @keyframes smallFlagWave {
  932.             0%, 100% {
  933.                 transform: rotate(0deg);
  934.             }
  935.             50% {
  936.                 transform: rotate(5deg);
  937.             }
  938.         }
  939.         
  940.         /* Responsive */
  941.         @media (max-width: 500px) {
  942.             .auth-box-w {
  943.                 max-width: 95% !important;
  944.                 margin: 15px auto !important;
  945.                 padding: 18px 18px 22px 18px !important;
  946.             }
  947.             
  948.             .logo-w img {
  949.                 max-width: 60px !important;
  950.             }
  951.             
  952.             .multi_submit {
  953.                 flex-direction: column !important;
  954.                 gap: 8px !important;
  955.             }
  956.             
  957.             .flag-wave {
  958.                 transform: translate(-50%, -50%) scale(0.4) !important;
  959.             }
  960.         }
  961.     </style>
  962. {% endblock %}
  963. {% block fos_user_script %}
  964.     {{ parent() }}
  965.     <script>
  966.         change_submit_name();
  967.         \$('#userbundle_user_validCode').on('input', function(e) {
  968.             change_submit_name();
  969.         });
  970.         
  971.         function change_submit_name() {
  972.             if(\$('#userbundle_user_validCode').val().length > 0) {
  973.                 \$('#submit_change_password').val(\"Initialiser votre mot de passe\");
  974.             } else {
  975.                 \$('#submit_change_password').val(\"Demander le code\");
  976.             }
  977.         }
  978.         
  979.         // animations supplémentaires
  980.         \$(document).ready(function() {
  981.             // Créer des petites particules aux couleurs du drapeau
  982.             setInterval(function() {
  983.                 var colors = ['#3b6e2c', '#ffffff', '#cf0921', '#f3c300'];
  984.                 var particle = \$('<div class=\"flag-particle\"></div>');
  985.                 particle.css({
  986.                     position: 'fixed',
  987.                     width: '5px',
  988.                     height: '5px',
  989.                     background: colors[Math.floor(Math.random() * colors.length)],
  990.                     borderRadius: '50%',
  991.                     bottom: '0px',
  992.                     left: Math.random() * window.innerWidth + 'px',
  993.                     opacity: Math.random() * 0.5 + 0.2,
  994.                     zIndex: 1,
  995.                     pointerEvents: 'none'
  996.                 });
  997.                 \$('body').append(particle);
  998.                 
  999.                 particle.animate({
  1000.                     bottom: window.innerHeight + 'px',
  1001.                     opacity: 0
  1002.                 }, Math.random() * 3000 + 2000, function() {
  1003.                     particle.remove();
  1004.                 });
  1005.             }, 500);
  1006.         });
  1007.     </script>
  1008. {% endblock %}""user/ask_password.html.twig""/var/www/inserjeune.km/templates/user/ask_password.html.twig");
  1009.     }
  1010. }