Browse Source

filter && fotter

Kevin 3 years ago
parent
commit
e9761aa6ca
29 changed files with 923 additions and 104 deletions
  1. 2 0
      composer.json
  2. 129 1
      composer.lock
  3. 3 0
      web/sites/development.services.yml
  4. 72 7
      web/themes/custom/popsu_colloque/css-compiled/index.css
  5. 0 0
      web/themes/custom/popsu_colloque/css-compiled/index.min.css
  6. 44 0
      web/themes/custom/popsu_colloque/css/components/footer/footer.scss
  7. 89 0
      web/themes/custom/popsu_colloque/css/components/forms/filter.scss
  8. 0 8
      web/themes/custom/popsu_colloque/css/components/header/header.scss
  9. 6 2
      web/themes/custom/popsu_colloque/css/components/layout.scss
  10. 14 0
      web/themes/custom/popsu_colloque/css/components/leaflet/custom_leaflet.scss
  11. 15 3
      web/themes/custom/popsu_colloque/css/components/thumbnails/thumbnails.scss
  12. 2 1
      web/themes/custom/popsu_colloque/css/index.scss
  13. 1 1
      web/themes/custom/popsu_colloque/css/typography.scss
  14. 175 75
      web/themes/custom/popsu_colloque/js/script.js
  15. 2 0
      web/themes/custom/popsu_colloque/popsu_colloque.info.yml
  16. 1 1
      web/themes/custom/popsu_colloque/template/fields/field--node--field-bibliographie.html.twig
  17. 1 1
      web/themes/custom/popsu_colloque/template/fields/field--node--field-publications.html.twig
  18. 51 0
      web/themes/custom/popsu_colloque/template/fields/field--node--title--informations-pratiques.html.twig
  19. 72 0
      web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-file--nous-contacter.html.twig
  20. 0 0
      web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-file--slide-metropoles-partenaires.html.twig
  21. 1 1
      web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-file--slide-partenaires.html.twig
  22. 22 0
      web/themes/custom/popsu_colloque/template/fields/geolocation-latlng-formatter.html.twig
  23. 17 0
      web/themes/custom/popsu_colloque/template/forms/form.html.twig
  24. 2 1
      web/themes/custom/popsu_colloque/template/forms/select.html.twig
  25. 98 0
      web/themes/custom/popsu_colloque/template/node/node--informations-pratiques--full.html.twig
  26. 94 0
      web/themes/custom/popsu_colloque/template/node/node--publications--isotope-mode.html.twig
  27. 2 1
      web/themes/custom/popsu_colloque/template/node/node--thumbnails-publications.html.twig
  28. 7 0
      web/themes/custom/popsu_colloque/template/page.html.twig
  29. 1 1
      web/themes/custom/popsu_colloque/template/views/views-view--publications.html.twig

+ 2 - 0
composer.json

@@ -29,6 +29,7 @@
         "drupal/geofield": "^1.15",
         "drupal/geofield_map": "^2.66",
         "drupal/geolocation": "^3.2",
+        "drupal/leaflet": "^1.41",
         "drupal/linkit": "^4.3",
         "drupal/mediteran": "^1.10",
         "drupal/metatag": "^1.13",
@@ -43,6 +44,7 @@
         "drupal/video_embed_field": "^2.4",
         "drupal/views_url_path_arguments": "^1.1",
         "drush/drush": "^10.2",
+        "geocoder-php/chain-provider": "^4.2",
         "geocoder-php/google-maps-provider": "^4.5",
         "sierrafayad/osm-pbf": "^1.0",
         "twbs/bootstrap": "4.5.0"

+ 129 - 1
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "915e6ec916535b32ce8892a6234cb992",
+    "content-hash": "93ffc8bc2bab9aea79ee40fc534d99f1",
     "packages": [
         {
             "name": "asm89/stack-cors",
@@ -3514,6 +3514,78 @@
                 "source": "https://git.drupalcode.org/project/jquery_ui_droppable"
             }
         },
