templates/includes/meta.html.twig line 1

Open in your IDE?
  1. {%- apply spaceless %}
  2. {% set metaPublisher = 'Coworking Lyon' %}
  3. {% set metaClientName = 'Coworking Lyon' %}
  4. {% set metaCopyright = 'Coworking Lyon' %}
  5. {% set metaLocaleParts = app.request.locale|split('_') %}
  6. {% set metaLanguage = metaLocaleParts[0] %}
  7. {% set metaCountry = metaLocaleParts[1]|default(null) %}
  8. {% set metaLocale = metaLocaleParts|length == 1 ? metaLanguage : metaLanguage ~ '_' ~ metaCountry|upper %}
  9. {% set metaUrl = app.request.uri %}
  10. {# Get meta title #}
  11. {% set metaTitle = extension.seo.title|default(content.title|default('')) %}
  12. {# Get meta description #}
  13. {% set metaDescription = extension.seo.description|default(content.description|default('')|striptags) %}
  14. {% if metaDescription|trim %}
  15.     {% set metaDescription = metaDescription|length > 320 ? metaDescription|slice(0, 316) ~ ' ...' : metaDescription %}
  16. {% endif %}
  17. {# Get meta image #}
  18. {% set metaImageFormat = '600x400' %}
  19. {% set metaImage = metaImage|default(extension.excerpt.images[0].thumbnails[metaImageFormat]|default())  %}
  20. {% set metaImage = metaImage|default(content.images[0].thumbnails[metaImageFormat]|default()) %}
  21. {% set metaImage = metaImage|default('/website/images/logo.svg') %}
  22. {% set metaImage = absolute_url(asset(metaImage)) %}
  23. {% set metaDefaultTags = {
  24.     'language': metaLanguage,
  25.     'publisher': metaPublisher,
  26.     'author': metaClientName,
  27.     'copyright': metaCopyright,
  28.     'audience': 'all',
  29.     'distribution': 'global',
  30.     'image': metaImage,
  31. } %}
  32. {% set metaDCTags = {
  33.     'DC.Title': metaTitle,
  34.     'DC.Publisher': metaPublisher,
  35.     'DC.Copyright': metaCopyright,
  36. } %}
  37. {% set metaTwitterTags = {
  38.     'twitter:card': 'summary',
  39.     'twitter:url': metaUrl,
  40.     'twitter:title': metaTitle,
  41.     'twitter:description': metaDescription,
  42.     'twitter:image': metaImage,
  43. } %}
  44. {% set ogMetaTags = {
  45.     'og:site_name': metaClientName,
  46.     'og:url': metaUrl,
  47.     'og:title': metaTitle,
  48.     'og:image': metaImage,
  49.     'og:type': 'website',
  50.     'og:description': metaDescription,
  51.     'og:locale': metaLocale
  52. } %}
  53. {% endapply -%}
  54. {# Default Seo: http://blog.sulu.io/new-in-sulu-1-4-customizable-seo-tags #}
  55. {%- embed '@SuluWebsite/Extension/seo.html.twig' with {
  56.     seo: extension.seo|default([]),
  57.     content: content|default([]),
  58.     localizations: localizations|default([]),
  59.     shadowBaseLocale: shadowBaseLocale|default(),
  60.     defaultLocale: request.defaultLocale|default('en')
  61. } -%}
  62.     {% block title %}
  63.         {% if not seoTitle -%}
  64.             {% set seoTitle = app.request.pathInfo|split('/')|last|replace({'-': '_'})|humanize %}
  65.         {%- endif -%}
  66.         <title>{{ seoTitle }} - {{ metaClientName }}</title>
  67.     {%- endblock -%}
  68. {%- endembed %}
  69. {# Meta Default Tags #}
  70. {% block metaDefaultTags %}
  71.     {% for property, value in metaDefaultTags|filter((value) => value) %}
  72.     <meta name="{{ property }}" content="{{ value }}">
  73.     {% endfor %}
  74. {% endblock %}
  75. {# Meta DC Tags #}
  76. {% block metaDCTags %}
  77.     {% for property, value in metaDCTags|filter((value) => value) %}
  78.     <meta name="{{ property }}" content="{{ value }}">
  79.     {% endfor %}
  80. {% endblock %}
  81. {# Meta Twitter Tags #}
  82. {% block metaTwitterTags %}
  83.     {% for property, value in metaTwitterTags|filter((value) => value) %}
  84.     <meta name="{{ property }}" content="{{ value }}">
  85.     {% endfor %}
  86. {% endblock %}
  87. {# Meta OG Tags #}
  88. {% block ogMetaTags %}
  89.     {% for property, value in ogMetaTags|filter((value) => value) %}
  90.     <meta property="{{ property }}" content="{{ value }}">
  91.     {% endfor %}
  92. {% endblock %}