templates/main/base.html.twig line 1

Open in your IDE?
  1. {# Plantilla de la página principal de la aplicación web #}
  2. {% set route_name = app.request.attributes.get('_route') %}
  3. {% set current_locale = app.request.attributes.get('_locale') %}
  4. {% set supported_locales = [
  5.     {
  6.         name: 'Español',
  7.         value: 'es'
  8.     },
  9.     {
  10.         name: 'Català',
  11.         value: 'ca'
  12.     },
  13.     {
  14.         name: 'Euskera',
  15.         value: 'eu'
  16.     }
  17. ] %}
  18. <!DOCTYPE html>
  19. <html lang="{{ current_locale }}">
  20. <head>
  21.     <meta charset="utf-8">
  22.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  23.     <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  24.     <meta name="description" content="">
  25.     <meta name="author" content="">
  26.     <link rel="icon" href="/img/favicon_platform.ico" type="image/x-icon">
  27.     <title>{{ 'login.platform'|trans }}</title>
  28.     <style>
  29.         #contenedor{
  30.             display: flex;
  31.             flex-direction: column;
  32.             min-height: 100vh;
  33.         }
  34.         #contenido{
  35.             flex: 1;
  36.         }
  37.         /* Estilo general del footer */
  38.         #footer {
  39.             background-color: #5a5c69;
  40.             background-image: linear-gradient(180deg, #5a5c69 10%, #373840 100%);
  41.             background-size: cover;
  42.             color: #fff; /* Cambia el color del texto */
  43.             padding: 20px 0;
  44.         }
  45.         #footer h5 {
  46.             font-weight: bold;
  47.             margin-bottom: 15px;
  48.         }
  49.         #footer p, #footer a {
  50.             color: #fff;
  51.             margin: 0;
  52.             font-size: 14px;
  53.         }
  54.         #footer a:hover {
  55.             color: #ddd;
  56.             text-decoration: none;
  57.         }
  58.         #footer .social-icons a {
  59.             margin: 0 10px;
  60.             transition: color 0.3s;
  61.         }
  62.         #footer .social-icons a:hover {
  63.             color: #007bff; /* Cambia el color del hover si es necesario */
  64.         }
  65.         /* Responsividad */
  66.         @media (max-width: 768px) {
  67.             #footer .col-md-4 {
  68.                 margin-bottom: 20px;
  69.                 text-align: center;
  70.             }
  71.             #footer .col-md-4 .d-flex {
  72.                 align-items: center !important;
  73.             }
  74.         }
  75.         @media (max-width: 576px) {
  76.             #footer .col-md-4 {
  77.                 margin-bottom: 10px;
  78.                 text-align: center;
  79.             }
  80.             #footer .col-md-4 .d-flex {
  81.                 flex-direction: column;
  82.                 align-items: center;
  83.             }
  84.         }
  85.     </style>
  86.     {% block stylesheets %}
  87.     <!-- Custom fonts for this template-->
  88.     <link href="{{ asset('vendor/fontawesome-free/css/all.min.css') }}" rel="stylesheet" type="text/css">
  89.     <link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
  90.     {# <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.2/font/bootstrap-icons.css" integrity="sha384-b6lVK+yci+bfDmaY1u0zE8YYJt0TZxLEAFyYSLHId4xoVvsrQu3INevFKo+Xir8e" crossorigin="anonymous"> #}
  91.     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.css">
  92.     <!-- Custom styles for this template-->
  93.     <link href="{{ asset('css/sb-admin-2.min.css') }}" rel="stylesheet">
  94.     <link href="{{ asset('css/sb-admin-2.css') }}" rel="stylesheet">
  95.     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/css/bootstrap-select.min.css">
  96.     {% endblock %}
  97. </head>
  98. <body class="bg-gradient-light">
  99.     {# —————————————— Banner de entorno —————————————— #}
  100.     {% include 'banner.html.twig' %}
  101.     {# ———————————————————————————————————————————————— #}
  102.     <div id="contenedor">
  103.         <div id="contenido" class="content-wrapper">
  104.             <div class="container">
  105.                 <div class="mt-5 text-right">
  106.                     <form class=" ">
  107.                         <select id="lang-selector" class="selectpicker" data-width="fit">
  108.                             {% for locale in supported_locales %}
  109.                                 <option
  110.                                     value="{{ locale.value }}"
  111.                                     data-url="{{ path(app.request.get('_route'),
  112.                                                  app.request.get('_route_params')|merge({'_locale': locale.value})) }}"
  113.                                     {% if current_locale == locale.value %}selected{% endif %}
  114.                                 >{{ locale.name }}
  115.                                 </option>
  116.                             {% endfor %}
  117.                         </select>
  118.                     </form>
  119.                 </div>
  120.                 {% block content %}{% endblock %}
  121.             </div>
  122.         </div>
  123.         <!-- Footer -->
  124.         <footer id="footer" class="bg-custom text-white py-4">
  125.             <div class="container">
  126.                 <div class="row">
  127.                     <div class="col-md-4 d-flex flex-column align-items-center">
  128.                         <div>
  129.                             <h5>{{ 'footer.platform'|trans }}</h5>
  130.                             <p>{{ 'footer.platform_text'|trans }}</p>
  131.                             <p>Zorroagagaina, 11 — 20014 Donostia - San Sebastián (Gipuzkoa · Spain)</p>
  132.                             <div class="row text-center">
  133.                                 <div class="col-2">
  134.                                     <a href="https://www.facebook.com/people/Aranzadi-Ornito/61572505802463/#" class="text-white" target="_blank" rel="noopener noreferrer">
  135.                                         <i class="bi bi-facebook fa-2x"></i>
  136.                                     </a>
  137.                                 </div>
  138.                                 <div class="col-2">
  139.                                     <a href="https://www.instagram.com/aranzadi_ornito/" class="text-white" target="_blank" rel="noopener noreferrer">
  140.                                         <i class="bi bi-instagram fa-2x"></i>
  141.                                     </a>
  142.                                 </div>
  143.                                 <div class="col-2">
  144.                                     <a href="https://bsky.app/profile/aranzadiornito.bsky.social" class="text-white" target="_blank" rel="noopener noreferrer">
  145.                                         <i class="bi bi-bluesky fa-2x"></i>
  146.                                     </a>
  147.                                 </div>
  148.                             </div>
  149.                         </div>
  150.                     </div>
  151.                     <div class="col-md-4 col-6 d-flex flex-column align-items-center">
  152.                         <div>
  153.                             <h5>{{ 'footer.contact'|trans }}</h5>
  154.                             <address>
  155.                                 <p>
  156.                                     <a href="https://www.ring.eus/" target="_blank" rel="noopener noreferrer">Aranzadi</a>
  157.                                 </p>
  158.                                 <p>
  159.                                     <a href="tel:+34943466142">+34 943 46 61 42</a>
  160.                                 </p>
  161.                                 <a href="mailto:info@wimbitek.com">ring@aranzadi.eus</a>
  162.                             </address>
  163.                         </div>
  164.                     </div>
  165.                     <div class="col-md-4 col-6 d-flex flex-column align-items-center">
  166.                         <div>
  167.                             <h5>{{ 'footer.links'|trans }}</h5>
  168.                             <address>
  169.                                 <p>
  170.                                     <a href="{{ path('app_terms_conditions') }}">{{ 'footer.legal_warning'|trans }}</a>
  171.                                 </p>
  172.                                 <p>
  173.                                     <a href="{{ path('app_privacy_policy') }}">{{ 'footer.privacy_policy'|trans }}</a>
  174.                                 </p>
  175.                                 <p>
  176.                                     <a href="{{ path('cookie_policy') }}">Cookies</a>
  177.                                 </p>
  178.                             </address>
  179.                         </div>
  180.                     </div>
  181.                     <div class="col-12 mt-4">
  182.                         <div>
  183.                             {# Disclaimer en desarrollo: <p class="text-center">{{'footer.text'|trans}}</p> #}
  184.                             <p class="text-center"> 2023 - <span id="current-year"></span> {{ 'copyright'|trans }} </p>
  185.                         </div>
  186.                     </div>
  187.                 </div>
  188.             </div>
  189.         </footer>
  190.     </div>
  191.     {% block cookies %}{% endblock %}
  192. </body>
  193. {% block javascripts %}
  194. <!-- Bootstrap core JavaScript-->
  195. <script src="{{ asset('vendor/jquery/jquery.min.js') }}"></script>
  196. <script src="{{ asset('vendor/bootstrap/js/bootstrap.bundle.min.js') }}"></script>
  197. <script src="https://cdn.jsdelivr.net/npm/bootstrap-select@1.13.14/dist/js/bootstrap-select.min.js"></script>
  198. <!-- Core plugin JavaScript-->
  199. <script src="{{ asset('vendor/jquery-easing/jquery.easing.min.js') }}"></script>
  200. <!-- Custom scripts for all pages-->
  201. <script src="{{ asset('vendor/sb-admin-2/sb-admin-2.min.js') }}"></script>
  202. <script src="{{ asset('js/utils/log_utils.js') }}"></script>
  203. <script src="{{ asset('js/utils/add_class.js') }}"></script>
  204. <script src="{{ asset('js/utils/locale.js') }}"></script>
  205. <script>
  206.     // console.log("🧩 base 1 : main/base");
  207.   // Obtener el año actual y asignarlo al elemento con id "current-year"
  208.   document.getElementById('current-year').textContent = new Date().getFullYear();
  209. </script>
  210. {% endblock %}