templates/home/presentation.html.twig line 1

Open in your IDE?
  1. {% extends "base.html.twig" %}
  2. {% block customstylesheets %}
  3.     <!-- Required meta tags -->
  4.     <meta charset="utf-8">
  5.                 <meta property="title" content="Le Mail Français - La potion magique de vos e-mails"/>
  6.                 <meta name="description" content="Personnalisez facilement les images de vos e-mails. Intégrez le nom de vos clients, personnalisez selon la météo, ajoutez un compte à rebours animé en temps réel.">
  7.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  8.     <link rel="canonical" href="https://lemailfrancais.app"/>
  9.                 <link rel=”alternate” hreflang=”fr-fr” href="https://lemailfrancais.app" />
  10.                 <meta property="og:site_name" content="Le Mail Français">
  11.                 <meta property="og:url" content="https://lemailfrancais.app">
  12.                 <meta property="og:description" content="Personnalisez facilement les images de vos e-mails. Intégrez le nom de vos clients, personnalisez selon la météo, ajoutez un compte à rebours animé en temps réel.">
  13.                 <meta property="og:type" content="website">
  14.                 <meta property="og:image" content="https://lemailfrancais.app/img/logo_lemailfr.png">
  15.     <meta property="og:locale" content="fr_FR"/>
  16.     <meta property="og:title" content="Le Mail Français - La potion magique de vos e-mails"/>
  17.     <meta property="og:video" content="https://lemailfrancais.app/video/accueil.mp4"/>
  18.     <meta property="og:image:secure_url" content="https://lemailfrancais.app/img/logo_lemailfr.png"/>
  19.     <meta property="og:image:width" content="896"/>
  20.     <meta property="og:image:height" content="506"/>
  21.                 <meta name="twitter:card" content="summary_large_image"/>
  22.     <meta name="twitter:description" content="Personnalisez facilement les images de vos e-mails. Intégrez le nom de vos clients, personnalisez selon la météo, ajoutez un compte à rebours animé en temps réel."/>
  23.     <meta name="twitter:title" content="Le Mail Français - La potion magique de vos e-mails"/>
  24.     <meta name="twitter:image" content="https://lemailfrancais.app/img/logo_lemailfr.png"/>
  25.                 <link rel="stylesheet" href="{{ asset('css/style_presentation.css') }}">
  26.     <link rel="stylesheet" href="{{ asset('css/media.css') }}">
  27. {% endblock %}
  28. {% block body %}
  29.     <!-- DEBUT CONTAINER -->
  30.     <section  class="container intro">
  31.         <div class="row">
  32.             <div class="col-md-6">
  33.                 <h1>Stimulez vos e-mails à&nbsp;la&nbsp;française&nbsp;!</h1>
  34.                 <a href="{{ path('registration') }}" type="button" class="btn btn-primary btn-cestparti">C'EST PARTI !</a>
  35.                 <img alt="C'est parti !" src="{{ asset('img/presentation/300pct_simple.png') }}" width="100%" >
  36.             </div>
  37.             <div class="col-md-6">
  38.                 <video autoplay loop muted poster="{{ asset('img/presentation/fond_vid.jpg') }}" id="background">
  39.                     <source src="{{ asset('video/Video.mp4') }}" type="video/mp4">
  40.                 </video>
  41.             </div>
  42.         </div>
  43.     </section>
  44.     <section id="concept" class="blocs1_2_3 " >
  45.        <div class="container">
  46.            <div class="row">
  47.                <div class="col-12">
  48.                    <video width="320" height="240" controls>
  49.                        <source src="{{ asset('video/accueil.mp4') }}" type="video/mp4">
  50.                    </video>
  51.                </div>
  52.                <div class="col-12">
  53.                    <div class="bloc_btn-cestparti">
  54.                        <a href="{{ path('registration') }}" type="button" class="align-items-center btn btn-primary btn-cestparti">C'EST PARTI !</a>
  55.                        <img alt="animation personnage" src="{{ asset('img/presentation/Personnage_bouton_1.png') }}" class="marche personnage_bouton imgh" alt="c'est parti"/>
  56.                    </div>
  57.                </div>
  58.            </div>
  59.        </div>
  60.     </section>
  61.     
  62.     <section class="container blocs_doityourself">
  63.         <div class="row diy">
  64.             <div class="col-md-12">
  65.                 <h2>À vous de jouer !</h2>
  66.             </div>
  67.             <div class="col-md-3 ">
  68.                 <img alt="A vous de jouer !" class="img-fluid" loading="lazy" src="{{ asset('img/presentation/doityourself_perso.png') }}">
  69.             </div>
  70.             <div class="col-md-6">
  71.                 <h3>Je teste</h3>
  72.                 <p><strong>Inscrivez-vous GRATUITEMENT</strong> pour accéder directement<br>
  73.                     à tous vos <strong>"STIMS"</strong> et diffuser votre première campagne test&nbsp;!<br>
  74.                     Grâce à notre système, <strong>seuls les e-mails ouverts<br>
  75.                         sont décomptés sous forme de Jetons.</strong>
  76.                 </p>
  77.                 <p><strong style="color: #42c4df;">Laissez-vous guider, c’est simple et intuitif.</strong></p>
  78.                 <div class="col-md-12">
  79.                     <a href="{{ path('registration') }}" type="button" class="btn btn-primary btn-cestparti">C'EST PARTI !</a>
  80.                 </div>
  81.             </div>
  82.             <div class="col-md-3">
  83.                 <img alt="jetons - offre" class="img-fluid" loading="lazy" src="{{ asset('img/presentation/jetonsofferts.png') }}">
  84.             </div>
  85.         </div>
  86.         <div class="col-md-12 doityourself_separateur">
  87.             <img alt="separateur" loading="lazy" src="{{ asset('img/presentation/doityourself_separateur.png') }}">
  88.         </div>
  89.         <div class="row diy"  id="price">
  90.             <div class="col-md-12">
  91.                 <h3>Je suis fan</h3>
  92.                 <p>
  93.                     Profitez d'un large choix de packs avantageux pour acheter des Jetons.<br/>
  94.                     Disponibles dans l'espace membre.
  95.                     <!--
  96.                     <a href="{{ path('registration') }}">Inscrivez-vous</a> ou <a href="{{ path('app_login') }}">connectez vous</a>
  97.                     -->
  98.                 </p>
  99.             </div>
  100.         </div>
  101.     </section>
  102.     <section>
  103.         <div class="container">
  104.             <div id="products" class="row">
  105.                 <div class="col-sm-4 col-lg-4">
  106.                     <div class="pack_titre">
  107.                         OFFRE
  108.                         <div class="pack_sep"></div>
  109.                         <img alt="pack gratuit" class="pack-img-center" loading="lazy" src="{{ asset('img/presentation/packgratuit.png') }}">
  110.                     </div>
  111.                     <div class="pack_contenu">
  112.                         <p class="pack_car1">10 000</p>
  113.                         <p class="pack_car2">Jetons Offerts</p>
  114.                         <div class="pack_sep"></div>
  115.                         <p class="pack_car4">Pour toute première inscription à la plateforme pour réaliser vos tests.</p>
  116.                         <p class="pack_car6"><br />(L'offre d'essai est limitée à un compte par entreprise et par adresse IP de connexion)</p>
  117.                         <p><br /><a href="{{ path('registration') }}" type="button" class="btn btn-primary btn-cestparti">> C'EST PARTI !</a></p>
  118.                     </div>
  119.                 </div>
  120.                 {% set ratioBase = ( 1000 * products[0].price ) / products[0].credits  %}
  121.                 {% for product in products %}
  122.                     {# On set  les certaines variables #}
  123.                     {% set credits = product.credits|number_format(0,',',' ') %}
  124.                     {% set euro = product.price|round(0,'floor') %}
  125.                     {% set decimals = (product.price - euro)*100 %}
  126.                     {% set ratio = ( ( 1000 * product.price ) / product.credits ) %}
  127.                     {% set reduction = 100 - (ratio * 100 /ratioBase) %}
  128.                     {# On affiche les produits #}
  129.                     <div class="col-sm-4 col-lg-4">
  130.                         <div class="pack_titre">
  131.                             OFFRE
  132.                             <div class="pack_sep"></div>
  133.                             <img alt="Pack" class="pack-img-center" loading="lazy" src="{{ asset('img/presentation/'~ product.imgFilename) }}">
  134.                         </div>
  135.                         <div class="pack_contenu">
  136.                             <p class="pack_car1">{{ credits }}</p>
  137.                             <p class="pack_car2">Jetons</p>
  138.                             <div class="pack_sep"></div>
  139.                             <p class="pack_car3">
  140.                                 {% if decimals != 0 %}
  141.                                     {{euro}},<sup>{{ decimals }}€<sup>HT</sup></sup>
  142.                                 {% else %}
  143.                                     {{euro}}<sup>€<sup>HT</sup></sup>
  144.                                 {% endif %}
  145.                             </p>
  146.                             <p class="pack_car4">les {{ credits }} Jetons</p>
  147.                             <p class="pack_car5">soit {{ ratio | number_format(2,',',' ') }}€<sup>HT</sup></p>
  148.                             <p class="pack_car6">les 1 000 ouvertures</p>
  149.                             {% if reduction != 0 %}
  150.                             <p class="pack_car7">(-{{ reduction | round(0,'floor')}}% de réduction)</p>
  151.                             {% endif %}
  152.                         </div>
  153.                     </div>
  154.                 {% endfor %}
  155.                 <div class="col-sm-4 col-lg-4">
  156.                     <div class="pack_titre">
  157.                         OFFRE
  158.                         <div class="pack_sep"></div>
  159.                         <img alt="Pack" class="pack-img-center" src="{{ asset('img/presentation/packcoupe.png') }}">
  160.                     </div>
  161.                     <div class="pack_contenu">
  162.                         <p class="pack_car2">Envie d'aller</p>
  163.                         <p class="pack_car1">plus loin ?</p>
  164.                         <div class="pack_sep"></div>
  165.                         <p class="pack_car4">Demandez notre service<br />sur-mesure.</p>
  166.                         <p class="pack_car6"><br />Connexions à vos webservices, créations uniques, idées d'animations personnalisées impossibles ?</p>
  167.                         <p><br /><button type="button" class="btn btn-primary btn-cestparti" data-toggle="modal"
  168.                                      data-target="#ticketModal">CONTACTEZ-NOUS</button></p>
  169.                     </div>
  170.                 </div>
  171.             </div>
  172.         </div>
  173.     </section>
  174.     <section id="malin">
  175.         <div class="container">
  176.             <div class="row">
  177.                 <div class="col-md-12">
  178.                     <div class="bloc_btn-cestparti2">
  179.                         <a href="{{ path('registration') }}" title="J'y vais !">
  180.                             <button type="button" class="align-items-center btn btn-primary btn-cestparti2">C'EST PARTI !
  181.                             </button>
  182.                             <img alt="Malin ! Mes jetons ne sont débités que si mes e-mails sont ouverts et en plus ils sont valables sans limite de temps" loading="lazy" src="{{ asset('img/presentation/personnage_malin.png') }}" class="personnage_bouton">
  183.                         </a>
  184.                     </div>
  185.                 </div>
  186.             </div>
  187.         </div>
  188.     </section>
  189.     <section id="premium" class="blocs_contact">
  190.         <div class="container">
  191.             <div class="row">
  192.                 <div class="col-md-12">
  193.                     <p class="contact_intro">Vous préférez qu’on s’occupe de tout pour vous <br>ou vous avez des demandes
  194.                         spécifiques ?<br>Nos experts (et le reste de l'équipe) sont là pour ça...</p>
  195.                     <h2>Préparez-vous à battre des records&nbsp;!</h2>
  196.                 </div>
  197.             </div>
  198.             <div class="row">
  199.                 <div class="col-md-4">
  200.                     <img alt="Photo Philippe Poivret" class="img-fluid" loading="lazy" src="{{ asset('img/presentation/contact_1.png') }}">
  201.                     <p class="contact_nom">Philippe POIVRET</p>
  202.                     <p class="contact_poste">Directeur Digital</p>
  203.                 </div>
  204.                 <div class="col-md-4">
  205.                     <img alt="Photo Thierry LECLERCQ" class="img-fluid" loading="lazy" src="{{ asset('img/presentation/contact_2.png') }}">
  206.                     <p class="contact_nom">Thierry LECLERCQ</p>
  207.                     <p class="contact_poste">Directeur de Création</p>
  208.                 </div>
  209.                 <div class="col-md-4">
  210.                     <img alt="Photo Audrey NOIRJEAN"  class="img-fluid" loading="lazy" src="{{ asset('img/presentation/contact_3.png') }}">
  211.                     <p class="contact_nom">Audrey NOIRJEAN</p>
  212.                     <p class="contact_poste">DA Multimédia</p>
  213.                 </div>
  214.             </div>
  215.             <div class="row">
  216.                 <div class="col-md-4">
  217.                     <img alt="Photo Fanny Hichami"  class="img-fluid" loading="lazy" src="{{ asset('img/presentation/contact_5.png') }}">
  218.                     <p class="contact_nom">Fanny Hichami</p>
  219.                     <p class="contact_poste">DA Multimédia</p>
  220.                 </div>
  221.                 <div class="col-md-4">
  222.                     <img  alt="Photo Tony SWILLENS" class="img-fluid" loading="lazy" src="{{ asset('img/presentation/contact_6.png') }}">
  223.                     <p  class="contact_nom">Tony SWILLENS</p>
  224.                     <p class="contact_poste">Chef de Projet Emailing</p>
  225.                 </div>
  226.                 <div class="col-md-4">
  227.                     <img alt="Photo Maxime THÉVENOT"   loading="lazy" class="img-fluid" src="{{ asset('img/presentation/contact_7.png') }}">
  228.                     <p class="contact_nom">Maxime THÉVENOT</p>
  229.                     <p class="contact_poste">Développeur Full Stack</p>
  230.                 </div>
  231.             </div>
  232.             <div class="row">
  233.                 <div class="col-12">
  234.                     <p class="contact_texte">
  235.                         API, stocks, création… Vous avez une autre idée ou un besoin particulier ? Laissez-nous gérer. Et
  236.                         n’hésitez pas à nous passer le relai. Notre équipe sur-entraînée est prête à partir au quart de
  237.                         tour. Avec à l’arrivée : une campagne plus inventive, compétitive et percutante que jamais.
  238.                     </p>
  239.                     <button type="button"
  240.                             class="btn btn-primary btn-contact"
  241.                             data-toggle="modal"
  242.                             data-target="#ticketModal">CONTACTEZ-NOUS</button>
  243.                 </div>
  244.             </div>
  245.         </div>
  246.     </section>
  247.     <!-- DEBUT FOOTER -->
  248.     <section class="container-fluid footer">
  249.         <div class="row ">
  250.             <div class="col-md-4 footer1">
  251.                 <img alt="Le Mail Français - logo" loading="lazy" src="{{ asset('img/presentation/footer_logo.png') }}">
  252.                 <p>7 avenue Foch<br>
  253.                     59700 Marcq-en-Barœul<br>
  254.                     FRANCE  <img alt="Drapeau France" loading="lazy"  src="{{ asset('img/presentation/drapeauFrance.gif') }}">
  255.                 </p>
  256.             </div>
  257.             <div class="col-md-4 footer2">
  258.                 <div class="row">
  259.                     <div class="col-md-12">
  260.                         <a href="#premium">Prestation sur-mesures</a>
  261.                         <br><br>
  262.                         <a href="{{ path('faq_public') }}">Questions fréquentes</a>
  263.                         <br><br>
  264.                         <a href="#">Mentions légales / RGPD</a>
  265.                         <br><br>
  266.                         <a href="https://www.linkedin.com/company/le-mail-fran%C3%A7ais" target="_blank">Suivez-nous sur <img alt="Suivez nous sur Linkedin" src="{{ asset('img/presentation/logoLinkedin.png') }}"></a>
  267.                     </div>
  268.                 </div>
  269.             </div>
  270.             <div class="col-md-4 text-center footer3">
  271.                 <p>Visitez le site de notre agence !</p>
  272.                 <a href="https://www.agence-jpgc.com" target="_blank"><img
  273.                             alt="Agence JPGC - Logo" src="{{ asset('img/presentation/footer_logo_jpgc.png') }}"></a>
  274.             </div>
  275.         </div>
  276.     </section>
  277.     <section class="mention">
  278.         <div class="row">
  279.             <div class="col-md-12 text-center">
  280.                 <p><strong> © lemailfrancais {{ "now"|date("Y") }}</strong> - Tous droits réservés</p>
  281.             </div>
  282.         </div>
  283.     </section>
  284.     <!-- FIN FOOTER -->
  285.     <div class="modal fade ticketModal" id="ticketModal" tabindex="-1" role="dialog" aria-labelledby="ticketModalLabel" aria-hidden="true"
  286.          data-error="{% if not ticketForm.vars.valid %}true{% endif %}"
  287.          data-success="{% if formSuccessMessage is not null %}true{% endif %}">
  288.         <div class="modal-dialog modal-lg">
  289.             <div class="modal-content">
  290.                 <div class="modal-header">
  291.                     <div class="d-flex justify-content-start">
  292.                         <div class="p-0">
  293.                             <img width="40px" alt="animation" loading="lazy" src="{{ asset('img/home/Personnage_marche1.png') }}"  alt="Responsive image">
  294.                         </div>
  295.                         <div class="p-3">
  296.                             <h2 class="">Que puis-je pour vous ?</h2>
  297.                         </div>
  298.                     </div>
  299.                     <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button>
  300.                 </div>
  301.                 <div class="modal-body">
  302.                     <div class="container">
  303.                         {%  if formSuccessMessage is not null %}
  304.                         <div class="row">
  305.                             <div class="col-12 alert alert-success alert-dismissible fade show message-retour">
  306.                                 {{ formSuccessMessage|raw}}
  307.                                 <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  308.                                     <span aria-hidden="true">&times;</span>
  309.                                 </button>
  310.                             </div>
  311.                         </div>
  312.                         {% endif %}
  313.                         {# Var ticketForm \App\Form\ExtTicketType #}
  314.                         {{ form_start(ticketForm) }}
  315.                         <div class="row">
  316.                             <div class="col-12">
  317.                                 {{ form_row(ticketForm.object) }}
  318.                             </div>
  319.                         </div>
  320.                         <div class="row">
  321.                             <div class="col-6">
  322.                                 {{ form_row(ticketForm.enterprise) }}
  323.                             </div>
  324.                         </div>
  325.                         <div class="row">
  326.                             <div class="col-6">
  327.                                 {{ form_row(ticketForm.firstName) }}
  328.                             </div>
  329.                             <div class="col-6">
  330.                                 {{ form_row(ticketForm.lastName) }}
  331.                             </div>
  332.                         </div>
  333.                         <div class="row">
  334.                             <div class="col-6">
  335.                                 {{ form_row(ticketForm.email) }}
  336.                             </div>
  337.                             <div class="col-6">
  338.                                 {{ form_row(ticketForm.phoneNumber) }}
  339.                             </div>
  340.                         </div>
  341.                         <div class="row">
  342.                             <div class="col-12 text-center">
  343.                                 {{ form_row(ticketForm.message) }}
  344.                             </div>
  345.                         </div>
  346.                         <div class="row">
  347.                             <div class="col-12 text-center">
  348.                                 {{ form_row(ticketForm.submit) }}
  349.                             </div>
  350.                         </div>
  351.                         {{ form_end(ticketForm) }}
  352.                     </div>
  353.                 </div>
  354.             </div>
  355.         </div>
  356.     </div>
  357.     <!-- Modal -->
  358.     <div class="modal fade" id="modal-demo" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle"
  359.          aria-hidden="true"
  360.          data-banque="{{ path('presentation_demo',{'demo':'banque'}) }}"
  361.          data-boutique1="{{ path('presentation_demo',{'demo':'boutique1'}) }}"
  362.          data-boutique2="{{ path('presentation_demo',{'demo':'boutique2'}) }}"
  363.          data-boutique3="{{ path('presentation_demo',{'demo':'boutique3'}) }}"
  364.          data-boutique4="{{ path('presentation_demo',{'demo':'boutique4'}) }}"
  365.          data-fondation="{{ path('presentation_demo',{'demo':'fondation'}) }}"
  366.          data-assurances="{{ path('presentation_demo',{'demo':'assurances'}) }}"
  367.          data-fidelite="{{ path('presentation_demo',{'demo':'fidelite'}) }}"
  368.          data-luxe="{{ path('presentation_demo',{'demo':'luxe'}) }}">
  369.         <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
  370.             <div class="modal-content">
  371.             </div>
  372.         </div>
  373.     </div>
  374.     
  375.     
  376. {% endblock %}
  377. {# Ici tu peux venir mettre ton javasript perso qui sera injecté après bottstrap jquery etc... #}
  378. {% block customjavascript %}
  379.     <!-- Optional JavaScript -->
  380.     <script src="{{ asset('js/wc-presentation.js') }}"></script>
  381.     <script type="text/javascript" id="script-marche"
  382.             data-marche1="{{ asset('img/home/Personnage_marche1.png') }}"
  383.             data-marche2="{{ asset('img/home/Personnage_marche2.png') }}"
  384.             src="{{ asset('js/wc-marche.js') }}"></script>
  385.     <!-- <script src="https://www.google.com/recaptcha/api.js"></script> -->
  386.     <script>
  387.         $(function() {
  388.             /**
  389.              * Smooth scrolling to page anchor on click
  390.              **/
  391.             $("a[href*='#']:not([href='#'])").click(function() {
  392.                 if (
  393.                     location.hostname == this.hostname
  394.                     && this.pathname.replace(/^\//,"") == location.pathname.replace(/^\//,"")
  395.                 ) {
  396.                     var anchor = $(this.hash);
  397.                     anchor = anchor.length ? anchor : $("[name=" + this.hash.slice(1) +"]");
  398.                     if ( anchor.length ) {
  399.                         $("html, body").animate( { scrollTop: anchor.offset().top-100 }, 1500);
  400.                     }
  401.                 }
  402.             });
  403.             /**
  404.             Open modal if get parameter contactForm is Open
  405.              */
  406.             function GetURLParameter(sParam)
  407.             {
  408.                 let sPageURL = window.location.search.substring(1);
  409.                 let sURLVariables = sPageURL.split('&');
  410.                 for (let i = 0; i < sURLVariables.length; i++)
  411.                 {
  412.                     let sParameterName = sURLVariables[i].split('=');
  413.                     if ( sParameterName[0] === sParam)
  414.                     {
  415.                         return sParameterName[1];
  416.                     }
  417.                 }
  418.             }
  419.             let contactForm = GetURLParameter("formContact");
  420.             if( contactForm === 'true'){
  421.                 $('#ticketModal').modal('show');
  422.             }
  423.         });
  424.     </script>
  425.     <script>
  426. /*
  427. Changement de version de logo pour la nav fixed
  428. */
  429.         $(document).ready(function (){
  430.             let e = document.getElementById('navbar')
  431.             let observer = new MutationObserver(function (event) {
  432.                 let navbar = event[0].target;
  433.                 let navbarClass = $('#'+navbar.id).attr('class');
  434.                 //On check si fixed-top ou pas
  435.                 if(navbarClass.includes('fixed-top')){
  436.                     $('#logoEmailFrancais').hide();
  437.                     $('#logoEmailFrancaisSmall').show();
  438.                 }else{
  439.                     $('#logoEmailFrancais').show();
  440.                     $('#logoEmailFrancaisSmall').hide();
  441.                 }
  442.             });
  443.             observer.observe(e, {
  444.                 attributes: true,
  445.                 attributeFilter: ['class'],
  446.                 childList: false,
  447.                 characterData: false
  448.             });
  449.         });
  450.     </script>
  451. {% endblock %}