templates/Public/annuaire.html.twig line 1

Open in your IDE?
  1. {% extends 'layout.html.twig' %}
  2. {% block title %}Diagnostic immobilier & Expertise énergétique - Annuaire{% if option('default_page_suffix') %} {{ option('default_page_suffix')|e('html') }}{% endif %}{% endblock %}
  3. {% block description %}Liste des professionnels inscrits : diagnostiqueurs immobiliers, experts en efficacité énergétique du bâtiment.{% endblock %}
  4. {% block breadcrumb %}
  5. <div id="breadcrumb">
  6. <div class="container">
  7. <div class="row">
  8. <ul class="col-sm-12">
  9. <li><a href="{{ path('public_index') }}">Accueil</a></li>
  10. <li class="current">Annuaire des prestataires</li>
  11. </ul>
  12. </div>
  13. </div>
  14. </div>
  15. <div style="height: 0px;overflow: hidden;">
  16. <ol itemscope itemtype="http://schema.org/BreadcrumbList">
  17. <li itemprop="itemListElement" itemscope
  18. itemtype="http://schema.org/ListItem">
  19. <a itemscope itemtype="http://schema.org/Thing"
  20. itemprop="item" href="{{ app.request.uri }}" itemid="annuaire-presta">
  21. <span itemprop="name">Annuaire des prestataires</span>
  22. </a>
  23. <meta itemprop="position" content="1" />
  24. </li>
  25. </ol>
  26. </div>
  27. {% endblock %}
  28. {% block content %}
  29. <div class="page container">
  30. <div class="row">
  31. <div class="title col-sm-12">
  32. <h1>Annuaire des prestataires</h1>
  33. </div>
  34. </div>
  35. </div>
  36. <div id="search-form" class="page">
  37. <div class="container">
  38. <div class="annuaire-form row">
  39. {% form_theme form 'Form/exacompare.html.twig' %}
  40. {{ form_start(form, {'attr': {'class': 'annuaire-form form'}}) }}
  41. {{ form_row(form.cat, {'row_class': 'col-sm-4'}) }}
  42. {{ form_row(form.dept, {'row_class': 'col-sm-4'}) }}
  43. {{ form_row(form.keywords, {'row_class': 'col-sm-4'}) }}
  44. {{ form_end(form) }}
  45. </div>
  46. </div>
  47. </div>
  48. <div id="annuaire" class="page container">
  49. <div class="row">
  50. {{ knp_pagination_render(data, 'Partial/pagination.html.twig') }}
  51. {% if not data is empty %}
  52. <ul class="annuaire-list col-sm-12">
  53. {% for p in data %}
  54. <li class="prestataire-item row">
  55. <div class="prestataire-logo col-sm-3">
  56. {% if p.logoPath %}
  57. <a href="{{ entity_url(p) }}" style="background-image: url('{{ asset(prestataire_files_path ~ '/' ~ p.logoPath) }}');"></a>
  58. {% endif %}
  59. </div>
  60. <div class="prestataire-info col-sm-9">
  61. <a href="{{ entity_url(p) }}" class="prestataire-link">
  62. {{ p.entreprise }}
  63. </a>
  64. {% if categories and categories[p.id] is defined and categories[p.id] is not empty %}
  65. <div class="prestataire-category">
  66. <span class="label category"></span>
  67. <span class="value">
  68. {% for index, categorie in categories[p.id] %}
  69. {% if index > 0 %} – {% endif %}
  70. {#<a href="{{ path('public_prestataires', {'cid': categorie.id}) }}">#}
  71. {{ categorie.nom }}
  72. {#</a>#}
  73. {% endfor %}
  74. </span>
  75. </div>
  76. {% endif %}
  77. <div class="prestataire-address">
  78. <span class="label address"></span>
  79. <span class="value">{{ p.adresse }}, {{ p.codePostal }} {{ p.ville }}</span>
  80. </div>
  81. <div class="prestataire-phone">
  82. <span class="label phone"></span>
  83. <span class="value">{{ p.telephone }}</span>
  84. </div>
  85. <a href="{{ entity_url(p) }}" class="prestataire-fiche more">
  86. Voir la fiche
  87. </a>
  88. </div>
  89. </li>
  90. {% endfor %}
  91. </ul>
  92. {% else %}
  93. <div class="empty-result">
  94. {% import _self as macros %}
  95. {{ macros.search_criteria(form) }}
  96. </div>
  97. {% endif %}
  98. {{ knp_pagination_render(data, 'Partial/pagination.html.twig') }}
  99. </div>
  100. </div>
  101. {% endblock %}
  102. {% macro search_criteria(form) %}
  103. {% set criteria = criteria(form, 'public_prestataires') %}
  104. {% if criteria %}
  105. <p>Aucun résultat pour votre recherche :</p>
  106. <ul class="search-criteria">
  107. {% for item in criteria %}
  108. <li class="search-criteria-item">
  109. <span>{{ item.label }} :</span>
  110. <span class="value">
  111. {{ item.value }}
  112. </span>
  113. <span class="drop">
  114. <a href="javascript:void(0);" onclick="removeURLParameter('{{ item.url }}', '{{ item.label }}')" class="search-criteria-item-drop">supprimer</a>
  115. </span>
  116. </li>
  117. {% endfor %}
  118. </ul>
  119. <script>
  120. function removeURLParameter(url, parameterName) {
  121. // Créer un objet URL à partir de la chaîne d'URL
  122. const host = new URL(window.location)
  123. var urlObj = new URL(host.origin + url);
  124. if (parameterName === 'Recherche par mot-clé ou code postal') {
  125. var test = urlObj.toString().replace('annuaire%5Bkeywords%5D=', '')
  126. } else if (parameterName === 'Catégorie') {
  127. var test = urlObj.toString().replace('annuaire%5Bcat%5D=', '')
  128. } else if (parameterName === 'Lieu') {
  129. var test = urlObj.toString().replace('annuaire%5Bdept%5D=', '')
  130. }
  131. console.log(test);
  132. // Retourner l'URL mise à jour
  133. window.location.href = test;
  134. }
  135. </script>
  136. <p class="annuaire_not_result">Vous pouvez tenter d'assouplir votre recherche en supprimant des critères.</p>
  137. {% else %}
  138. <p class="empty">Aucun prestataire.</p>
  139. {% endif %}
  140. {% endmacro %}