templates/front-cursos/listado.html.twig line 1

Open in your IDE?
  1. {% extends 'layout-front.html.twig' %}
  2. {% trans_default_domain 'app' %}
  3. {% set titulo = 'Mostrando todos los cursos' %}
  4. {% set tituloPag = 'Cursos' %}
  5. {% set descripcionPag = 'Consulta nuestra selección de cursos' %}
  6. {# Si la url tiene la categoría y subcategoría cogemos sus seotags #}
  7. {% if localidad %}
  8. {% set seoTitleText = '' %}
  9. {% set seoDescriptionText = '' %}
  10. {% set seoKeywordsText = '' %}
  11. {% if localidad.seoTitle %}
  12. {% set seoTitleText = seoTitleText ~ ' ' ~ localidad.seoTitle %}
  13. {% else %}
  14. {% set seoTitleText = seoTitleText ~ ' ' ~ localidad.nombre %}
  15. {% endif %}
  16. {% if localidad.seoDescription %}
  17. {% set seoDescriptionText = seoDescriptionText ~ ' ' ~ localidad.seoDescription %}
  18. {% else %}
  19. {% set seoDescriptionText = seoDescriptionText ~ ' ' ~ localidad.nombre|string_to_ascii %}
  20. {% endif %}
  21. {% if localidad.seoKeywords %}
  22. {% set seoKeywordsText = seoKeywordsText ~ ' ' ~ localidad.seoKeywords %}
  23. {% else %}
  24. {% set seoKeywordsText = seoKeywordsText ~ ', ' ~ localidad.nombre|string_to_ascii|lower %}
  25. {% endif %}
  26. {% else %}
  27. {% set seoTitleText = titulo %}
  28. {% set seoDescriptionText = globales.configuracionGeneral.seoDescription %}
  29. {% set seoKeywordsText = globales.configuracionGeneral.seoKeywords %}
  30. {% endif %}
  31. {% block seoTitle %}{{ seoTitleText|trim }}{% endblock %}
  32. {% block seoDescription %}{{ seoDescriptionText|trim }}{% endblock %}
  33. {% block seoKeywords %}{{ seoKeywordsText|trim }}{% endblock %}
  34. {% block title %}Cursos - {{ seoTitleText|trim }}{% endblock %}
  35. {% block css %}
  36. {# TAGS SEO #}
  37. {% if routeName == 'front_listado_cursos_localidad' %}
  38. {% set urlCanonica = absolute_url(path('front_listado_cursos_localidad', {"slugLocalidad": localidad.slug})) %}
  39. {% else %}
  40. {% set urlCanonica = absolute_url(path('front_listado_cursos')) %}
  41. {% endif %}
  42. {% set primeraPag = 1 %}
  43. {% set ultimaPag = (cursos.totalItemCount/itemsPorPagina)|round(0, 'ceil') %}
  44. <link rel="canonical" href="{{ urlCanonica }}" />
  45. {% if cursos.currentPageNumber > 1 %}
  46. <link rel="prev" href="{{ urlCanonica~'?page='~(cursos.currentPageNumber-1) }}" />
  47. {% endif %}
  48. {% if cursos.currentPageNumber < ultimaPag %}
  49. <link rel="next" href="{{ urlCanonica~'?page='~(cursos.currentPageNumber+1) }}" />
  50. {% endif %}
  51. {{ parent() }}
  52. <style>
  53. .entry-image, .entry-image>a, .entry-image .slide a, .entry-image img {
  54. height: 250px;
  55. }
  56. </style>
  57. {% endblock %}
  58. {% block content %}
  59. <!-- Content
  60. ============================================= -->
  61. <section id="content">
  62. <div class="content-wrap">
  63. <div class="container clearfix">
  64. <div class="row col-mb-80">
  65. <div class="col-12 pb-0">
  66. <h1 class="">
  67. {% if localidad %}
  68. Mostrando todos los cursos de {{ localidad.nombre }}
  69. {% else %}
  70. Mostrando todos los cursos
  71. {% endif %}
  72. </h1>
  73. </div>
  74. <!-- Post Content
  75. ============================================= -->
  76. <div class="postcontent col-12 col-lg-9 order-last clearfix">
  77. {% if cursos|length == 0 %}
  78. <div class="row">
  79. <div class="col-12">
  80. <p class="text text-center text-danger font-metropolis fw-bold fs-4">
  81. ACTUALMENTE ESTAMOS TRABAJANDO PARA PUBLICAR LOS<br> CURSOS EN ESTA ZONA<br><br>
  82. PERO NO TE PREOCUPES, PUEDES HABLAR CON NOSOTROS Y<br> TE AYUDAREMOS A ENCONTRAR LO QUE NECESITES.<br><br>
  83. </p>
  84. <p class="text text-center text-success font-metropolis fw-bold fs-4">WHATSAPP: <a href='https://api.whatsapp.com/send?phone=34xxxxxxxxx'>xxx xx xx xx</a></p>
  85. </div>
  86. </div>
  87. {% else %}
  88. <div class="row">
  89. <div class="col-12">
  90. <div class="page_control_shorting left_area tac-lg mb30-767 mt15">
  91. <h5>Cursos disponibles: <code>{{ cursos.getTotalItemCount }}</code></h5>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="post-grid row col-mb-30">
  96. {% for c in cursos %}
  97. <div class="entry col-xl-4 col-sm-6">
  98. {% if c.destacado %}
  99. <div class="ribbon">Destacado</div>
  100. {% endif %}
  101. <div class="grid-inner shadow-sm card rounded-5 d-flex flex-column h-100">
  102. {% set imagen = c.imagen ? asset(c.imagen|perfil_compresion_imagen('SD')) : asset('assets/img/no-image-list.png') %}
  103. <a href="{{ path('front_ver_curso', {'curso': c.id, 'slug': c.slug}) }}">
  104. <img src="{{ imagen }}" alt="{{ c.nombre }}" class="card-img-top">
  105. </a>
  106. <div class="p-4">
  107. <div class="entry-title">
  108. <h3 class="text-transform-none ls-0 h5"><a href="{{ path('front_ver_curso', {'curso': c.ID, 'slug': c.slug}) }}">{{ c.nombre }}</a></h3>
  109. </div>
  110. {# <div class="entry-meta">#}
  111. {# <ul>#}
  112. {# <li><i class="uil uil-map-marker"></i> {{ p.localidad }}</li>#}
  113. {# <li><i class="uil uil-briefcase"></i> {{ p.serviciosAsignados|map(p => "#{p.nombre}")|join(', ') }}</li>#}
  114. {# </ul>#}
  115. {# </div>#}
  116. <div class="entry-content mt-4">
  117. <p class="mb-0">{{ c.descripcionCurso | my_strip_tags | truncate_text(200) }}</p>
  118. </div>
  119. {# {% if not is_granted('ROLE_ADMIN') and is_granted('ROLE_ESTACION') %}#}
  120. {# <div class="entry-meta d-flex justify-content-between align-items-center">#}
  121. {# <ul>#}
  122. {# <li><a class="btn-anadir-quitar-proveedor-favoritos" href="#" data-id="{{ p.id }}">#}
  123. {# <i class="uil uil-heart {% if app.user.esProveedorFavorito(p.id) %}text-danger{% endif%} fs-4"></i>#}
  124. {# </a>#}
  125. {# </li>#}
  126. {# </ul>#}
  127. {# <div>#}
  128. {# <input type="number" class="star-rating" data-display-only="true" value="{{ p.valoracionTotal }}">#}
  129. {# </div>#}
  130. {# </div>#}
  131. {# {% endif %}#}
  132. </div>
  133. </div>
  134. </div>
  135. {% endfor %}
  136. </div><!-- .postcontent end -->
  137. {% if cursos|length > 0 %}
  138. {{ knp_pagination_render(cursos, 'paginacion-front.html.twig') }}
  139. {% endif %}
  140. {% endif %}
  141. </div>
  142. <!-- Sidebar
  143. ============================================= -->
  144. <aside class="sidebar col-12 col-lg-3">
  145. <div class="sidebar-widgets-wrap">
  146. <div class="widget">
  147. <h4>Filtros de búsqueda</h4>
  148. <div>
  149. {{ form_start(frontFormBusquedaCursos, {attr: {novalidate: 'novalidate', 'class': 'form'}}) }}
  150. <div class="row justify-content-center align-items-center">
  151. <div class="col-md-12">
  152. {{ form_row(frontFormBusquedaCursos.nombre) }}
  153. </div>
  154. <div class="col-md-12">
  155. {{ form_row(frontFormBusquedaCursos.localidad) }}
  156. </div>
  157. <div class="col-md-12">
  158. <button class="d-none button button-3d m-0" type="submit">
  159. Buscar
  160. </button>
  161. <button class="button button-3d m-0 w-auto" type="submit">
  162. <i class="uil uil-search-alt fs-4"></i>
  163. Buscar
  164. </button>
  165. <button id="btn-reset" class="button button-3d m-0 w-auto" type="button">
  166. <i class="uil uil-trash-alt fs-4"></i>
  167. Limpiar filtros
  168. </button>
  169. </div>
  170. </div>
  171. {{ form_end(frontFormBusquedaCursos) }}
  172. </div>
  173. </div>
  174. </div>
  175. </aside><!-- .sidebar end -->
  176. </div>
  177. </div>
  178. </div>
  179. </section><!-- #content end -->
  180. {% endblock %}
  181. {% block js %}
  182. <script>
  183. $(function () {
  184. function recargarPagina() {
  185. let slugLocalidad = null;
  186. if (localidad.val() !== '') {
  187. slugLocalidad = localidad.find('option[value=' + localidad.val() + ']').attr('data-slug');
  188. }
  189. var ruta = Routing.generate('front_listado_cursos')
  190. if (slugLocalidad) {
  191. ruta = Routing.generate('front_listado_cursos_localidad', {slugLocalidad: slugLocalidad}, false);
  192. }
  193. window.location = ruta;
  194. }
  195. let localidad = $('#front_busqueda_curso_localidad');
  196. localidad.on('change', function (e) {
  197. recargarPagina();
  198. });
  199. $('#btn-reset').on('click', function (e) {
  200. window.location = Routing.generate('front_listado_cursos');
  201. });
  202. // $('#front_busqueda_curso_ordenarPor').on('change', function (e) {
  203. // $('form[name=busqueda_empresa_front]').submit();
  204. // });
  205. });
  206. </script>
  207. {% endblock %}