templates/front/pro/pro-public.html.twig line 1

Open in your IDE?
  1. {% extends "front/base.html.twig" %}
  2. {% block title %}
  3.     {{ pro.proInfo.fullname | capitalize }}
  4. {% endblock %}
  5. {% if pro is instanceof('App\\Entity\\Coach') %}
  6.     {% set type = 'coach' %}
  7. {% elseif pro is instanceof('App\\Entity\\Club') %}
  8.     {% set type = 'club' %}
  9. {% elseif pro is instanceof('App\\Entity\\Operator') %}
  10.     {% set type = 'operator' %}
  11. {% endif %}
  12. {# Profile photo #}
  13. {% if pro.photo is fileexists('avatar_directory') %}
  14.     {% set avatar = pro.photo %}
  15. {% else %}
  16.     {% set avatar = 'default-profile.png' %}
  17. {% endif %}
  18. {# Cover photo #}
  19. {% if pro.proInfo.coverPhoto and pro.proInfo.coverPhoto is fileexists('avatar_directory') %}
  20.     {% set cover = pro.proInfo.coverPhoto %}
  21. {% else %}
  22.     {% set cover = 'cover.png' %}
  23. {% endif %}
  24. {% block stylesheets %}
  25. {% if inactive %}
  26.     <style>
  27.         body {
  28.             overflow: hidden; /* Hide scrollbars */
  29.         }
  30.     </style>
  31. {% endif %}
  32. {% endblock %}
  33. {% block body %}   
  34.     <section class="mt-0 first-section pro-public overflow-hidden-mobile" id="pro-detail">
  35.         <div class="container-fluid">
  36.             <div class="row justify-content-center">
  37.                 <div class="col-md-12 wrap-col">
  38.                     <div class="cover-wrapper">
  39.                         {% if app.user and app.user == pro %}
  40.                             <div class="preview-edit">
  41.                                 <a href="{{ path('pro_page') }}" class="btn main-btn btn-sm">{{ 'pro_page.edit_page' | trans }}</a>
  42.                                 {% if app.user.proInfo.pageVisible == false %}
  43.                                     <form action="{{ path('publish_my_page') }}" method="post">
  44.                                         <button type="submit" class="btn second-btn btn-sm">{{ 'pro_page.publish_page' | trans }}</button>
  45.                                     </form>
  46.                                 {% endif %}
  47.                             </div>
  48.                         {% endif %}
  49.                         <div class="cover-content">
  50.                             <img loading="lazy" class="cover-image" src="{{ asset('/images/profiles/' ~ cover) }}">
  51.                         </div>
  52.                     </div>
  53.                 </div>
  54.             </div>
  55.         </div>
  56.         <div class="container-fluid">
  57.             <div class="row">
  58.                 <div class="public-page-sidebar-col pro-card-col">
  59.                     <div class="pro-sidebar {{ type }}" id="pro-details-sidebar">
  60.                         <div class="pro-profile-wrap">
  61.                             <div class="profile-wrapper">
  62.                                 <img loading="lazy" class="profile-image" src="{{ asset('/images/profiles/' ~ avatar) }}">    
  63.                             </div>
  64.                         </div>
  65.                         <div class="like-wrap">
  66.                             <button class="btn btn-share" data-toggle="modal" data-target="#share-socials">
  67.                                 <i class="fal fa-arrow-square-up"></i>
  68.                             </button>
  69.                             {% if is_granted('ROLE_TRAINEE') %}
  70.                             <a href="{{ path('add_pro_favorite', {'id': pro.id}) }}" class="btn btn-like" data-update data-token="{{ csrf_token('favorite' ~ pro.id) }}">
  71.                                 <i class="fas fa-heart {% if app.user.isProFavorite(pro) %}favorite{% endif %}"></i>
  72.                             </a>
  73.                             {% else %}
  74.                             <button type="button" class="btn btn-like" data-toggle="modal" data-target="#add-to-favorite">
  75.                                 <i class="fas fa-heart"></i>
  76.                             </button>
  77.                             {% endif %}
  78.                         </div>
  79.                         {# <img loading="lazy" class="pro-profile-pic" src="{{ asset('/images/profiles/' ~ avatar) }}"> #}
  80.                         <h1 class="pro-name">{{ pro.proInfo.fullname }}</h1>
  81.                         <div class="pro-review">
  82.                             {% set averageNotes = getAverageNotes(pro)%}
  83.                             {% set average = averageNotes.total %}
  84.                             {% if average != 0 %}
  85.                                 <p class="average-note">{{ average }}</p>
  86.                                 {% for i in 1..5 %}
  87.                                     {% if average >= i %}
  88.                                         <i class="fas fa-star"></i>
  89.                                     {% else %}
  90.                                         {% if average > (i - 1) %}
  91.                                             <i class="fas fa-star-half-alt"></i>
  92.                                         {% else %}
  93.                                             <i class="far fa-star"></i>                                    
  94.                                         {% endif %}
  95.                                     {% endif %}
  96.                                 {% endfor %}
  97.                             {% else %}
  98.                                 {% for i in 1..5 %}
  99.                                 
  100.                                 <i class="fas fa-star grey-star"></i>
  101.                                     
  102.                                 {% endfor %}
  103.                             {% endif %}
  104.                             <span class="pro-review-note" data-toggle="modal" data-target="#view-notes">({{ averageNotes.count }})</span>
  105.                         </div>
  106.                         {% if pro is instanceof('App\\Entity\\Coach') %}
  107.                             <div class="pro-extra-infos">
  108.                                 <i class="fas fa-circle"></i>
  109.                                 <span class="pro-extra-text">
  110.                                     Mobilité:
  111.                                     {% if pro.isMobile %}
  112.                                         {{ 'pro_page.mobile' | trans | capitalize }}
  113.                                     {% elseif not pro.isMobile %}
  114.                                         {{ 'pro_page.static' | trans | capitalize }}
  115.                                     {% endif %}
  116.                                 </span>
  117.                             </div>
  118.                         {% endif %}
  119.                         <div class="pro-extra-infos">
  120.                             <i class="fal fa-map-marker-alt"></i>
  121.                             <span class="pro-extra-text">{{ pro.address.fullAddress }}</span>
  122.                         </div>
  123.                         
  124.                         {% if pro.telephone and pro.phoneCode %}
  125.                         <div class="pro-extra-infos">
  126.                             <i class="fal fa-phone-alt"></i>
  127.                             {% set phone = pro.phoneCode ~ pro.telephone %}
  128.                             <a class="pro-extra-text" href="tel:{{ phone }}">{{ phone }}</a>
  129.                         </div>
  130.                         {% endif %}
  131.                         <div class="pro-extra-infos email">
  132.                             <i class="fal fa-envelope"></i>
  133.                             <a class="pro-extra-text" href="mailto:{{ pro.proInfo.contactEmail }}">{{ 'pro_page.send_mail' | trans }}</a>
  134.                         </div>
  135.                         {% if pro.proInfo.website %}
  136.                         <div class="pro-extra-infos">
  137.                             <i class="fal fa-desktop"></i>
  138.                             <a class="pro-extra-text" href={{ pro.proInfo.website }} target="_blank">
  139.                                 {{ 'pro_page.visit_website' | trans }}
  140.                             </a>
  141.                         </div>
  142.                         {% endif %}
  143.                         {% if pro.languages | length > 0 %}
  144.                         <div class="pro-extra-infos-2">
  145.                             <p class="extra-info-title">{{ 'pro_page.languages' | trans | capitalize }}</p>
  146.                             <span class="pro-languages">
  147.                                 {% for language in pro.languages %}
  148.                                     <img loading="lazy" src="{{ asset('/images/flag/' ~ language.slug ~ '.png') }}" alt="{{ language.name }}">
  149.                                 {% endfor %}
  150.                             </span>
  151.                         </div>
  152.                         {% endif %}
  153.                         {% if pro.proInfo.facebook or pro.proInfo.twitter or pro.proInfo.instagram or pro.proInfo.linkedin or pro.proInfo.youtube %}
  154.                         <div class="pro-extra-infos-2">
  155.                             <p class="extra-info-title">{{ 'pro_page.social_network' | trans | capitalize }}</p>
  156.                             <span class="pro-social-media">
  157.                                 {% if pro.proInfo.facebook != null %}
  158.                                     <a href="{{ pro.proInfo.facebook }}" class="social-media-item"  target="_blank">
  159.                                         <i class="fab fa-facebook-f"></i>
  160.                                     </a>
  161.                                 {% endif %}
  162.                                 {% if pro.proInfo.twitter != null %}
  163.                                     <a href="{{ pro.proInfo.twitter }}" class="social-media-item" target="_blank">
  164.                                         <i class="fab fa-x-twitter"></i>
  165.                                     </a>
  166.                                 {% endif %}
  167.                                 {% if pro.proInfo.instagram != null %}
  168.                                     <a href="{{ pro.proInfo.instagram }}" class="social-media-item" target="_blank">
  169.                                         <i class="fab fa-instagram"></i>
  170.                                     </a>
  171.                                 {% endif %}
  172.                                 {% if pro.proInfo.linkedin != null %}
  173.                                     <a href="{{ pro.proInfo.linkedin }}" class="social-media-item" target="_blank">
  174.                                         <i class="fab fa-linkedin"></i>
  175.                                     </a>
  176.                                 {% endif %}
  177.                                 {% if pro.proInfo.youtube != null %}
  178.                                     <a href="{{ pro.proInfo.youtube }}" class="social-media-item" target="_blank">
  179.                                         <i class="fab fa-youtube"></i>
  180.                                     </a>
  181.                                 {% endif %}
  182.                                 {% if pro.proInfo.twitch != null %}
  183.                                     <a href="{{ pro.proInfo.twitch }}" class="social-media-item" target="_blank">
  184.                                         <i class="fab fa-twitch"></i>
  185.                                     </a>
  186.                                 {% endif %}
  187.                                 {% if pro.proInfo.tiktok != null %}
  188.                                     <a href="{{ pro.proInfo.tiktok }}" class="social-media-item" target="_blank">
  189.                                         <i class="fab fa-tiktok"></i>
  190.                                     </a>
  191.                                 {% endif %}
  192.                             </span>
  193.                         </div>
  194.                         {% endif %}
  195.                         {% if not app.user or (app.user and not app.user.isPro) %}
  196.                         <hr>
  197.                         <button class="btn main-btn w-100" data-toggle="modal" data-target="#contact">{{ 'pro_page.contact_button' | trans | capitalize }}</button>
  198.                         {% endif %}
  199.                     </div>
  200.                 </div>
  201.                 {% if not app.user or (app.user and not app.user.isPro) %}
  202.                 {% include "front/pro/_contact-modal.html.twig" with {"pro": pro, "from": "pro"} %}
  203.                 {% endif %}
  204.                 
  205.                 <!-- Modal social media share -->
  206.                 <div class="modal fade" id="share-socials" tabindex="-1" role="dialog" aria-labelledby="share-socials" aria-hidden="true">
  207.                     <div class="modal-dialog modal modal-dialog-centered" role="document">
  208.                         <div class="modal-content">
  209.                             <div class="modal-body">
  210.                                 <div class="modal-title-wrap">
  211.                                     <h5 class="modal-title">{{ "pro_page.share_pro" | trans }}</h5>
  212.                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  213.                                         <i class="fal fa-times"></i>
  214.                                     </button>
  215.                                 </div>
  216.                                 <div class="row" id="social-networks">
  217.                                     <div class="col-3">
  218.                                     <a href="https://www.facebook.com/sharer/sharer.php?u={{ url('view_pro', {'type': type, 'slug': pro.slug}) }}" target="_blank">
  219.                                         <div class="card">
  220.                                             <div id="icon">
  221.                                                 <i class="fab fa-facebook-f"></i>
  222.                                             </div>
  223.                                         </div>
  224.                                     </a>
  225.                                     </div>
  226.                                     <div class="col-3">
  227.                                         <a href="https://twitter.com/intent/tweet?text={{ url('view_pro', {'type': type, 'slug': pro.slug}) }}" target="_blank">
  228.                                             <div class="card">
  229.                                                 <div id="icon">
  230.                                                     <i class="fab fa-x-twitter"></i>
  231.                                                 </div>
  232.                                             </div>
  233.                                         </a>
  234.                                     </div>
  235.                                     <div class="col-3">
  236.                                         <a href="https://www.linkedin.com/shareArticle?mini=true&url={{ url('view_pro', {'type': type, 'slug': pro.slug}) }}&title={{ pro.proInfo.fullname }}" target="_blank">
  237.                                             <div class="card">
  238.                                                 <div id="icon">
  239.                                                     <i class="fab fa-linkedin-in"></i>
  240.                                                 </div>
  241.                                             </div>
  242.                                         </a>
  243.                                     </div>
  244.                                     <div class="col-3">
  245.                                         <a href="https://api.whatsapp.com/send?&text={{ url('view_pro', {'type': type, 'slug': pro.slug}) }}" target="_blank">
  246.                                             <div class="card">
  247.                                                 <div id="icon">
  248.                                                     <i class="fab fa-whatsapp"></i>
  249.                                                 </div>
  250.                                             </div>
  251.                                         </a>
  252.                                     </div>
  253.                                 </div>
  254.                             </div>
  255.                         </div>
  256.                     </div>
  257.                 </div>
  258.                 
  259.                 
  260.                 <div class="public-page-content-col pro-card-col">
  261.                     
  262.                     <div class="row pro-row">
  263.                         {% if pro.proInfo.gallery | length > 0 and pro.proInfo.videos | length > 0 %}
  264.                         {% set mediaCol = 'col-lg-12 col-xl-6' %}
  265.                         {% else %}
  266.                         {% set mediaCol = 'col-lg-12' %}
  267.                         {% endif %}
  268.                         {% if pro.proInfo.gallery | length > 0 %}                    
  269.                         <div class="{{ mediaCol }} pro-col">
  270.                             <div class="pro-content-card h-100">
  271.                                 <h3 class="pro-content-card-title">{{ 'pro_page.photos' | trans | capitalize }}</h3>
  272.                                 <div class="pro-content-box media align-items-start">
  273.                                     <div class="row">
  274.                                         {% if pro.proInfo.gallery | length > 6 %}
  275.                                         <div class="col-12 text-center p-0">
  276.                                             <a data-target="#all-photos" class="all-media mb-2" data-toggle="modal">{{ 'pro_page.all_photos' | trans }}</a>
  277.                                         </div>
  278.                                         {% endif %}
  279.                                         <div class="col-12 p-0">
  280.                                             <div class="row public-photos">
  281.                                             {% for photo in pro.proInfo.gallery | reverse | slice(0, 7) %}
  282.                                                 {% if loop.index <= 6 %}
  283.                                                 
  284.                                                 <div class="img-col col-6 col-sm-4 col-lg-4">
  285.                                                     <div class="photo-item">
  286.                                                         <img loading="lazy" data-target="#all-photos" data-toggle="modal" src="{{ asset('/images/gallery/' ~ photo.name) }}" alt="{{ photo.name }}">
  287.                                                         {% if pro.proInfo.gallery | length > 6 and loop.index == 6 %}
  288.                                                             {% set galleryRest = pro.proInfo.gallery | length - 6 %}
  289.                                                             <div class="more-photos" data-target="#all-photos" data-toggle="modal">
  290.                                                                 <span>+
  291.                                                                     {{ galleryRest }}</span>
  292.                                                             </div>
  293.                                                         {% endif %}
  294.                                                     </div>
  295.                                                 </div>
  296.                                                 {% endif %}
  297.                                             {% endfor %}
  298.                                             </div>
  299.                                         </div>
  300.                                     </div>
  301.                                 </div>
  302.                                 <!-- Modal see all photos -->
  303.                                 <div class="modal fade bd-example-modal-xl" id="all-photos" tabindex="-1" role="dialog" aria-labelledby="all-photos" aria-hidden="true">
  304.                                     <div class="modal-dialog modal-xl modal-dialog-centered" role="document">
  305.                                         <div class="modal-content">
  306.                                             <div class="modal-body">
  307.                                                 <div class="modal-title-wrap">
  308.                                                     <h5 class="modal-title">{{ 'pro_page.all_photos' | trans }}</h5>
  309.                                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  310.                                                         <i class="fal fa-times"></i>
  311.                                                     </button>
  312.                                                 </div>
  313.                                                 <div class="row public-photos">
  314.                                                     {% for photo in pro.proInfo.gallery | reverse %}
  315.                                                         <div class="img-col col-6 col-sm-6 col-md-4 col-xl-3">
  316.                                                             <div class="photo-item">
  317.                                                                 <a data-fslightbox href="{{ asset('/images/gallery/' ~ photo.name) }}">
  318.                                                                     <img loading="lazy" src="{{ asset('/images/gallery/' ~ photo.name) }}" alt="image">
  319.                                                                 </a>
  320.                                                             </div>
  321.                                                         </div>
  322.                                                     {% endfor %}
  323.                                                 </div>
  324.                                             </div>
  325.                                         </div>
  326.                                     </div>
  327.                                 </div>
  328.                             </div>
  329.                         </div>
  330.                         {% endif %}
  331.                         {% if pro.proInfo.videos | length > 0 %}
  332.                         {% if pro.proInfo.gallery | length > 0 %}
  333.                         
  334.                         {% set videoItemCol = 'col-12 col-sm-6 col-md-6 col-lg-6' %}
  335.                         {% else %}
  336.                             
  337.                         {% set videoItemCol = 'col-12 col-sm-6 col-md-6 col-lg-3' %}
  338.                         {% endif %}
  339.                         <div class="{{ mediaCol }} pro-col">
  340.                             <div class="pro-content-card h-100">
  341.                                 <h3 class="pro-content-card-title">{{ 'pro_page.videos' | trans | capitalize }}</h3>
  342.                                 <div class="pro-content-box media align-items-start">
  343.                                     {% if pro.proInfo.videos | length > 0 %}
  344.                                         <div class="row">
  345.                                             {% if pro.proInfo.videos | length > 4 %}
  346.                                             
  347.                                             <div class="col-12 text-center">
  348.                                                 <a data-target="#all-videos" class="all-media" data-toggle="modal" class="col-12 text-center">{{ 'pro_page.all_videos' | trans }}</a>
  349.                                             </div>
  350.                                             {% endif %}
  351.                                             {% for video in pro.proInfo.videos | reverse | slice(0, 4) %}
  352.                                                 <div class="video-col {{ videoItemCol }}">
  353.                                                     <div class="video-thumbnail">
  354.                                                     {% if video.type == 'youtube' %}
  355.                                                         <img loading="lazy" src="http://i1.ytimg.com/vi/{{ video.videoId }}/mqdefault.jpg" alt=" {{ video.videoId }}">
  356.                                                     {% else %}
  357.                                                         <img loading="lazy" srcset="https://vumbnail.com/{{ video.videoId }}.jpg 640w" alt="{{ video.videoId }}" />
  358.                                                     {% endif %}
  359.                                                     
  360.                                                     <button class="play" data-toggle="modal" data-target="#watch-video-{{ video.id }}">
  361.                                                         <i class="fal fa-play-circle"></i>
  362.                                                     </button>
  363.                                                     {% if pro.proInfo.videos | length > 4 and loop.last %}
  364.                                                         {% set videoRest = pro.proInfo.videos | length - 4 %}
  365.                                                         <div class="more-photos" data-target="#all-videos" data-toggle="modal">
  366.                                                             <span>+
  367.                                                                 {{ videoRest }}</span>
  368.                                                         </div>
  369.                                                     {% endif %}
  370.                                                     </div>
  371.                                                 </div>
  372.                                             {% endfor %}
  373.                                         </div>
  374.                                     {% else %}
  375.                                         <p class="empty-media">0
  376.                                             {{ 'pro_page.video' | trans | capitalize }}</p>
  377.                                     {% endif %}
  378.                                 </div>
  379.                                 <!-- Modal see all video -->
  380.                                 <div class="modal fade bd-example-modal-xl" id="all-videos" tabindex="-1" role="dialog" aria-labelledby="all-videos" aria-hidden="true">
  381.                                     <div class="modal-dialog modal-xl modal-dialog-centered" role="document">
  382.                                         <div class="modal-content">
  383.                                             <div class="modal-body">
  384.                                                 <div class="modal-title-wrap">
  385.                                                     <h5 class="modal-title">{{ 'pro_page.all_videos' | trans }}</h5>
  386.                                                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  387.                                                         <i class="fal fa-times"></i>
  388.                                                     </button>
  389.                                                 </div>
  390.                                                 <div class="row">
  391.                                                     {% for video in pro.proInfo.videos | reverse %}
  392.                                                         <div class="video-col col-12 col-sm-6 col-md-4 col-xl-3">
  393.                                                             <div class="video-thumbnail">
  394.                                                                 {% if video.type == 'youtube' %}
  395.                                                                     <img loading="lazy" src="http://i1.ytimg.com/vi/{{ video.videoId }}/mqdefault.jpg" alt=" {{ video.videoId }}">
  396.                                                                 {% else %}
  397.                                                                     <img loading="lazy" srcset="https://vumbnail.com/{{ video.videoId }}.jpg 640w" alt="{{ video.videoId }}" />
  398.                                                                 {% endif %}
  399.                                                                 <button class="play" data-toggle="modal" data-target="#watch-video-{{ video.id }}">
  400.                                                                     <i class="fal fa-play-circle"></i>
  401.                                                                 </button>
  402.                                                             </div>
  403.                                                         </div>
  404.                                                     {% endfor %}
  405.                                                 </div>
  406.                                             </div>
  407.                                         </div>
  408.                                     </div>
  409.                                 </div>
  410.                             </div>
  411.                         </div>
  412.                         {% endif %}
  413.                         {% for video in pro.proInfo.videos %}
  414.                             <!-- Modal watch video -->
  415.                             <div class="modal fade watch-video-modal" id="watch-video-{{ video.id }}" tabindex="-1" role="dialog" aria-labelledby="video" aria-hidden="true">
  416.                                 <div class="modal-dialog modal-lg modal-dialog-centered" role="document">
  417.                                     <div class="modal-content">
  418.                                         <div class="modal-body">
  419.                                             <div class="modal-title-wrap">
  420.                                                 <h5 class="modal-title">{{ 'pro_page.watch_video' | trans }}</h5>
  421.                                                 <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  422.                                                     <i class="fal fa-times"></i>
  423.                                                 </button>
  424.                                             </div>
  425.                                             <div class="row">
  426.                                                 {% if video.type == 'youtube' %}
  427.                                                     <iframe class="yt_player_iframe" width="640" height="360"  id="watched-video" frameborder="0" allowfullscreen src="https://www.youtube.com/embed/{{ video.videoId }}"></iframe>
  428.                                                 {% else %}
  429.                                                     <iframe class="vi_player_iframe" width="640" height="360"  id="watched-video" frameborder="0" allowfullscreen src="https://player.vimeo.com/video/{{ video.videoId }}"></iframe>
  430.                                                 {% endif %}
  431.                                             </div>
  432.                                         </div>
  433.                                     </div>
  434.                                 </div>
  435.                             </div>
  436.                         {% endfor %}
  437.                     </div>
  438.                     {% if pro is instanceof('App\\Entity\\Coach') %}
  439.                         {% if proDescription.description != null %}
  440.                         <div class="row pro-row">
  441.                             <div class="col-lg-12 pro-col">
  442.                                 <div class="pro-content-card">
  443.                                     <h3 class="pro-content-card-title">{{ 'pro_page.about_me' | trans }}</h3>
  444.                                     <div class="pro-content-box description">
  445.                                         <p class="description-text">
  446.                                             {{ proDescription.description |nl2br }}
  447.                                         </p>
  448.                                     </div>
  449.                                 </div>
  450.                             </div>
  451.                         </div>
  452.                         {% endif %}
  453.                         <div class="row pro-row">
  454.                             <div class="col-lg-6 pro-col">
  455.                                 <div class="pro-content-card">
  456.                                     <h3 class="pro-content-card-title">{{ 'pro_page.sports' | trans | capitalize }}</h3>
  457.                                     <div class="pro-content-box sports">
  458.                                         {% for sport in pro.proInfo.sports %}
  459.                                             <span class="coach-sport-item">{{ ("sport_name." ~ sport.slug) | trans }}</span>
  460.                                         {% endfor %}
  461.                                         {% for sport in sports %}
  462.                                             {% if sport not in pro.proInfo.sports %}
  463.                                                 <span class="coach-sport-item not-sport-item">{{ ("sport_name." ~ sport.slug) | trans }}</span>
  464.                                             {% endif %}
  465.                                         {% endfor %}
  466.                                     </div>
  467.                                 </div>
  468.                             </div>
  469.                             <div class="col-lg-6 pro-col">
  470.                                 <div class="pro-content-card">
  471.                                     <h3 class="pro-content-card-title">{{ 'pro_page.areas' | trans | capitalize }}</h3>
  472.                                     <div class="pro-content-box areas">
  473.                                         {% for key, splittedArea in splittedAreas %}
  474.                                         <div class="area-wrap">
  475.                                             <div class="title-wrap">
  476.                                                 <h5 class="title">{{ key | countryName(app.request.locale) }}</h5>
  477.                                             </div>
  478.                                             {% for area in splittedArea %}
  479.                                             
  480.                                             {% if area.city == null and splittedArea | length == 1 %}
  481.                                             
  482.                                             <div class="area-item">
  483.                                                 <i class="fal fa-map-marker-alt"></i>
  484.                                                 <span class="city">{{ 'pro_page.area_country' | trans }}</span>
  485.                                             </div>
  486.                                             {% else %}
  487.                                                 
  488.                                             <div class="area-item">
  489.                                                 <i class="fal fa-map-marker-alt"></i>
  490.                                                 <span class="city">{{ area.city }}</span>
  491.                                             </div>
  492.                                             {% endif %}
  493.                                             {% endfor %}
  494.                                         </div>
  495.                                         {% endfor %}
  496.                                     </div>
  497.                                 </div>
  498.                             </div>
  499.                         </div>
  500.                         {% if pro.coachInfo.experience | length > 0 or pro.coachInfo.formation | length > 0 %}
  501.                         <div class="row pro-row">
  502.                             <div class="col-lg-12 pro-col">
  503.                                 <div class="pro-content-card">
  504.                                     <h3 class="pro-content-card-title">{{ 'pro_page.experience_formation' | trans | capitalize }}
  505.                                     </h3>
  506.                                     <div class="pro-content-box formation-experience align-items-start">
  507.                                         <div class="pro-experiences">
  508.                                             {% for experience in pro.coachInfo.experience %}
  509.                                                 <div class="experience-item">
  510.                                                     <h4 class="experience-job">{{ experience.jobTitle }}</h4>
  511.                                                     <span class="experience-domain">{{ experience.sector }}</span>
  512.                                                     <span class="experience-address">
  513.                                                         <i class="fal fa-map-marker-alt"></i>
  514.                                                         {{ experience.address }}
  515.                                                     </span>
  516.                                                     <span class="experience-period">
  517.                                                         <i class="far fa-calendar-alt"></i>
  518.                                                         {{ experience.begin }}
  519.                                                         -
  520.                                                         {{ experience.end }}
  521.                                                     </span>
  522.                                                     <p class="expererience-description">
  523.                                                         {{ experience.description |nl2br }}
  524.                                                     </p>
  525.                                                 </div>
  526.                                             {% endfor %}
  527.                                         </div>
  528.                                         <div class="pro-formations mt-3">
  529.                                             {% for formation in pro.coachInfo.formation %}
  530.                                                 <div class="formation-item">
  531.                                                     <h4 class="formation-organism">{{ formation.organisation }}</h4>
  532.                                                     <span class="formation-diploma">{{ formation.diploma }}</span>
  533.                                                     <span class="formation-period">{{ formation.begin }}
  534.                                                         -
  535.                                                         {{ formation.end }}</span>
  536.                                                 </div>
  537.                                             {% endfor %}
  538.                                         </div>
  539.                                     </div>
  540.                                 </div>
  541.                             </div>
  542.                         </div>
  543.                     {% endif %}
  544.                     {% elseif pro is instanceof('App\\Entity\\Operator') and proDescription.description != null %}
  545.                         <div class="row pro-row">
  546.                             <div class="col-lg-12 pro-col">
  547.                                 <div class="pro-content-card">
  548.                                     <h3 class="pro-content-card-title">{{ 'pro_page.about_us' | trans }}</h3>
  549.                                     <div class="pro-content-box description">
  550.                                         <p class="description-text">
  551.                                             {{ proDescription.description |nl2br }}
  552.                                         </p>
  553.                                     </div>
  554.                                 </div>
  555.                             </div>
  556.                         </div>
  557.                         <div class="row pro-row">
  558.                             <div class="col-lg-6 pro-col">
  559.                                 <div class="pro-content-card">
  560.                                     <h3 class="pro-content-card-title">{{ 'pro_page.sports' | trans | capitalize }}</h3>
  561.                                     <div class="pro-content-box sports">
  562.                                         {% for sport in pro.proInfo.sports %}
  563.                                             <span class="coach-sport-item">{{ ("sport_name." ~ sport.slug) | trans }}</span>
  564.                                         {% endfor %}
  565.                                         {% for sport in sports %}
  566.                                             {% if sport not in pro.proInfo.sports %}
  567.                                                 <span class="coach-sport-item not-sport-item">{{ ("sport_name." ~ sport.slug) | trans }}</span>
  568.                                             {% endif %}
  569.                                         {% endfor %}
  570.                                     </div>
  571.                                 </div>
  572.                             </div>
  573.                             <div class="col-lg-6 pro-col">
  574.                                 <div class="pro-content-card">
  575.                                     <h3 class="pro-content-card-title">{{ 'pro_page.areas' | trans | capitalize }}</h3>
  576.                                     <div class="pro-content-box areas">
  577.                                         {% for key, splittedArea in splittedAreas %}
  578.                                         <div class="area-wrap">
  579.                                             <div class="title-wrap">
  580.                                                 <h5 class="title">{{ key | countryName(app.request.locale) }}</h5>
  581.                                             </div>
  582.                                             {% for area in splittedArea %}
  583.                                             
  584.                                             {% if area.city == null and splittedArea | length == 1 %}
  585.                                             
  586.                                             <div class="area-item">
  587.                                                 <i class="fal fa-map-marker-alt"></i>
  588.                                                 <span class="city">{{ 'pro_page.area_country' | trans }}</span>
  589.                                             </div>
  590.                                             {% else %}
  591.                                                 
  592.                                             <div class="area-item">
  593.                                                 <i class="fal fa-map-marker-alt"></i>
  594.                                                 <span class="city">{{ area.city }}</span>
  595.                                             </div>
  596.                                             {% endif %}
  597.                                             {% endfor %}
  598.                                         </div>
  599.                                         {% endfor %}
  600.                                     </div>
  601.                                 </div>
  602.                             </div>
  603.                         </div>
  604.                     {% elseif pro is instanceof('App\\Entity\\Club')  %}
  605.                         {% if proDescription.description != null %}
  606.                             <div class="row pro-row">
  607.                                 <div class="col-lg-12 pro-col">
  608.                                     <div class="pro-content-card">
  609.                                         <h3 class="pro-content-card-title">{{ 'pro_page.about_us' | trans }}</h3>
  610.                                         <div class="pro-content-box description">
  611.                                             <p class="description-text">
  612.                                                 {{ proDescription.description |nl2br }}
  613.                                             </p>
  614.                                         </div>
  615.                                     </div>
  616.                                 </div>
  617.                             </div>
  618.                         {% endif %}
  619.                         <div class="row pro-row">
  620.                             <div class="col-lg-12 pro-col">
  621.                                 <div class="pro-content-card">
  622.                                     <h3 class="pro-content-card-title">{{ 'pro_page.availabilities' | trans | capitalize }}</h3>
  623.                                     
  624.                                     <div class="pro-content-box sport-availabilities">
  625.                                         <div class="availability-header">
  626.                                             <span class="sport"></span>
  627.                                             <div class="month-list">
  628.                                                 <span class="month">{{ "short_month.january" | trans }}</span>
  629.                                                 <span class="month">{{ "short_month.february" | trans }}</span>
  630.                                                 <span class="month">{{ "short_month.march" | trans }}</span>
  631.                                                 <span class="month">{{ "short_month.april" | trans }}</span>
  632.                                                 <span class="month">{{ "short_month.may" | trans }}</span>
  633.                                                 <span class="month">{{ "short_month.june" | trans }}</span>
  634.                                                 <span class="month">{{ "short_month.july" | trans }}</span>
  635.                                                 <span class="month">{{ "short_month.august" | trans }}</span>
  636.                                                 <span class="month">{{ "short_month.september" | trans }}</span>
  637.                                                 <span class="month">{{ "short_month.october" | trans }}</span>
  638.                                                 <span class="month">{{ "short_month.november" | trans }}</span>
  639.                                                 <span class="month">{{ "short_month.december" | trans }}</span>
  640.                                             </div>
  641.                                         </div>
  642.                                         {% for availability in pro.availabilities %}
  643.                                         <div class="availability-content">
  644.                                             <span class="pro-sport-item">{{ ("sport_name." ~ availability.sport.slug) | trans }}</span>
  645.                                             <div class="availability-list">
  646.                                                 {% for month in months %}
  647.                                                 <span class="item">
  648.                                                     {% if month in availability.availabilities | join(', ')  %}
  649.                                                     
  650.                                                         <i class="fas fa-check"></i>
  651.                                                     {% else %}
  652.                                                         <i class="fas fa-times"></i>
  653.                                                     {% endif %}
  654.                                                 </span>
  655.                                                 {% endfor %}
  656.                                                 
  657.                                             </div>
  658.                                         </div>
  659.                                         {% endfor %}
  660.                                     </div>
  661.                                         
  662.                                 </div>
  663.                             </div>
  664.                         </div>
  665.                     {% endif %}
  666.                     {% if pro.proInfo.sponsors | length != 0 %}
  667.                         <div class="row pro-row">
  668.                             <div class="col-lg-12 pro-col">
  669.                                 <div class="pro-content-card">
  670.                                     <h3 class="pro-content-card-title">{{ 'pro_page.sponsors' | trans | capitalize }}
  671.                                     </h3>
  672.                                     <div class="pro-content-box sponsor">
  673.                                         <div class="pro-sponsor-slider">
  674.                                             {% for sponsor in pro.proInfo.sponsors %}
  675.                                                 <div class="pro-sponsor-item">
  676.                                                     <div class="pro-sponsor-img">
  677.                                                         <img loading="lazy" src="{{ asset('/images/partners/' ~ sponsor.logo) }}" alt="{{ sponsor.name }}">
  678.                                                     </div>
  679.                                                     <span class="pro-sponsor-name">{{ sponsor.name }}</span>
  680.                                                 </div>
  681.                                             {% endfor %}
  682.                                         </div>
  683.                                     </div>
  684.                                 </div>
  685.                             </div>
  686.                         </div>
  687.                     {% endif %}
  688.                     {% if pro is instanceof('App\\Entity\\Operator') %}
  689.                         {% if pro.proInfo.labels | length != 0 %}
  690.                             <div class="row pro-row">
  691.                                 <div class="col-lg-12 pro-col">
  692.                                     <div class="pro-content-card">
  693.                                         <h3 class="pro-content-card-title">{{ 'pro_page.labels' | trans | capitalize }}
  694.                                         </h3>
  695.                                         <div class="pro-content-box label">
  696.                                             <div class="pro-label-slider">
  697.                                                 {% for label in pro.proInfo.labels %}
  698.                                                     <div class="pro-label-item">
  699.                                                         <div class="pro-label-img">
  700.                                                             <img loading="lazy" src="{{ asset('/images/labels/' ~ label.logo) }}" alt="{{ label.name }}">
  701.                                                         </div>
  702.                                                         <span class="pro-label-name">{{ label.name }}</span>
  703.                                                     </div>
  704.                                                 {% endfor %}
  705.                                             </div>
  706.                                         </div>
  707.                                     </div>
  708.                                 </div>
  709.                             </div>
  710.                         {% endif %}
  711.                     {% endif %}
  712.                     {% if pro is instanceof('App\\Entity\\Club') %}
  713.                         <div class="row pro-row">
  714.                             <div class="col-lg-12 pro-col">
  715.                                 <div class="pro-content-card">
  716.                                     
  717.                                     {% if pro.clubInfo.insurance or pro.clubInfo.swimmingpool or pro.clubInfo.gym or pro.clubInfo.seminarRoom or pro.clubInfo.restaurant or pro.clubInfo.bar %}
  718.                                     <h3 class="pro-content-card-title">{{ 'pro_page.about_club' | trans }}</h3>
  719.                                     
  720.                                     <div class="club-infrastructures">
  721.                                         {% if pro.clubInfo.insurance %}
  722.                                             <div class="infrastructure-item">
  723.                                                 <img loading="lazy" src="{{ asset('/images/icons/assurance.svg') }}">
  724.                                                 <span class="infrastructure-text">{{ "pro_page.insurance" | trans }}</span>
  725.                                             </div>
  726.                                         {% endif %}
  727.                                         {% if pro.clubInfo.swimmingpool %}
  728.                                             <div class="infrastructure-item">
  729.                                                 <img loading="lazy" src="{{ asset('/images/icons/piscine.svg') }}">
  730.                                                 <span class="infrastructure-text">{{ "pro_page.swimmingpool" | trans }}</span>
  731.                                             </div>
  732.                                         {% endif %}
  733.                                         {% if pro.clubInfo.gym %}
  734.                                             <div class="infrastructure-item">
  735.                                                 <img loading="lazy" src="{{ asset('/images/icons/training.svg') }}">
  736.                                                 <span class="infrastructure-text">{{ "pro_page.gym" | trans }}</span>
  737.                                             </div>
  738.                                         {% endif %}
  739.                                         {% if pro.clubInfo.seminarRoom %}
  740.                                             <div class="infrastructure-item">
  741.                                                 <img loading="lazy" src="{{ asset('/images/icons/seminar-room.svg') }}">
  742.                                                 <span class="infrastructure-text">{{ "pro_page.seminar" | trans }}</span>
  743.                                             </div>
  744.                                         {% endif %}
  745.                                         {% if pro.clubInfo.restaurant %}
  746.                                             <div class="infrastructure-item">
  747.                                                 <img loading="lazy" src="{{ asset('/images/icons/restaurant.svg')}}">
  748.                                                 <span class="infrastructure-text">{{ "pro_page.restaurant" | trans }}</span>
  749.                                             </div>
  750.                                         {% endif %}
  751.                                         {% if pro.clubInfo.bar %}
  752.                                             <div class="infrastructure-item">
  753.                                                 <img loading="lazy" src="{{ asset('/images/icons/bar.svg') }}">
  754.                                                 <span class="infrastructure-text">{{ "pro_page.bar" | trans }}</span>
  755.                                             </div>
  756.                                         {% endif %}
  757.                                     </div>
  758.                                     {% endif %}
  759.                                     <h3 class="pro-content-card-title mt-3">{{ "page_course_detail.fields_tables" | trans }}</h3>
  760.                                     <div class="club-infrastructures terrains">
  761.                                     
  762.                                         {% for court in pro.clubInfo.courtInfos %}
  763.                                             {% if court.nbOpen > 0 or court.nbSemiOpen > 0 or court.nbCovered > 0 %}
  764.                                             <div class="infrastructure-item">
  765.                                                 <img loading="lazy" src="{{ asset('/images/icons/' ~ court.sport.icon ) }}">
  766.                                                 <span class="infrastructure-text">
  767.                                                     {{ ("sport_name." ~ court.sport.slug) | trans }}</span>
  768.                                                 <div class="terrains-count">
  769.                                                     {% if court.nbOpen > 0 %}
  770.                                                     <h5 class="count">
  771.                                                         <span>{{court.nbOpen}}</span>
  772.                                                         {{ "page_course_detail.outdoor" | trans }}
  773.                                                     </h5>
  774.                                                     {% endif %}
  775.                                                     {% if court.nbSemiOpen > 0 %}
  776.                                                     <h5 class="count">
  777.                                                         <span>{{court.nbSemiOpen}}</span>
  778.                                                         {{ "page_course_detail.semi_indoor" | trans }}
  779.                                                     </h5>
  780.                                                     {% endif %}
  781.                                                     {% if court.nbCovered > 0 %}
  782.                                                     <h5 class="count">
  783.                                                         <span>{{court.nbCovered}}</span>
  784.                                                         {{ "page_course_detail.indoor" | trans }}
  785.                                                     </h5>
  786.                                                     {% endif %}
  787.                                                     
  788.                                                 </div>
  789.                                             </div>
  790.                                             {% endif %}
  791.                                         {% endfor %}
  792.                                     </div>
  793.                                 </div>
  794.                             </div>
  795.                         </div>
  796.                     {% endif %}
  797.                     {% if courses | length > 0 %}
  798.                         <div class="row pro-courses-row pro-row">
  799.                             <div class="col-lg-12 pro-col">
  800.                                 <div class="main-title mb-5">
  801.                                     <h1 class="title-text">{{ "pro_page.courses_offered" | trans }}</h1>
  802.                                 </div>
  803.                                 <div class="pro-courses-grid">
  804.                                     {% for course in courses %}
  805.                                         {% if course | nextdate(startingDate).begin != null %}
  806.                                             
  807.                                                 {% include "front/course/_course-card.html.twig" %}
  808.                                             
  809.                                         {% endif %}
  810.                                     {% endfor %}
  811.                                 </div>
  812.                             </div>
  813.                         </div>
  814.                     {% endif %}
  815.                     {% if partnershipCourses | length > 0 %}
  816.                         <div class="row pro-courses-row pro-row">
  817.                             <div class="col-lg-12 pro-col">
  818.                                 <div class="main-title mb-5">
  819.                                     <h1 class="title-text">Stages partenaires</h1>
  820.                                 </div>
  821.                                 <div class="pro-courses-grid">
  822.                                     {% for course in partnershipCourses %}
  823.                                         {% if course | nextdate(startingDate).begin != null %}
  824.                                             
  825.                                                 {% include "front/course/_course-card.html.twig" %}
  826.                                             
  827.                                         {% endif %}
  828.                                     {% endfor %}
  829.                                 </div>
  830.                             </div>
  831.                         </div>
  832.                     {% endif %}
  833.                     {% if pro is instanceof('App\\Entity\\Coach') or pro is instanceof('App\\Entity\\Operator') %}
  834.                         {% if clubPartners | length > 0 %}
  835.                             <div class="row pro-row">
  836.                                 <div class="col-lg-12 pro-col">
  837.                                     <div class="main-title mb-5">
  838.                                         <h1 class="title-text">{{ "pro_partner_page.partners_clubs" | trans }}</h1>
  839.                                     </div>
  840.                                     <div class="row partners-wrapper club-partners">
  841.                                         {% for pro in clubPartners %}
  842.                                             {% if pro.owner %}
  843.                                                 {% include "front/pro/_pro-card.html.twig" with {'pro': pro.owner} %}
  844.                                             {% endif %}
  845.                                         {% endfor %}
  846.                                     </div>
  847.                                 </div>
  848.                             </div>
  849.                         {% endif %}
  850.                     {% endif %}
  851.                     {% if pro is instanceof('App\\Entity\\Club') or pro is instanceof('App\\Entity\\Operator') %}
  852.                         {% if coachPartners | length > 0 %}
  853.                             <div class="row pro-row">
  854.                                 <div class="col-lg-12 pro-col">
  855.                                     <div class="main-title mb-5">
  856.                                         <h1 class="title-text">{{ "pro_partner_page.partners_coachs" | trans }}</h1>
  857.                                     </div>
  858.                                     <div class="row partners-wrapper coach-partners">
  859.                                         {% for pro in coachPartners %}
  860.                                             {% if pro.owner %}
  861.                                                 {% include "front/pro/_pro-card.html.twig" with {'pro': pro.owner} %}
  862.                                             {% endif %}
  863.                                         {% endfor %}
  864.                                     </div>
  865.                                 </div>
  866.                             </div>
  867.                         {% endif %}
  868.                     {% endif %}
  869.                 </div>
  870.             </div>
  871.         </div>
  872.         {% include "front/pro/_pro-review.html.twig" with {"pro": pro} %}
  873.     </section>
  874.     {% if inactive %}
  875.         {% if app.user == pro %}
  876.             <div id="inactive-pro">
  877.                 <h2>{{ "pro_page.self_inactive" | trans }}</h2>
  878.                 <a class="btn btn-get-subscription" href="{{ path('select_subscription') }}">{{ "pro_subscription.select_subscription" | trans }}</a>
  879.             </div>
  880.         {% else %}
  881.             <div id="inactive-pro"><h2>{{ pro.proInfo.fullname | capitalize }} {{ "pro_page.inactive" | trans }}</h2></div>
  882.         {% endif %}
  883.     {% endif %}
  884. {% endblock %}
  885. {% block javascript %}
  886.     {% if inactive %}
  887.     <script>
  888.         const header = $('header')
  889.         $(function () {
  890.             header.css('background-color', '#fff');
  891.             header.css('box-shadow', '4px 4px 12px rgb(164 160 160 / 25%)');
  892.         })
  893.     </script>
  894.     {% endif %}
  895.     
  896.     {{ parent() }}
  897.     {{ encore_entry_script_tags('pro-public') }}
  898.     {{ encore_entry_script_tags('search') }}
  899. {% endblock %}