+        {
+            "name": "drupal/leaflet",
+            "version": "1.41.0",
+            "source": {
+                "type": "git",
+                "url": "https://git.drupalcode.org/project/leaflet.git",
+                "reference": "8.x-1.41"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://ftp.drupal.org/files/projects/leaflet-8.x-1.41.zip",
+                "reference": "8.x-1.41",
+                "shasum": "b947380e846a85bc2ddb378c6a451400dd614fe2"
+            },
+            "require": {
+                "drupal/core": "^8.8 || ^9",
+                "drupal/geofield": "^1.0"
+            },
+            "type": "drupal-module",
+            "extra": {
+                "drupal": {
+                    "version": "8.x-1.41",
+                    "datestamp": "1595068845",
+                    "security-coverage": {
+                        "status": "covered",
+                        "message": "Covered by Drupal's security advisory policy"
+                    }
+                }
+            },
+            "notification-url": "https://packages.drupal.org/8/downloads",
+            "license": [
+                "GPL-2.0+"
+            ],
+            "authors": [
+                {
+                    "name": "Italo Mairo",
+                    "homepage": "https://www.drupal.org/u/itamair",
+                    "role": "Maintainer"
+                },
+                {
+                    "name": "Peter Vanhee (pvhee)",
+                    "homepage": "https://www.drupal.org/u/pvhee",
+                    "role": "Maintainer"
+                },
+                {
+                    "name": "Rik de Boer (RdeBoer)",
+                    "homepage": "https://www.drupal.org/u/rdeboer",
+                    "role": "Maintainer"
+                },
+                {
+                    "name": "Gabriel Carleton-Barnes (gcb)",
+                    "homepage": "https://www.drupal.org/u/gcb",
+                    "role": "Maintainer"
+                },
+                {
+                    "name": "Lev Tsypin (levelos)",
+                    "homepage": "https://www.drupal.org/u/levelos",
+                    "role": "Maintainer"
+                },
+                {
+                    "name": "Sean Larkin (seanberto)",
+                    "homepage": "https://www.drupal.org/u/seanberto",
+                    "role": "Maintainer"
+                }
+            ],
+            "description": "Integration with the Leaflet map scripting library.",
+            "homepage": "https://www.drupal.org/project/leaflet",
+            "support": {
+                "source": "https://git.drupalcode.org/project/leaflet",
+                "issues": "https://www.drupal.org/project/issues/leaflet"
+            }
+        },
         {
             "name": "drupal/linkit",
             "version": "4.3.0",
@@ -4940,6 +5012,62 @@
             ],
             "time": "2020-05-23T09:10:21+00:00"
         },
+        {
+            "name": "geocoder-php/chain-provider",
+            "version": "4.2.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/geocoder-php/chain-provider.git",
+                "reference": "f9f8d33e958eb795c80a86a98064793d2a1084aa"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/geocoder-php/chain-provider/zipball/f9f8d33e958eb795c80a86a98064793d2a1084aa",
+                "reference": "f9f8d33e958eb795c80a86a98064793d2a1084aa",
+                "shasum": ""
+            },
+            "require": {
+                "php": "^7.2",
+                "psr/log": "^1.0",
+                "willdurand/geocoder": "^4.0"
+            },
+            "provide": {
+                "geocoder-php/provider-implementation": "1.0"
+            },
+            "require-dev": {
+                "nyholm/nsa": "^1.1",
+                "php-http/curl-client": "^1.7",
+                "php-http/message": "^1.0",
+                "phpunit/phpunit": "^7.5"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "4.0-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Geocoder\\Provider\\Chain\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "William Durand",
+                    "email": "william.durand1@gmail.com"
+                }
+            ],
+            "description": "Geocoder chain adapter",
+            "homepage": "http://geocoder-php.org/Geocoder/",
+            "time": "2020-07-04T13:18:10+00:00"
+        },
         {
             "name": "geocoder-php/common-http",
             "version": "4.3.0",

+ 3 - 0
web/sites/development.services.yml

@@ -4,6 +4,9 @@
 # 'example.settings.local.php' file, which sits next to this file.
 parameters:
   http.response.debug_cacheability_headers: true
+  twig.config:
+    debug: false
+    auto_reload: true
 services:
   cache.backend.null:
     class: Drupal\Core\Cache\NullBackendFactory

File diff suppressed because it is too large
+ 72 - 7
web/themes/custom/popsu_colloque/css-compiled/index.css


File diff suppressed because it is too large
+ 0 - 0
web/themes/custom/popsu_colloque/css-compiled/index.min.css


+ 44 - 0
web/themes/custom/popsu_colloque/css/components/footer/footer.scss

@@ -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;

+ 89 - 0
web/themes/custom/popsu_colloque/css/components/forms/filter.scss

@@ -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);
+}

