filter && fotter

This commit is contained in:
2020-07-23 18:15:08 +02:00
parent 068100edab
commit e9761aa6ca
29 changed files with 926 additions and 107 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -3,6 +3,50 @@ footer{
width: 100%;
height: auto;
padding: 2rem 0;
h2{
font-size: 1rem;
text-transform: uppercase;
}
a{
color: black;
&:hover{
color: black;
}
}
#block-renderedsitesettingsblock-4{
.site_setting_entity{
& > div{
margin: 1rem 0;
&:first-child{
&::after,&:before{
margin: 0.5rem 0;
display: block;
content: " ";
width: 1rem;
height: 1px;
background: black;
}
}
}
.sub-title{
font-size: 1rem;
}
.d-flex{
margin-top: 1rem;
& > div{
width: 30px;
margin-right: 1rem;
}
}
}
}
.site_setting_entity{
img{
// width: 100%;
height: auto;
}
}
& > div{
display: flex;
flex-wrap: nowrap;
@@ -2,8 +2,15 @@
#views-exposed-form-bibliographie-page-1{
margin: 2rem 0;
display: flex;
flex-wrap: wrap;
& > div{
margin-right: 2rem;
&:not(:last-child){
margin-bottom: 1rem;
@media screen and (min-width: 992px) {
margin-bottom: 0rem;
}
}
select{
border: 1px solid $color2;
background: white;
@@ -20,3 +27,85 @@
}
}
}
.views-exposed-form{
input{
height: auto;
background: $color2;
color: white;
border: none;
outline: none;
margin-right: 1rem;
padding: 0.5rem 1rem;
&:focus{
border: none;
outline: none;
}
}
}
.js-form-type-select {
position: relative;
font-family: Arial;
display: inline-flex;
align-items: baseline;
label{
margin-right: 1rem;
}
.select-selected{
min-width: 150px;
}
}
.js-form-type-select select {
display: none; /*hide original SELECT element: */
}
.select-selected {
background-color: white;
color: $color2!important;
}
/* Style the arrow inside the select element: */
.select-selected:after {
position: absolute;
content: "";
top: 14px;
right: 10px;
width: 0;
height: 0;
border: 6px solid transparent;
border-color: $color2 transparent transparent transparent;
}
/* Point the arrow upwards when the select box is open (active): */
.select-selected.select-arrow-active:after {
border-color: transparent transparent $color2 transparent;
top: 7px;
}
/* style the items (options), including the selected item: */
.select-items div,.select-selected {
color: #ffffff;
padding: 8px 16px;
border: 1px solid transparent;
border-color: transparent transparent rgba(0, 0, 0, 0.1) transparent;
cursor: pointer;
}
/* Style items (options): */
.select-items {
position: absolute;
background-color: $color2;
top: 100%;
right: 0;
z-index: 99;
min-width: 150px;
}
/* Hide the items when the select box is closed: */
.select-hide {
display: none;
}
.select-items div:hover, .same-as-selected {
background-color: rgba(0, 0, 0, 0.1);
}
@@ -163,14 +163,6 @@ header{
}
}
.site_setting_entity{
img{
width: 50%;
height: auto;
}
}
header.front{
#block-popsu-colloque-branding{
width: 100%;
@@ -22,7 +22,7 @@ main{
main:not(.home){
padding-top: 0rem;
@media screen and (min-width: 768px) {
padding-top: 5rem!important;
padding: 5rem 0!important;
}
}
@@ -55,7 +55,11 @@ img{
color: $color2;
}
}
#block-popsu-colloque-page-title{
padding: 0 15px;
margin: 0 auto 2rem auto;
@include croix_or;
}
#block-views-block-slide-programme-block-1,
#block-views-block-dernieres-publications-block-1{
margin: 5rem 0;
@@ -0,0 +1,14 @@
.leaflet-popup-content-wrapper{
}
.leaflet-popup-content{
p{
font-size: 0.9rem;
line-height: 1.5;
font-family: 'truenoregular';
strong{
color: $color2;
line-height: 2;
}
}
}
@@ -94,6 +94,8 @@
.__ressources{
.__publications{
.publications{
// margin: $gutter1;
.__media{
padding: 0.5rem 0 0.5rem 0.5rem;
}
@@ -101,13 +103,13 @@
padding: 0.5rem;
}
@media screen and (min-width: 768px) {
width: calc(100% / 2 - #{$gutter1});
width: calc(100% / 2 - #{$gutter1} * 2);
}
@media screen and (min-width: 992px) {
width: calc(100% / 2 - #{$gutter1});
width: calc(100% / 2 - #{$gutter1} * 2);
}
@media screen and (min-width: 1200px) {
width: calc(100% / 2 - #{$gutter1});
width: calc(100% / 2 - #{$gutter1} * 2);
}
}
}
@@ -122,6 +124,16 @@
}
}
}
@media screen and (min-width: 768px) {
width: calc(100% / 2 - #{$gutter1} * 2);
}
@media screen and (min-width: 992px) {
width: calc(100% / 2 - #{$gutter1} * 2);
}
@media screen and (min-width: 1200px) {
width: calc(100% / 2 - #{$gutter1} * 2);
}
}
}
}
@@ -9,7 +9,7 @@
@import "variables/var.scss";
@import "mixins/mixin.scss";
@import "./typography.scss";
@import "typography.scss";
@import "components/admin/edit.scss";
@import "components/admin/toolbar.scss";
@import "hamburgers/hamburgers.scss";
@@ -47,6 +47,7 @@ h1,h2,h3,h4{
@import "components/thumbnails/thumbnails.scss";
@import "components/btn/all_btn.scss";
@import "components/footer/footer.scss";
@import "components/leaflet/custom_leaflet.scss";
main{
// margin-top: $margin-hero;
@@ -89,7 +89,6 @@ a{
}
}
main{
h2{
font-family: 'dukefill';
font-size: 3.5rem;
@@ -146,6 +145,7 @@ main{
letter-spacing: $letter_spacingH;
color: $lightgrey;
}
.__ressources{
h4{
text-transform: uppercase;
+175 -75
View File
@@ -1,93 +1,193 @@
function notes() {
(function ($) {
var $link = $('#presentation a');
$link.each(function(){
$(this).click(function(e) {
$this = $(this);
if ( $this.is('#ressource') || $this.is('#publication') ) {
e.preventDefault();
function notes() {
var $url = $this.attr("href");
var $link = $('#presentation a');
$link.each(function(){
$(this).click(function(e) {
$this = $(this);
if ( $this.is('#ressource') || $this.is('#publication') ) {
e.preventDefault();
if ($( ".side_notes" )[0]) {
$( ".side_notes" ).remove();
var $url = $this.attr("href");
if ($( ".side_notes" )[0]) {
$( ".side_notes" ).remove();
}
content_type($url, $this);
ajax($url, $this);
}
content_type($url, $this);
ajax($url, $this);
}
});
})
});
})
function content_type($url, $this) {
if ($this.is('#ressource')) {
$("<div class='side_notes'><a href="+$url+"></a> </div>").insertAfter("article");
}else if ( $this.is('#publication') ) {
console.log('clcik');
$("<div class='side_notes'></>").insertAfter("article");
function content_type($url, $this) {
if ($this.is('#ressource')) {
$("<div class='side_notes'><a href="+$url+"></a> </div>").insertAfter("article");
}else if ( $this.is('#publication') ) {
console.log('clcik');
$("<div class='side_notes'></>").insertAfter("article");
}
}
function ajax($url , $this) {
$.ajax({
url: $url,
method: "GET",
dataType:'html',
async: true,
success: function(data) {
if ($this.is('#ressource')) {
$(data).find('article > div:not(.__wrap_side) .__wrapper').appendTo('.side_notes a');
}else if ($this.is('#publication')) {
$(data).find('article > div:not(.__wrap_side) .__wrapper').appendTo('.side_notes');
}
position_link($this);
},
})
}
function position_link($this) {
var $top_link = $this.position().top;
console.log($top_link);
$('.side_notes > *').css("top", $top_link);
}
}
function ajax($url , $this) {
$.ajax({
url: $url,
method: "GET",
dataType:'html',
async: true,
success: function(data) {
if ($this.is('#ressource')) {
$(data).find('article > div:not(.__wrap_side) .__wrapper').appendTo('.side_notes a');
}else if ($this.is('#publication')) {
$(data).find('article > div:not(.__wrap_side) .__wrapper').appendTo('.side_notes');
}
position_link($this);
},
})
function slide() {
var $slide = $('main .__slide');
$slide.each(function() {
$(this).flickity({
cellAlign: 'left',
pageDots: false,
contain: true
})
});
var $footer_slide = $('footer .__slide');
$footer_slide.each(function() {
$(this).flickity({
cellAlign: 'left',
pageDots: false,
autoPlay: true,
pauseAutoPlayOnHover: false,
contain: true,
prevNextButtons: false,
})
});
}
function position_link($this) {
var $top_link = $this.position().top;
console.log($top_link);
$('.side_notes > *').css("top", $top_link);
function burger() {
var hamburgers = document.querySelector(".hamburger");
var nav = document.querySelector(".nav-main");
hamburgers.addEventListener("click", function() {
this.classList.toggle("is-active");
nav.classList.toggle("is-active");
$('html, body').toggleClass("is-active");
$('#block-popsu-colloque-branding').toggleClass("is-active");
});
}
}
function slide() {
var $slide = $('main .__slide');
$slide.each(function() {
$(this).flickity({
cellAlign: 'left',
pageDots: false,
contain: true
})
});
function replaceAny(){
var $any_value = $('#edit-field-theme-target-id option').attr('value');
if ($any_value == "All") {
var $any_content = $('#edit-field-theme-target-id option:first-child').html();
var newhtml = $any_content.replace("- Any -", "Thèmes");
$('#edit-field-theme-target-id option:first-child').html(newhtml);
}
}
var $footer_slide = $('footer .__slide');
$footer_slide.each(function() {
$(this).flickity({
cellAlign: 'left',
pageDots: false,
autoPlay: true,
pauseAutoPlayOnHover: false,
contain: true,
prevNextButtons: false,
})
});
function select_custom() {
var x, i, j, l, ll, selElmnt, a, b, c;
/* Look for any elements with the class "form-select": */
x = document.querySelectorAll(".js-form-item-field-theme-target-id, .js-form-item-field-type-de-publication-target-id ");
l = x.length;
for (i = 0; i < l; i++) {
selElmnt = x[i].getElementsByTagName("select")[0];
ll = selElmnt.length;
/* For each element, create a new DIV that will act as the selected item: */
a = document.createElement("DIV");
a.setAttribute("class", "select-selected");
a.innerHTML = selElmnt.options[selElmnt.selectedIndex].innerHTML;
x[i].appendChild(a);
/* For each element, create a new DIV that will contain the option list: */
b = document.createElement("DIV");
b.setAttribute("class", "select-items select-hide");
for (j = 1; j < ll; j++) {
/* For each option in the original select element,
create a new DIV that will act as an option item: */
c = document.createElement("DIV");
c.innerHTML = selElmnt.options[j].innerHTML;
c.addEventListener("click", function(e) {
/* When an item is clicked, update the original select box,
and the selected item: */
var y, i, k, s, h, sl, yl;
s = this.parentNode.parentNode.getElementsByTagName("select")[0];
sl = s.length;
h = this.parentNode.previousSibling;
for (i = 0; i < sl; i++) {
if (s.options[i].innerHTML == this.innerHTML) {
s.selectedIndex = i;
h.innerHTML = this.innerHTML;
y = this.parentNode.getElementsByClassName("same-as-selected");
yl = y.length;
for (k = 0; k < yl; k++) {
y[k].removeAttribute("class");
}
this.setAttribute("class", "same-as-selected");
break;
}
}
h.click();
});
b.appendChild(c);
}
x[i].appendChild(b);
a.addEventListener("click", function(e) {
/* When the select box is clicked, close any other select boxes,
and open/close the current select box: */
e.stopPropagation();
closeAllSelect(this);
this.nextSibling.classList.toggle("select-hide");
this.classList.toggle("select-arrow-active");
});
}
function closeAllSelect(elmnt) {
/* A function that will close all select boxes in the document,
except the current select box: */
var x, y, i, xl, yl, arrNo = [];
x = document.getElementsByClassName("select-items");
y = document.getElementsByClassName("select-selected");
xl = x.length;
yl = y.length;
for (i = 0; i < yl; i++) {
if (elmnt == y[i]) {
arrNo.push(i)
} else {
y[i].classList.remove("select-arrow-active");
}
}
for (i = 0; i < xl; i++) {
if (arrNo.indexOf(i)) {
x[i].classList.add("select-hide");
}
}
}
/* If the user clicks anywhere outside the select box,
then close all select boxes: */
document.addEventListener("click", closeAllSelect);
}
function burger() {
var hamburgers = document.querySelector(".hamburger");
var nav = document.querySelector(".nav-main");
hamburgers.addEventListener("click", function() {
this.classList.toggle("is-active");
nav.classList.toggle("is-active");
$('html, body').toggleClass("is-active");
$('#block-popsu-colloque-branding').toggleClass("is-active");
$( document ).ready(function() {
notes();
slide();
burger();
replaceAny();
select_custom();
});
}
$( document ).ready(function() {
notes();
slide();
burger();
});
})(jQuery);
@@ -13,7 +13,9 @@ regions:
header: Header
primary_menu: 'Primary menu'
highlighted: Highlighted
filter: 'Filter'
content: Content
sidebar_first: 'Sidebar first'
sidebar_second: 'Sidebar second'
footer: 'Footer'
@@ -45,7 +45,7 @@
%}
<h4>{{ label }}</h4>
<div class="d-lg-flex d-block pb-4">
<div class="d-lg-flex flex-wrap d-block pb-4">
{% for item in items %}
{{ item.content }}
{% endfor %}
@@ -45,7 +45,7 @@
%}
<h4>{{ label }}</h4>
<div class="row flex-wrap">
<div class="row flex-wrap mx-0">
{% for item in items %}
{{ item.content }}
{% endfor %}
@@ -0,0 +1,51 @@
{#
/**
* @file
* Default theme implementation for a field.
*
* To override output, copy the "field.html.twig" from the templates directory
* to your theme's directory and customize it, just like customizing other
* Drupal templates such as page.html.twig or node.html.twig.
*
* Instead of overriding the theming for all fields, you can also just override
* theming for a subset of fields using
* @link themeable Theme hook suggestions. @endlink For example,
* here are some theme hook suggestions that can be used for a field_foo field
* on an article node type:
* - field--node--field-foo--article.html.twig
* - field--node--field-foo.html.twig
* - field--node--article.html.twig
* - field--field-foo.html.twig
* - field--text-with-summary.html.twig
* - field.html.twig
*
* Available variables:
* - attributes: HTML attributes for the containing element.
* - label_hidden: Whether to show the field label or not.
* - title_attributes: HTML attributes for the title.
* - label: The label for the field.
* - multiple: TRUE if a field can contain multiple items.
* - items: List of all the field items. Each item contains:
* - attributes: List of HTML attributes for each item.
* - content: The field item's content.
* - entity_type: The entity type to which the field belongs.
* - field_name: The name of the field.
* - field_type: The type of the field.
* - label_display: The display settings for the label.
*
* @see template_preprocess_field()
*
* @ingroup themeable
*/
#}
{%
set title_classes = [
label_display == 'visually_hidden' ? 'visually-hidden',
]
%}
{% if label_hidden %}
{% for item in items %}
<h2>{{ item.content }}</h2>
{% endfor %}
{% endif %}
@@ -0,0 +1,72 @@
{#
/**
* @file
* Default theme implementation for a field.
*
* To override output, copy the "field.html.twig" from the templates directory
* to your theme's directory and customize it, just like customizing other
* Drupal templates such as page.html.twig or node.html.twig.
*
* Instead of overriding the theming for all fields, you can also just override
* theming for a subset of fields using
* @link themeable Theme hook suggestions. @endlink For example,
* here are some theme hook suggestions that can be used for a field_foo field
* on an article node type:
* - field--node--field-foo--article.html.twig
* - field--node--field-foo.html.twig
* - field--node--article.html.twig
* - field--field-foo.html.twig
* - field--text-with-summary.html.twig
* - field.html.twig
*
* Available variables:
* - attributes: HTML attributes for the containing element.
* - label_hidden: Whether to show the field label or not.
* - title_attributes: HTML attributes for the title.
* - label: The label for the field.
* - multiple: TRUE if a field can contain multiple items.
* - items: List of all the field items. Each item contains:
* - attributes: List of HTML attributes for each item.
* - content: The field item's content.
* - entity_type: The entity type to which the field belongs.
* - field_name: The name of the field.
* - field_type: The type of the field.
* - label_display: The display settings for the label.
*
* @see template_preprocess_field()
*
* @ingroup themeable
*/
#}
{%
set title_classes = [
label_display == 'visually_hidden' ? 'visually-hidden',
]
%}
{% if label_hidden %}
{% if multiple %}
<div{{ attributes }}>
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
</div>
{% else %}
{% for item in items %}
<div{{ attributes }}>{{ item.content }}</div>
{% endfor %}
{% endif %}
{% else %}
<div{{ attributes }}>
<div{{ title_attributes.addClass(title_classes) }} class="sub-title">{{ label }}</div>
{% if multiple %}
<div class="d-flex">
{% endif %}
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
{% if multiple %}
</div>
{% endif %}
</div>
{% endif %}
@@ -46,7 +46,7 @@
{% if label_hidden %}
{% if multiple %}
<div{{ attributes }}>
<div{{ attributes }} class="__slide">
{% for item in items %}
<div{{ item.attributes }}>{{ item.content }}</div>
{% endfor %}
@@ -0,0 +1,22 @@
{#
/**
* @file
* Default microdata theme implementation for a geolocation with latitude, longitude.
*
* Available variables:
* - lat: The latitude value.
* - lng: The longitude value.
*
* @see template_preprocess()
*
* @ingroup themeable
*/
#}
<span typeof="Place">
<span property="geo" typeof="GeoCoordinates">
<meta property="latitude" content="{{ lat }}">
<meta property="longitude" content="{{ lng }}">
</span>
<div id="mapid"></div>
{# <span class="geolocation-latlng">{{ lat }}, {{ lng }}</span> #}
</span>
@@ -0,0 +1,17 @@
{#
/**
* @file
* Default theme implementation for a 'form' element.
*
* Available variables
* - attributes: A list of HTML attributes for the wrapper element.
* - children: The child elements of the form.
*
* @see template_preprocess_form()
*
* @ingroup themeable
*/
#}
<form{{ attributes }}>
{{ children }}
</form>
@@ -12,8 +12,9 @@
* @ingroup themeable
*/
#}
{% spaceless %}
<select{{ attributes }}>
<select{{ attributes }} >
{% for option in options %}
{% if option.type == 'optgroup' %}
<optgroup label="{{ option.label }}">
@@ -0,0 +1,98 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
* - readmore: Flag for more state. Will be true if the teaser content of the
* node cannot hold the main body content.
* - logged_in: Flag for authenticated user status. Will be true when the
* current user is a logged-in member.
* - is_admin: Flag for admin user status. Will be true when the current user
* is an administrator.
*
* @see template_preprocess_node()
*
* @todo Remove the id attribute (or make it a class), because if that gets
* rendered twice on a page this is invalid CSS for example: two lists
* in different view modes.
*
* @ingroup themeable
*/
#}
<article{{ attributes }} class="col-12 col-md-10 mb-5">
{{ title_prefix }}
{% if label and not page %}
<h2{{ title_attributes }}>
<a href="{{ url }}" rel="bookmark">{{ label }}</a>
</h2>
{% endif %}
{{ title_suffix }}
{% if display_submitted %}
<footer>
{{ author_picture }}
<div{{ author_attributes }}>
{% trans %}Submitted by {{ author_name }} on {{ date }}{% endtrans %}
{{ metadata }}
</div>
</footer>
{% endif %}
<div{{ content_attributes }}>
{{ content }}
</div>
</article>
@@ -0,0 +1,94 @@
{#
/**
* @file
* Default theme implementation to display a node.
*
* Available variables:
* - node: The node entity with limited access to object properties and methods.
* Only method names starting with "get", "has", or "is" and a few common
* methods such as "id", "label", and "bundle" are available. For example:
* - node.getCreatedTime() will return the node creation timestamp.
* - node.hasField('field_example') returns TRUE if the node bundle includes
* field_example. (This does not indicate the presence of a value in this
* field.)
* - node.isPublished() will return whether the node is published or not.
* Calling other methods, such as node.delete(), will result in an exception.
* See \Drupal\node\Entity\Node for a full list of public properties and
* methods for the node object.
* - label: (optional) The title of the node.
* - content: All node items. Use {{ content }} to print them all,
* or print a subset such as {{ content.field_example }}. Use
* {{ content|without('field_example') }} to temporarily suppress the printing
* of a given child element.
* - author_picture: The node author user entity, rendered using the "compact"
* view mode.
* - metadata: Metadata for this node.
* - date: (optional) Themed creation date field.
* - author_name: (optional) Themed author name field.
* - url: Direct URL of the current node.
* - display_submitted: Whether submission information should be displayed.
* - attributes: HTML attributes for the containing element.
* The attributes.class element may contain one or more of the following
* classes:
* - node: The current template type (also known as a "theming hook").
* - node--type-[type]: The current node type. For example, if the node is an
* "Article" it would result in "node--type-article". Note that the machine
* name will often be in a short form of the human readable label.
* - node--view-mode-[view_mode]: The View Mode of the node; for example, a
* teaser would result in: "node--view-mode-teaser", and
* full: "node--view-mode-full".
* The following are controlled through the node publishing options.
* - node--promoted: Appears on nodes promoted to the front page.
* - node--sticky: Appears on nodes ordered above other non-sticky nodes in
* teaser listings.
* - node--unpublished: Appears on unpublished nodes visible only to site
* admins.
* - title_attributes: Same as attributes, except applied to the main title
* tag that appears in the template.
* - content_attributes: Same as attributes, except applied to the main
* content tag that appears in the template.
* - author_attributes: Same as attributes, except applied to the author of
* the node tag that appears in the template.
* - title_prefix: Additional output populated by modules, intended to be
* displayed in front of the main title tag that appears in the template.
* - title_suffix: Additional output populated by modules, intended to be
* displayed after the main title tag that appears in the template.
* - view_mode: View mode; for example, "teaser" or "full".
* - teaser: Flag for the teaser state. Will be true if view_mode is 'teaser'.
* - page: Flag for the full page state. Will be true if view_mode is 'full'.
* - readmore: Flag for more state. Will be true if the teaser content of the
* node cannot hold the main body content.
* - logged_in: Flag for authenticated user status. Will be true when the
* current user is a logged-in member.
* - is_admin: Flag for admin user status. Will be true when the current user
* is an administrator.
*
* @see template_preprocess_node()
*
* @todo Remove the id attribute (or make it a class), because if that gets
* rendered twice on a page this is invalid CSS for example: two lists
* in different view modes.
*
* @ingroup themeable
*/
#}
{% set isoClassTheme = content.field_theme[0][ '#plain_text'] %}
{% set isoClassPublication = content.field_type_de_publication[0][ '#plain_text'] %}
<article{{ attributes }} class="{{isoClassTheme}} {{isoClassPublication}} thumbnails publications">
<div{{ content_attributes }}>
<a href="{{ url }}">
<div class="d-flex">
<div class="__media">
{{content.field_ajouter_un_media}}
</div>
<div class="__wrap">
<div class="__content">
{{ label|raw }}
{{content.field_complement_d_info|raw}}
</div>
</div>
</div>
</a>
</div>
</article>
@@ -72,7 +72,8 @@
* @ingroup themeable
*/
#}
<article{{ attributes }} class=" thumbnails publications">
<article{{ attributes }} class="thumbnails publications">
<div{{ content_attributes }}>
<a href="{{ url }}">
<div class="d-flex">
@@ -62,6 +62,13 @@
<main role="main">
<a id="main-content" tabindex="-1"></a>{# link is in html.html.twig #}
{% if page.filter %}
<section class="container" role="complementary">
{{ page.filter }}
</section>
{% endif %}
<div class="layout-content">
{{ page.content }}
</div>{# /.layout-content #}
@@ -44,7 +44,7 @@
{{ attachment_before }}
{% if rows -%}
<section class="d-flex flex-wrap" >
<section class="grid d-flex flex-wrap" >
{{ rows }}
</section>
{% elseif empty -%}