templates/front/homepage.html.twig line 1

Open in your IDE?
  1. {% extends "front/base.html.twig" %}
  2. {% block title %}
  3.     {{ 'seo.home_title' | trans }}
  4. {% endblock %}
  5. {% block seo %}
  6.     <meta name="description" content="{{ 'seo.home_description' | trans }}">
  7. {% endblock %}
  8. {% block og %}
  9.     <meta property="og:type" content="website" />
  10.     <meta property="og:title" content="{{ 'seo.home_title' | trans }}" />
  11.     <meta property="og:image" content="{{ url('homepage_no_locale') }}images/open-graph.png"/>
  12.     <meta property="og:description" content="{{ 'seo.home_description' | trans }}"/>
  13. {% endblock %}
  14. {% form_theme form _self %}
  15. {%- block choice_widget_expanded -%}
  16. {%- for child in form %}
  17.     <div class="checkbox icheck-primary">
  18.         {{- form_widget(child) -}}
  19.     </div>
  20. {% endfor -%}{%- endblock choice_widget_expanded -%}
  21. {% block body %}
  22. <section class="screen-height overflow-hidden pt-0" id="hero-section">
  23.     <div class="home-sliders hide-mobile">
  24.         {% if sliders | length > 0 %}
  25.         
  26.         {% for slider in sliders %}
  27.             <div class="landing-slider-item" style="background-image: url('/images/header/{{ slider.image }}');">
  28.                 <div class="container-fluid">
  29.                     <div class="row slide-row">
  30.                         <div class="col-12 content">
  31.                             <h3 class="title">{{ slider.title }}</h3>
  32.                             <p class="text">
  33.                                 {{ slider.description }}
  34.                             </p>
  35.                             {% if slider.link %}
  36.                                 <a href="{{ slider.link }}" class="btn discover"  target="_blank">{{ 'homepage.discover' | trans }}</a>
  37.                             {% endif %}
  38.                         </div>
  39.                     </div>
  40.                 </div>
  41.             </div>
  42.         {% endfor %}
  43.         {% else %}
  44.             <div class="landing-slider-item" style="background-image: url('/images/hero-mobile.png');">
  45.                 <div class="container-fluid">
  46.                     <div class="row slide-row">
  47.                         <div class="col-12 content">
  48.                             <h3 class="title">Racket Trip</h3>
  49.                             <p class="text">
  50.                                 
  51.                             </p>
  52.                         </div>
  53.                     </div>
  54.                 </div>
  55.             </div>
  56.         {% endif %}
  57.     </div>
  58.     <div class="home-intro hide-desktop" style="background-image: url('/images/hero-mobile.png');"></div>
  59.     <div class="card search-card">
  60.         <h3 class="title">{{ "form.looking_for_what" | trans }}</h3>
  61.         {{ form_start(form, {'attr': {'class': 'home-search-form'}}) }}
  62.             <div class="input-group global destination">
  63.                 <div class="form-group">
  64.                     <input type="text" id="destination" autocomplete="off" placeholder="{{ "homepage.where_to" | trans }}" class="form-control">
  65.                 </div>
  66.                 {{ form_widget(form.place) }}
  67.             </div>
  68.             <div class="custom-dropdown-input short-input" id="sport-wrap">
  69.                 <span class="custom-dropdown-label" id="sport-checkbox-label">{{ "directory.sport" | trans }}</span>
  70.                 <div class="custom-dropdown-content" id="sport-checkbox">
  71.                     {{ form_widget(form.sports) }}
  72.                 </div>
  73.             </div>
  74.             <div class="custom-dropdown-input short-input" id="date-wrap">
  75.                 <span class="custom-dropdown-label" id="date-input-label">{{ "page_course_detail.from" | trans }}</span>
  76.                 <div class="custom-dropdown-content">
  77.                     <div id="datepicker"></div>
  78.                     {{ form_widget(form.begin) }}
  79.                 </div>
  80.             </div>
  81.             <div class="hide">
  82.                 {{ form_row(form.search) }}
  83.                 {{ form_rest(form) }}
  84.             </div>
  85.             <button type="submit" class="btn main-btn mx-auto">{{ "global.search" | trans }}</button>
  86.         {{ form_end(form) }}
  87.     </div>
  88.     <div class="landing-scroll" id="discover">
  89.         <span class="scroll-text">{{ 'homepage.discover_offers' | trans }}</span>
  90.         <i class="far fa-chevron-down"></i>
  91.     </div>
  92. </section>
  93. <div class="overflow-hidden">
  94.     {% if courses | length > 0 %}
  95.         <section class="home-courses" id="courses">
  96.             <div class="container-fluid home-courses-container">
  97.                 <div class="main-title">
  98.                     <h1 class="title-text">{{ 'homepage.current_courses' | trans }}</h1>
  99.                 </div>
  100.                 <div class="courses-slider-wrapper mt-4">
  101.                     {% for course in courses %}
  102.                     {% if course | nextdate(startingDate).begin != null %}
  103.                     {% include "front/course/_course-card.html.twig" %}
  104.                     {% endif %}
  105.                     {% endfor %}
  106.                 </div>
  107.             </div>
  108.         </section>
  109.     {% endif %}
  110.     {% if is_granted('ROLE_TRAINEE') and traineeCourses | length > 0 %}
  111.         <section id="trainee-courses">
  112.             <div class="container-fluid home-courses-container">
  113.                 <div class="main-title">
  114.                     <h1 class="title-text">{{ 'homepage.current_courses_trainee' | trans }}</h1>
  115.                 </div>
  116.                 <div class="courses-slider-wrapper mt-4">
  117.                     {% for course in traineeCourses %}
  118.                         {% if course | nextdate(startingDate).begin != null %}
  119.                             {% include "front/course/_course-card.html.twig" %}
  120.                         {% endif %}
  121.                     {% endfor %}
  122.                 </div>
  123.             </div>
  124.         </section>
  125.         
  126.     {% endif %}
  127.     <section id="countries">
  128.         <div class="container-fluid">
  129.             <h2 class="section-title-underline">{{ 'homepage.countries' | trans }}</h2>
  130.             <div class="countries-grid">
  131.             
  132.                 <div class="country-card">
  133.                     <img loading="lazy" src="{{ asset('/images/destinations/espagne.png') }}" alt="{{ 'homepage.spain' | trans }}">
  134.                     <a href="{{ path('courses') }}" data-place="ChIJi7xhMnjjQgwR7KNoB5Qs7KY" class="country-mobile-link search-country">
  135.                         <p class="country-title">{{ 'homepage.spain' | trans }}</p>
  136.                     </a>
  137.                     <a href="{{ path('courses') }}" data-place="ChIJi7xhMnjjQgwR7KNoB5Qs7KY" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  138.                 </div>
  139.                 <div class="country-card">
  140.                     <img loading="lazy" src="{{ asset('/images/destinations/senegal.png') }}" alt="{{ 'homepage.senegal' | trans }}">
  141.                     <a href="{{ path('courses') }}" data-place="ChIJcbvFs_VywQ4RQFlhmVClRlo" class="country-mobile-link search-country">
  142.                         <p class="country-title">{{ 'homepage.senegal' | trans }}</p>
  143.                     </a>
  144.                     <a href="{{ path('courses') }}" data-place="ChIJcbvFs_VywQ4RQFlhmVClRlo" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  145.                 </div>
  146.                 <div class="country-card">
  147.                     <img loading="lazy" src="{{ asset('/images/destinations/italie.png') }}" alt="{{ 'homepage.italy' | trans }}">
  148.                     <a href="{{ path('courses') }}" data-place="ChIJA9KNRIL-1BIRb15jJFz1LOI" class="country-mobile-link search-country">
  149.                         <p class="country-title">{{ 'homepage.italy' | trans }}</p>
  150.                     </a>
  151.                     <a href="{{ path('courses') }}" data-place="ChIJA9KNRIL-1BIRb15jJFz1LOI" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  152.                 </div>
  153.                 <div class="country-card">
  154.                     <img loading="lazy" src="{{ asset('/images/destinations/france.png') }}" alt="{{ 'homepage.france' | trans }}">
  155.                     <a href="{{ path('courses') }}" data-place="ChIJMVd4MymgVA0R99lHx5Y__Ws" class="country-mobile-link search-country">
  156.                         <p class="country-title">{{ 'homepage.france' | trans }}</p>
  157.                     </a>
  158.                     <a href="{{ path('courses') }}" data-place="ChIJMVd4MymgVA0R99lHx5Y__Ws" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  159.                 </div>
  160.                 <div class="country-card">
  161.                     <img loading="lazy" src="{{ asset('/images/destinations/belgique.png') }}" alt="{{ 'homepage.belgium' | trans }}">
  162.                     <a href="{{ path('courses') }}" data-place="ChIJl5fz7WR9wUcR8g_mObTy60c" class="country-mobile-link search-country">
  163.                         <p class="country-title">{{ 'homepage.belgium' | trans }}</p>
  164.                     </a>
  165.                     <a href="{{ path('courses') }}" data-place="ChIJl5fz7WR9wUcR8g_mObTy60c" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  166.                 </div>
  167.                 <div class="country-card">
  168.                     <img loading="lazy" src="{{ asset('/images/destinations/maroc.png') }}" alt="{{ 'homepage.morocco' | trans }}">
  169.                     <a href="{{ path('courses') }}" data-place="ChIJjcVRlmGICw0Rw_8sxIGT09k" class="country-mobile-link search-country">
  170.                         <p class="country-title">{{ 'homepage.morocco' | trans }}</p>
  171.                     </a>
  172.                     <a href="{{ path('courses') }}" data-place="ChIJjcVRlmGICw0Rw_8sxIGT09k" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  173.                 </div>
  174.                 {#
  175.                 <div class="country-card">
  176.                     <img loading="lazy" src="{{ asset('/images/destinations/espagne.png') }}" alt="{{ 'homepage.spain' | trans }}">
  177.                     <a href="{{ path('courses', {'place': 'ChIJi7xhMnjjQgwR7KNoB5Qs7KY', 'search': 'true'}) }}" class="country-mobile-link search-country">
  178.                         <p class="country-title">{{ 'homepage.spain' | trans }}</p>
  179.                     </a>
  180.                     <a href="{{ path('courses', {'place': 'ChIJi7xhMnjjQgwR7KNoB5Qs7KY', 'search': 'true'}) }}" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  181.                 </div>
  182.                 <div class="country-card">
  183.                     <img loading="lazy" src="{{ asset('/images/destinations/senegal.png') }}" alt="{{ 'homepage.senegal' | trans }}">
  184.                     <a href="{{ path('courses', {'place': 'ChIJcbvFs_VywQ4RQFlhmVClRlo', 'search': 'true'}) }}" class="country-mobile-link search-country">
  185.                         <p class="country-title">{{ 'homepage.senegal' | trans }}</p>
  186.                     </a>
  187.                     <a href="{{ path('courses', {'place': 'ChIJcbvFs_VywQ4RQFlhmVClRlo', 'search': 'true'}) }}" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  188.                 </div>
  189.                 <div class="country-card">
  190.                     <img loading="lazy" src="{{ asset('/images/destinations/italie.png') }}" alt="{{ 'homepage.italy' | trans }}">
  191.                     <a href="{{ path('courses', {'place': 'ChIJA9KNRIL-1BIRb15jJFz1LOI', 'search': 'true'}) }}" class="country-mobile-link search-country">
  192.                         <p class="country-title">{{ 'homepage.italy' | trans }}</p>
  193.                     </a>
  194.                     <a href="{{ path('courses', {'place': 'ChIJA9KNRIL-1BIRb15jJFz1LOI', 'search': 'true'}) }}" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  195.                 </div>
  196.                 <div class="country-card">
  197.                     <img loading="lazy" src="{{ asset('/images/destinations/france.png') }}" alt="{{ 'homepage.france' | trans }}">
  198.                     <a href="{{ path('courses', {'place': 'ChIJMVd4MymgVA0R99lHx5Y__Ws', 'search': 'true'}) }}" class="country-mobile-link search-country">
  199.                         <p class="country-title">{{ 'homepage.france' | trans }}</p>
  200.                     </a>
  201.                     <a href="{{ path('courses', {'place': 'ChIJMVd4MymgVA0R99lHx5Y__Ws', 'search': 'true'}) }}" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  202.                 </div>
  203.                 <div class="country-card">
  204.                     <img loading="lazy" src="{{ asset('/images/destinations/belgique.png') }}" alt="{{ 'homepage.belgium' | trans }}">
  205.                     <a href="{{ path('courses', {'place': 'ChIJl5fz7WR9wUcR8g_mObTy60c', 'search': 'true'}) }}" class="country-mobile-link search-country">
  206.                         <p class="country-title">{{ 'homepage.belgium' | trans }}</p>
  207.                     </a>
  208.                     <a href="{{ path('courses', {'place': 'ChIJl5fz7WR9wUcR8g_mObTy60c', 'search': 'true'}) }}" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  209.                 </div>
  210.                 <div class="country-card">
  211.                     <img loading="lazy" src="{{ asset('/images/destinations/maroc.png') }}" alt="{{ 'homepage.morocco' | trans }}">
  212.                     <a href="{{ path('courses', {'place': 'ChIJjcVRlmGICw0Rw_8sxIGT09k', 'search': 'true'}) }}" class="country-mobile-link search-country">
  213.                         <p class="country-title">{{ 'homepage.morocco' | trans }}</p>
  214.                     </a>
  215.                     <a href="{{ path('courses', {'place': 'ChIJjcVRlmGICw0Rw_8sxIGT09k', 'search': 'true'}) }}" class="country-link search-country">{{ 'homepage.discover' | trans }}</a>
  216.                 </div>
  217.                 #}
  218.             
  219.             </div>
  220.         </section>
  221.         
  222.         {% if medias | length > 0 %}
  223.         
  224.         <section id="talks">
  225.             <div class="container-fluid">
  226.                 <div class="main-title mb-5">
  227.                     <h2 class="title-text">{{ 'homepage.sponsors' | trans }}</h2>
  228.                 </div>
  229.                 <div class="logos-wrap">
  230.                     
  231.                     {% for media in medias %}
  232.                     {% if media.link != null %}
  233.                     <a href="{{media.link}}" target="_blank">
  234.                     {% endif %}
  235.                     <div class="logo-item">
  236.                         <img loading="lazy" src="{{ asset('/images/media/' ~ media.image) }}" alt="Sport Eco">
  237.                         <span class="logo-text">"{{ media.name }}"</span>
  238.                     </div>
  239.                     {% if media.link != null %}
  240.                     </a>
  241.                     {% endif %}
  242.                     {% endfor %}
  243.                 
  244.                 </div>
  245.             </div>
  246.         </section>
  247.         {% endif %}
  248.         {% if articles | length > 0 %}
  249.             <section class="blog-section" id="articles">
  250.                 <div class="container-fluid" id="news">
  251.                     <h2 class="section-title-underline">{{ 'homepage.community' | trans }}</h2>
  252.                     <div class="row">
  253.                         {% for article in articles %}
  254.                             <div class="col-xl-3 col-lg-4 col-md-6 col-sm-12 blog-col">
  255.                                 {% include "front/blog/_blog-card.html.twig" %}
  256.                             </div>
  257.                         {% endfor %}
  258.                     </div>
  259.                     <div class="text-center">
  260.                         <a href="{{ path('blog') }}">
  261.                             <button class="btn main-btn mx-auto">{{ 'homepage.see_blog' | trans }}</button>
  262.                         </a>
  263.                     </div>
  264.                 </div>
  265.             </section>
  266.         {% endif %}
  267.         <section id="" class="pb-5">
  268.             <div class="container-fluid">
  269.                 <div class="main-title mb-5">
  270.                     <h2 class="title-text">{{ 'homepage.pros' | trans }}</h2>
  271.                 </div>
  272.                 <div class="partners-wrap">
  273.                     <div class="partner-item">
  274.                         <img loading="lazy" src="{{ asset('/images/coach.png') }}" alt="Coachs">
  275.                         <a href="{{ path('directory', {'type[]': 'coach'}) }}" class="btn partner-btn coach">{{ 'global.coachs' | trans }}</a>
  276.                     </div>
  277.                     <div class="partner-item">
  278.                         <img loading="lazy" src="{{ asset('/images/club.png') }}" alt="Clubs">
  279.                         <a href="{{ path('directory', {'type[]': 'club'}) }}" class="btn partner-btn club">{{ 'global.clubs' | trans }}</a>
  280.                     </div>
  281.                     <div class="partner-item">
  282.                         <img loading="lazy" src="{{ asset('/images/operator.png') }}" alt="OpĂ©rateurs">
  283.                         <a href="{{ path('directory', {'type[]': 'operator'}) }}" class="btn partner-btn operator">{{ 'global.operators' | trans }}</a>
  284.                     </div>
  285.                 </div>
  286.             </div>
  287.         </section>
  288.         {% include "front/blog/_blog-cta.html.twig" %}
  289.     </div>
  290. {% endblock %}
  291. {% block javascript %}
  292.     <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBNWTs1XHaB_zzkP1menI9mdg-NBk1IZnY&libraries=places&language={{ app.request.locale }}"></script>
  293.     {{ parent() }}
  294.     {{ encore_entry_script_tags('search') }}
  295.     <script>
  296.         google.maps.event.addDomListener(window, 'load', initialize);
  297.     
  298.         function initialize() {
  299.             var address = document.getElementById('destination');
  300.             var options = {
  301.                 types: ['(regions)']
  302.             };
  303.             autocomplete = new google.maps.places.Autocomplete(address, options);
  304.             
  305.             google.maps.event.addListener(autocomplete, 'place_changed', function() {
  306.                 fillInAddress();
  307.             });
  308.             google.maps.event.addDomListener(address, 'keydown', function(event) { 
  309.                 if (event.keyCode === 13) { 
  310.                     event.preventDefault(); 
  311.                 }
  312.             }); 
  313.             
  314.         }
  315.         function fillInAddress() {
  316.             var place = autocomplete.getPlace();
  317.             document.getElementById('place').value = place.place_id;
  318.             
  319.         }
  320.     </script>
  321.     {#
  322.     <script>
  323.             $.post('/set-device', { width: screen.width, height:screen.height }, function(json) {
  324.                 if(json.outcome == 'success') {
  325.                     // do something with the knowledge possibly?
  326.                 } else {
  327.                     alert('Unable to let PHP know what the screen resolution is!');
  328.                 }
  329.             },'json');
  330.     </script>
  331.     #}
  332.     <script>
  333.         var searchInput = $('#search');
  334.         var place = $('#place');
  335.         var inSession = false;    
  336.         $('button[type=submit]').on('click', function (e) {
  337.             searchInput.val("true");
  338.             if (inSession == false) {
  339.                 e.preventDefault()
  340.                 let locale = $('.header').data('locale');
  341.                 let destination = $('#destination').val();
  342.                 
  343.                 inSession = true;
  344.                 if (destination != '') {
  345.                     localStorage.setItem('destination', destination)
  346.                 }
  347.             } 
  348.             $('.home-search-form').trigger('submit');
  349.         })
  350.         $('.search-country').on('click', function (e) {
  351.             if (inSession == false) {
  352.                 e.preventDefault()
  353.                 let locale = $('.header').data('locale');
  354.                 let destination = null;
  355.                 if ($(this).hasClass('country-mobile-link')) {
  356.                     destination = $(this).find('.country-title').text();
  357.                 } else {
  358.                     destination = $(this).prev().find('.country-title').text();
  359.                 }
  360.                 searchInput.val("true");
  361.                 place.val($(this).data('place'));
  362.                 
  363.                 inSession = true;
  364.                 if (destination != '') {
  365.                     localStorage.setItem('destination', destination)
  366.                 }
  367.             } 
  368.             $('.home-search-form').trigger('submit');
  369.         })
  370.     </script>
  371. {% endblock %}