vendor/sulu/sulu/src/Sulu/Bundle/WebsiteBundle/Resources/views/Extension/seo.html.twig line 1

Open in your IDE?
  1. {#-
  2.  # content array
  3.  # seo array
  4.  # shadowBaseLocale string
  5.  # localizations array
  6. -#}
  7. {% if localizations is not defined %}
  8.     {% deprecated 'The "urls" variable is deprecated, set "localizations" instead in the "seo.html.twig".' %}
  9.     {% set localizations = {} %}
  10.     {% for locale, url in urls %}
  11.         {% set localizations = localizations|merge({
  12.             (locale): {
  13.                 locale: locale,
  14.                 url: sulu_content_path(url, null, locale),
  15.             }
  16.         }) %}
  17.     {% endfor %}
  18. {% endif %}
  19. {#- merge seo data with _seo from attributes for custom urls -#}
  20. {% set seo = seo|default([])|merge(app.request.attributes.get('_seo', [])|default([])) %}
  21. {#- fallback to content title when no seo title is set -#}
  22. {% set seoTitle = seo.title|default(content.title|default()) %}
  23. {% set seoDescription = seo.description|default() %}
  24. {% set seoKeywords = seo.keywords|default() %}
  25. {% set seoRobots = '' %}
  26. {%- if seo.noIndex|default(false) -%}
  27.     {% set seoRobots = seoRobots ~ 'noIndex' -%}
  28. {%- else -%}
  29.     {% set seoRobots = seoRobots ~ 'index' -%}
  30. {%- endif -%}
  31. {%- if seo.noFollow|default(false) -%}
  32.     {% set seoRobots = seoRobots ~ ',noFollow' -%}
  33. {%- else -%}
  34.     {% set seoRobots = seoRobots ~ ',follow' -%}
  35. {%- endif -%}
  36. {% set seoCanonical = seo.canonicalUrl|default() %}
  37. {%- if not seoCanonical and shadowBaseLocale and localizations[shadowBaseLocale]|default() %}
  38.     {% set seoCanonical = localizations[shadowBaseLocale].url %}
  39. {%- endif -%}
  40. {#- render blocks -#}
  41. {%- block title -%}
  42.     {%- if seoTitle -%}
  43.         <title>{{ seoTitle }}</title>
  44.     {%- endif -%}
  45. {%- endblock -%}
  46. {%- block description -%}
  47.     {%- if seoDescription -%}
  48.         <meta name="description" content="{{ seoDescription }}"/>
  49.     {%- endif -%}
  50. {%- endblock -%}
  51. {%- block keywords -%}
  52.     {%- if seoKeywords -%}
  53.         <meta name="keywords" content="{{ seoKeywords }}"/>
  54.     {%- endif -%}
  55. {%- endblock -%}
  56. {%- block robots -%}
  57.     {%- if seoRobots -%}
  58.         <meta name="robots" content="{{ seoRobots }}"/>
  59.     {%- endif -%}
  60. {%- endblock -%}
  61. {%- block urls -%}
  62.     {#- when only one language do not show alternative -#}
  63.     {%- if localizations|length > 1 -%}
  64.         {%- for localization in localizations -%}
  65.             {%- if localization.alternate is not defined or localization.alternate -%}
  66.                 <link rel="alternate" href="{{ localization.url }}" hreflang="{{ localization.locale|replace({'_': '-'}) }}"/>
  67.             {%- endif -%}
  68.         {%- endfor -%}
  69.     {%- endif -%}
  70. {%- endblock -%}
  71. {%- block canonical -%}
  72.     {#- Set canonical to itself if a bot clone the page -#}
  73.     <link rel="canonical" href="{{ seoCanonical|default(app.request.uri) }}"/>
  74. {%- endblock -%}