{% extends 'base.html.twig' %}
{% block title %}{{ block('h1') }}{% endblock %}
{% block description %}Retrouvez sur le site enseignement-prive.info les journées portes ouvertes des établissements de l'enseignement privé.{% endblock %}
{% block body %}
<section class="container page-jpo">
<div id="breadcrumb">
{% include 'jpo/_includes/breadcrumb.html.twig' with {
'lieu' : lieu,
}
only %}
</div>
<div class="title">
<div class="jpo-h1-like">Journées Portes Ouvertes</div>
<div class="triangle-defaut"></div>
</div>
{% if etablissement is not null %}
<div class="recherche-contexte text-left" role="group">
<a href="#" onclick="history.back()" class="liste ">
Retour à la fiche
</a>
</div>
{% endif %}
<div class="wrap">
<section>
<h1 class="jpo-h2-like">
{%- block h1 -%}
{% if seoTitre %}
{{seoTitre | raw}}
{% else %}
Journées Portes Ouvertes
{% endif %}
{%- endblock -%}
</h1>
{% if seoTexte %}<span id="jpo-intro">{{seoTexte | raw}}</span><br/>{% endif %}
{% if etablissement is null %}
{{ render(controller(
'App\\Controller\\JPOController::blocJPOsALaUne',
{ type:'liste' }
)) }}
{% endif %}
<div class="w-100 d-md-block d-lg-none pb-4">
{% include 'actualite-etablissement/_includes/search-options.html.twig' with { type: 'mobile'} %}
</div>
<div class="jpo-list-tri">
<div class="jpo-month">
<ul>
{% for jpo in jpos %}
{% if loop.first %}
{% set previous_jpo = jpo %}
{% else %}
{% set previous_jpo = jpos[loop.index0 - 1] %}
{% endif %}
{% if loop.last %}
{% set next_jpo = jpo %}
{% else %}
{% set next_jpo = jpos[loop.index0 + 1] %}
{% endif %}
{% if jpo.date | date('m') != previous_jpo.date | date('m') or previous_jpo == jpo %}
{% for month in 1..12 %}
{% if jpo.date | date('n') == month %}
<li style="height: 38px;"><a href="#{{ jpo.date | date('n') }}" class="scroll-month">{{jpo.date | format_date(pattern='MMMM Y') }}</a></li>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
</ul>
</div>
{% for jpo in jpos %}
{% if loop.first %}
{% set previous_jpo = jpo %}
{% else %}
{% set previous_jpo = jpos[loop.index0 - 1] %}
{% endif %}
{% if loop.last %}
{% set next_jpo = jpo %}
{% else %}
{% set next_jpo = jpos[loop.index0 + 1] %}
{% endif %}
{% if jpo.date | date('m') != previous_jpo.date | date('m') or previous_jpo == jpo %} <div id="{{jpo.date | date('n')}}"> <h2>{{jpo.date | format_date('full') }}</h2><div>{% endif %}
<article class="{% if jpo.etablissement.jpoPlus == 1 %}bckgrnd-plus {% endif %}jpo-item"
data-etab-id="{{ jpo.etablissement.id }}"
data-etab-nom="{{ jpo.etablissement.denomination | e('html_attr') }}"
data-etab-segment="{{ jpo.etablissement.isClient ? 'client' : 'prospect' }}"
data-etab-type="{{ typeEtablissementSimple(jpo.etablissement.type) | e('html_attr') }}"
data-etab-ville="{{ jpo.etablissement.ville ? jpo.etablissement.ville.slug | replace({'-': '_'}) : null }}"
data-etab-location-id="{{ jpo.etablissement and jpo.etablissement.ville ? jpo.etablissement.ville.departement.id ~ '-' ~ jpo.etablissement.codePostal ~ '-' ~ jpo.etablissement.ville.libelle : null }}"
data-jpo-id="{{ jpo.id }}"
data-jpo-date="{{ jpo.date | date('Y-m') }}"
data-jpo-date-full="{{ jpo.date | date('Y-m-d') }}"
data-jpo-index="{{ loop.index }}"
data-trace-action="{{ constant('App\\Entity\\Trace::JPO') | e('html_attr') }}"
data-trace-etab="{{ jpo.etablissement.id | e('html_attr') }}"
>
{% if jpo.etablissement.jpoPlus == 1 %}
<span class="badge-plus-jpo"></span>
{% endif %}
<div class="icon"></div>
<figure class="resize">
{% if jpo.etablissement.logo is not empty %}
{% set imgSrc = vich_uploader_asset(jpo.etablissement.logo, 'logoFile') %}
{% if imgSrc %}
<img class="resp" src='{{ vich_uploader_asset(jpo.etablissement.logo, 'logoFile') | imagine_filter('etab_hp_logo') }}' alt='{{jpo.lieu}}' width='140' height='140'/>
{% endif %}
{% endif %}
</figure>
<div class="content">
<p class="date">{{jpo.date | format_date(pattern='d MMMM Y') }}</p>
{#<p class="city">{{jpo.lieu | u.truncate(30, '…', true)}}</p>#}
<p class="city">{{ jpo.etablissement.ville|lieuLibelle }}</p>
<p class="estab">{{ jpo.etablissement.denomination | u.truncate(50, '…', true)}}</p>
</div>
<a class="see-more" href="{{ path('jpo-etab', {'id': jpo.id}) }}" data-trace-action="{{ constant('App\\Entity\\Trace::JPO') | e('html_attr') }}" data-trace-etab="{{ jpo.etablissement.id | e('html_attr') }}">Découvrir</a>
</article>
{% if jpo.date | date('m') != next_jpo.date | date('m') or next_jpo == jpo %} </div></div> {% endif %}
{% endfor %}
</div>
</section>
<aside>
{% include 'actualite-etablissement/_includes/search-options.html.twig' with { type: 'aside'} %}
</aside>
</div>
</section>
{% endblock %}
{% block data_layer %}
<script>
window.dataLayer = window.dataLayer || [];
// 1. Contexte global de la page liste
dataLayer.push({
event: "page_context",
page_type: "liste_jpo",
liste_type: "portes_ouvertes",
site_section: "portes_ouvertes",
education_niveau: {{ (niveaux ? niveaux | join('_') : null) | json_encode(constant('JSON_UNESCAPED_UNICODE')) | raw }},
region: {{ (lieu ? lieu.slug | replace({'-': '_'}) : null) | json_encode(constant('JSON_UNESCAPED_UNICODE')) | raw }},
departement: null,
ville: null,
code_postal: null,
recherche_type: "jpo",
total_resultats: {{ jpos is defined and jpos ? jpos|length : 0 }},
numero_pagination: {{ app.request.query.get('page', 1) }}
});
// 2. Événement métier : affichage d'une liste de journées portes ouvertes
dataLayer.push({ ecommerce: null });
{% set items = [] %}
{% if jpos is defined and jpos|length %}
{% for jpo in jpos %}
{% set item = {
'item_id': jpo.id,
'item_name': 'JPO - ' ~ jpo.etablissement.denomination ~ ' - ' ~ jpo.date | format_date(pattern='d MMMM Y'),
'item_category': 'journee_portes_ouvertes',
'item_category2': typeEtablissementSimple(jpo.etablissement.type),
'item_category3': jpo.date | date('Y-m'),
'item_category4': jpo.etablissement.ville ? jpo.etablissement.ville.slug | replace({'-': '_'}) : null,
'location_id': jpo.etablissement and jpo.etablissement.ville ? jpo.etablissement.ville.departement.id ~ "-" ~ jpo.etablissement.codePostal ~ "-" ~ jpo.etablissement.ville.libelle : null,
'index': loop.index,
'jpo_date': jpo.date | date('Y-m-d'),
'etablissement_id': jpo.etablissement.id,
'etablissement_nom': jpo.etablissement.denomination,
'etablissement_segment': jpo.etablissement.isClient ? 'client' : 'prospect'
} %}
{% set items = items|merge([item]) %}
{% endfor %}
{% endif %}
dataLayer.push({
event: "view_item_list",
ecommerce: {
item_list_id: "jpo_toutes",
item_list_name: "Journées portes ouvertes",
items: {{ items|json_encode(constant('JSON_UNESCAPED_UNICODE'))|raw }}
}
});
document.addEventListener('click', function (event) {
const article = event.target.closest('article.jpo-item');
if (!article) {
return;
}
const item = {
item_id: article.dataset.jpoId,
item_name: 'JPO - ' + article.querySelector('.estab').textContent.trim() + ' - ' + article.querySelector('.date').textContent.trim(),
item_category: 'journee_portes_ouvertes',
etablissement_id: article.dataset.etabId,
etablissement_nom: article.dataset.etabNom,
etablissement_segment: article.dataset.etabSegment,
item_category2: article.dataset.etabType,
item_category3: article.dataset.jpoDate,
item_category4: article.dataset.etabVille,
location_id: article.dataset.etabLocationId,
index: article.dataset.jpoIndex,
jpo_date: article.dataset.jpoDateFull
};
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: 'select_item',
ecommerce: {
item_list_id: 'jpo_toutes',
item_list_name: 'Journées portes ouvertes',
items: [item]
}
});
});
</script>
{% endblock %}