+ 0 - 8
web/themes/custom/popsu_colloque/css/components/header/header.scss

@@ -163,14 +163,6 @@ header{
   }
 }
 
-
-.site_setting_entity{
-  img{
-    width: 50%;
-    height: auto;
-  }
-}
-
 header.front{
   #block-popsu-colloque-branding{
     width: 100%;

+ 6 - 2
web/themes/custom/popsu_colloque/css/components/layout.scss

@@ -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;

+ 14 - 0
web/themes/custom/popsu_colloque/css/components/leaflet/custom_leaflet.scss

@@ -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;
+    }
+  }
+}

+ 15 - 3
web/themes/custom/popsu_colloque/css/components/thumbnails/thumbnails.scss

@@ -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);
+      }
+
     }
   }
 }

+ 2 - 1
web/themes/custom/popsu_colloque/css/index.scss

@@ -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;

+ 1 - 1
web/themes/custom/popsu_colloque/css/typography.scss

@@ -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
web/themes/custom/popsu_colloque/js/script.js

@@ -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);

+ 2 - 0
web/themes/custom/popsu_colloque/popsu_colloque.info.yml

@@ -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'
+  

+ 1 - 1
web/themes/custom/popsu_colloque/template/fields/field--node--field-bibliographie.html.twig

@@ -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 %}

+ 1 - 1
web/themes/custom/popsu_colloque/template/fields/field--node--field-publications.html.twig

@@ -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 %}

+ 51 - 0
web/themes/custom/popsu_colloque/template/fields/field--node--title--informations-pratiques.html.twig

@@ -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 %}

+ 72 - 0
web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-file--nous-contacter.html.twig

@@ -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 %}

+ 0 - 0
web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-les-logos-partenaires.html.twig → web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-file--slide-metropoles-partenaires.html.twig


+ 1 - 1
web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-testmljbh.html.twig → web/themes/custom/popsu_colloque/template/fields/field--site-setting-entity--field-file--slide-partenaires.html.twig

@@ -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 %}

+ 22 - 0
web/themes/custom/popsu_colloque/template/fields/geolocation-latlng-formatter.html.twig

@@ -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>

+ 17 - 0
web/themes/custom/popsu_colloque/template/forms/form.html.twig

@@ -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>

+ 2 - 1
web/themes/custom/popsu_colloque/template/forms/select.html.twig

@@ -12,8 +12,9 @@
  * @ingroup themeable
  */
 #}
+
 {% spaceless %}
-  <select{{ attributes }}>
+  <select{{ attributes }} >
     {% for option in options %}
       {% if option.type == 'optgroup' %}
         <optgroup label="{{ option.label }}">

+ 98 - 0
web/themes/custom/popsu_colloque/template/node/node--informations-pratiques--full.html.twig

@@ -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>

+ 94 - 0
web/themes/custom/popsu_colloque/template/node/node--publications--isotope-mode.html.twig

@@ -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>

+ 2 - 1
web/themes/custom/popsu_colloque/template/node/node--thumbnails-publications.html.twig

@@ -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">

+ 7 - 0
web/themes/custom/popsu_colloque/template/page.html.twig

@@ -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 #}

+ 1 - 1
web/themes/custom/popsu_colloque/template/views/views-view--publications.html.twig

@@ -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 -%}

Some files were not shown because too many files changed in this diff