templates/frontend/header_change_country.html.twig line 1

Open in your IDE?
  1. {% if not app.request.cookies.has(constant('App\\Controller\\Frontend\\CountryController::COOKIE_NAME')) and current_country_doesnt_match_ip_address() %}
  2.     <div class="header-change-country clearfix">
  3.         {% set visitor_country = get_visitor_country() %}
  4.         {% set visitor_country_default_locale = get_country_default_locale(visitor_country) %}
  5.         {% set visitor_country_proposed_locales = get_country_proposed_locales(visitor_country) %}
  6.         {% set domain = get_visitor_country_domain() %}
  7.         <div>
  8.             {% if visitor_country_proposed_locales %}
  9.                 {% for locale in visitor_country_proposed_locales %}
  10.                     {% set locale_with_country = locale|lower ~ '_' ~ visitor_country|upper %}
  11.                     {% if not loop.first %}/{% endif %}
  12.                     {{ 'frontend.header.switch.country'|trans({'%domain%': domain}, 'messages', locale_with_country) }}
  13.                 {% endfor %}
  14.             {% else %}
  15.                 {{ 'frontend.header.switch.country'|trans({'%domain%': domain}, 'messages', visitor_country_default_locale) }}
  16.             {% endif %}
  17.         </div>
  18.         <div>
  19.             {# “|default({})” will avoid an error when calling merge on an empty array #}
  20.             {% set route_params = app.request.attributes.get('_route_params')|default({}) %}
  21.             {# merge the query string params to keep them when switching the locale #}
  22.             {% set route_params = route_params|merge(app.request.query.all) %}
  23.             {# we must overwrite the locale from the current page #}
  24.             {% set route_params = route_params|merge({'_locale': visitor_country_default_locale}) %}
  25.             {% set switch_country_url= (
  26.                 app.request.scheme ~
  27.                 '://' ~
  28.                 domain  ~
  29.                 get_route_for_country(visitor_country, app.request.get('_route') ? app.request.get('_route') : 'homepage', route_params)
  30.             ) %}
  31.             <a href="{{ switch_country_url }}">✔️
  32.                 {% if visitor_country_proposed_locales %}
  33.                     {% for locale in visitor_country_proposed_locales %}
  34.                         {% if not loop.first %}/{% endif %}
  35.                         {{ 'frontend.header.switch.country.yes'|trans({'%domain%': domain}, 'messages', locale)|capitalize }}
  36.                     {% endfor %}
  37.                 {% else %}
  38.                     {{ 'frontend.header.switch.country.yes'|trans({'%domain%': domain}, 'messages', visitor_country_default_locale)|capitalize }}
  39.                 {% endif %}</a>
  40.         </div>
  41.         <div>
  42.             <a href="{{ path('frontend_dont_change_country') }}" id="dont-change-country">✘ {% if visitor_country_proposed_locales %}
  43.                     {% for locale in visitor_country_proposed_locales %}
  44.                         {% if not loop.first %}/{% endif %}
  45.                         {{ 'frontend.header.switch.country.no'|trans({'%domain%': app.request.host}, 'messages', locale)|capitalize }}
  46.                     {% endfor %}
  47.                 {% else %}
  48.                     {{ 'frontend.header.switch.country.no'|trans({'%domain%': app.request.host}, 'messages', visitor_country_default_locale)|capitalize }}
  49.                 {% endif %}</a>
  50.         </div>
  51.     </div>
  52. {% endif %}