Dialogues en humanité avec Drupal 8

Contenu du site des Dialogues

But du site

Le plus facile :

Présenter des pages décrivant les « Dialogues en humanité » existants sur la planète.
Chaque Dialogues animent une journée de rendez-vous années par années, et souvent plusieurs fois dans l’année et de temps en temps sur plusieurs jours.

Voir sur le site https://dialoguesenhumanite.org

Texte D’où viennent et à quoi servent les Dialogues en humanité
Pour regrouper facilement les contenus Dialogues sur plusieurs jours on peux utiliser un contenu de type « Page de livre », les livres possèdent une navigation hiérarchique intégrée.
Exemple :
Dialogues Perpète-lès-oies

  • Vendredi
  • samedi
  • dimanche
  • Personnes confirmées
  • Autre …

Le module Book (Page de livre)

Ce module permet d’organiser une série de contenus comme un livre, c’est-à-dire un ensemble homogène dans lequel chaque contenu est automatiquement relié aux autres de manière hiérarchique, avec des liens de navigation.
Ces contenus ont la caractéristique de pouvoir être organisés les uns par rapport aux autres sous la forme de chapitres, préfaces, etc.
C’est le module idéal pour créer une documentation collaborative.
Pour créer un nouveau livre, il faut tout simplement créer une nouvelle « page de livre » (book page) et, dans « structure du livre », choisir « créer un nouveau livre », ce qui va lui donner le statut de préface (niveau supérieur), c’est-à-dire en faire le point de départ (ou la première page) du nouveau livre. Vous comprendrez mieux en essayant.
En gros :
Ce sont des pages dont la hiérarchie se fait toute seule. Très pratique pour gérer les droits d'un Dialogues complet plutôt que sur chaque page.
Par exemple seule la page de garde (niveau supérieur) est liée au vocabulaire nommé « Pour quel dialogues ».

Les Dialogues étant très nombreux, un classement par continent permet de construire une navigation avec un menu plus efficace.
Utilisons un terme de vocabulaire nommé « Pour quel dialogues » pour chaque Dialogues en humanité.
Les contenus écrits sont classé dans les différents Dialogues avec ce vocabulaire.

Deux champs date sont utilisés pour créer un Agenda des Dialogues en humanité date de début Date de fin

Pour empêcher les propositions commerciales ou autre harcèlements publicitaires l’inscription est obligatoire pour proposer du contenu.

Plus compliqué :

  • Newsletter ou Les nouvelles des Dialogues dans le monde
    contenu journalistique sur les Dialogues
  • Devenir bénévole (Lyon formulaire)
  • Votre Proposition (Lyon formulaire)
  • Créer un Atelier (Lyon formulaire)
  • Contactez-nous (formulaire)

Type de Contenus des Dialogues

Chaque Dialogues animent des rendez-vous années par années, et souvent plusieurs fois dans l’année et de temps en temps sur plusieurs jours.
Pour regrouper facilement les contenus afin de les liés au jour du Dialogue on peux utiliser un contenu de type Page de livre:

  • Page de livre (Nom système : book)
    Les livres possèdent une navigation hiérarchique intégrée. Cela est utile pour des guides ou des tutoriels.
    Pour quel Dialogue* => field_dialogue (Référence à un terme Associer un Continent ou le Réseau international, puis un Dialogue)
    Titre => titre
    Corps => corps
    Document => field_document (Transférer un document pour accompagner ce contenu.)
    Galerie => field_galerie Booléen
    Image => field_image (Transférer une image pour accompagner ce contenu.)
              Exemple pour le weekend des Dialogues de Lyon
              2018 Programme Lyon 6, 7 et 8 juillet
                Vendredi 6 juillet
                Samedi 7 juillet
                Dimanche 8 juillet
                Personnes confirmées 2018
                Autre ...
    Ajoutons une fonction Agenda
    Créer un Agenda des Dialogues en humanité
    Date => Intervalle de dates début-fin (Pour une seule journée Date de fin = date de début)
    Horaire => texte <strong>Exemple:</strong> 14h à 16h 22 long
    Lieu => Texte brut Lieu de l'événement à confirmer 120 long
    Contact => texte brut long Renseignements divers, inscription, modalités pratiques, autres ... 2 lignes
  • Devenez Bénévole (Nom système : benevole)
    Devenez bénévole avec les dialogues en humanité et rejoignez une équipe motivée pour partager un vrai moment d'échange et de partage.
    Tous les talents sont les bienvenus, il vous suffit de remplir le formulaire ci-dessous.
    Nom/raison sociale/association => Titre
    Soutien sur le site des Dialogues (de 12h à 23h)* => field_benevole_soutien Sélectionnez votre(vos) jour(s) de présence(s) Liste (texte) Cases à cocher/boutons radio
    Communication et prospection avant l’évènement|Communication et prospection avant l’évènement
    Présent le Vendredi|Présent le Vendredi
    Présent le Samedi|Présent le Samedi
    Présent le Dimanche|Présent le Dimanche
    Hébergement d’intervenants (nuitée+petit déjeuner)* => field_benevole_hebergement Liste (texte) Cases à cocher/boutons radio
    Hébergement Vendredi|Hébergement Vendredi
    Hébergement Samedi|Hébergement Samedi
    Hébergement Dimanche|Hébergement Dimanche
    Nombre de bénévoles proposés => field_benevole_nombre Texte Champ texte 3 long
    Bénévole(s) proposé(s) => field_benevole_detail Texte long Zone de texte (plusieurs lignes) 1 ligne
    Description du soutien* => Corps 6 lignes
    Responsable/référent* => field_benevole_responsable Texte Champ texte 60 long
    Adresse postale* => field_benevole_adresse Texte Champ texte 60 long
    Ville Code Postal => field_benevole_ville Texte Champ texte 60 long
    Adresse courriel (du référent)* => field_benevole_courriel Texte Champ texte 60 long
    Téléphone/mobile (du référent) => field_benevole_telephone Texte Champ texte 60 long
    Remarques et souhaits particuliers => field_benevole_remarques Texte long 1 ligne
  • Votre Proposition (Nom système : proposition)
    Pour les Dialogues de Lyon, vous avez une proposition, un atelier du Sensible et Formation au Discernement, un concert ou théâtre ou rencontres artistiques pour le Temps de la Fête, un Temps de Coopération ou un témoignage de vie croisée, utilisez ce formulaire.
    Nom/raison sociale/association => Titre
    Adresse postale => field_proposition_adresse Texte long Zone de texte (plusieurs lignes) 1 ligne
    Ville Code Postal => field_proposition_ville Texte Champ texte 60 long
    Responsable / Référent => field_proposition_responsable Texte Champ texte 60 long
    Adresse courriel (du référent) => field_proposition_courriel Texte Champ texte 60 long
    Téléphone / Mobile (du référent) => field_proposition_telephone Texte Champ texte 60 long
    Temps de Dialogue* => field_proposition_temps Liste (texte) Cases à cocher/boutons radio
    Atelier|Atelier
    Agoras|Agoras
    Coopération-Action|Coopération-Action
    Témoignage|Témoignage
    Autres|Autres
    Nombre de jours de présence* => field_proposition_jour Liste (texte) Cases à cocher/boutons radio
    Vendredi|Vendredi
    Samedi|Samedi
    Dimanche|Dimanche
    Description de l'atelier découverte ou sujet intervention* => Corps 6 lignes
    Intervenant(s) animateur(s) proposé(s) => field_proposition_intervenant    Texte long
  • Créer un Atelier (Nom système : atelier)
    Proposés par de multiples associations, artistes ou scientifiques, il s'agira d'amorcer la réflexion par le sensible au travers d'ateliers artistiques, comportementaux, ludiques... parce qu'ils n'existent pas qu'une seule forme de langage, ces ateliers accueillent tous ceux qui veulent échanger, s'enrichir autrement que par le seul discours et se former au discernement: autant d'invitations à la distraction intelligente, pour tous les goûts et les âges.
    Nom de l'atelier => Titre
    Thème et Jour Atelier* => field_atelier_theme_et_jour Référence à un terme Term reference tree <b>Sélectionner le Thème, ainsi que le Jour.</b>
    Horaire de l'atelier => field_atelier_horaire Texte <strong>Exemple:</strong> 14h à 16h 22 long
    Description de l'atelier => corps <b>Un résumé court et précis.</b>4 lignes maximum
  • Contactez-nous (Nom système : contact)
    Vous pouvez nous laisser un message en utilisant ce formulaire de contact.
    ATTENTION: Ce site est un WIKI, votre formulaire sera visible par tous !
    Objet* => titre
    Message* => Corps 6 lignes
  • Créer un Compte-Rendu (Nom système : compte_rendu)
    Rapport fait sur un événement, une situation, un ouvrage, la séance d'une assemblée, etc
    Pour quel Dialogue* => field_dialogue Référence à un terme Associer un Continent (ou le Réseau international), puis un Dialogue
    Titre => titre
    Corps => corps
    Document => field_document (Transférer un document pour accompagner ce contenu.)
    Image => field_image (Transférer une image pour accompagner ce contenu.)
  • Créer une Page de base (Nom système : page)
    Utilisez les pages de base pour votre contenu statique, tel que la page 'Qui sommes-nous'.
    Titre => titre
    Corps => corps
    Document => field_document (Transférer un document pour accompagner ce contenu.)
    Image => field_image (Transférer une image pour accompagner ce contenu.)

Contenus Specifiques

Créer une Newsletter (Nom système : simplenews)
A newsletter issue to be sent to subscribed email addresses.
Newsletter category => field_simplenews_term Référence à un terme
Titre => titre
Corps => corps
Document => field_document (Transférer un document pour accompagner ce contenu.)
Image => field_image (Transférer une image pour accompagner ce contenu.)

Installation Drupal 8 Multisite

Après décompression du dossier Drupal 8, renommer dans le dossier sites, le fichier example.sites.php en sites.php
ajouter à la fin du fichier la déclaration suivant pour un site avec le nom de domaine: dialoguesenhumanite.org
$sites['dialoguesenhumanite.org'] = 'dialoguesenhumanite.org';

Créer le dossier sites/dialoguesenhumanite.org
ainsi que le sous dossiersites/dialoguesenhumanite.org/files/translations
télécharger le fichier de traduction à l'adresse: https://localize.drupal.org/download
exemple: drupal-8.x.x.fr.po
et placé le dans un dossier translations

Puis lancer l'installation

Régler le chemin pour le stockage des médias
Administration >> Configuration >> Média >> Système de fichiers
/admin/config/media/file-system

Dossier temporaire
sites/tmp
Répertoire des traductions de l'interface (ne pas oublier de déplacer physiquement le dossier)
sites/translations
Chemin du système privé de fichier
dans le fichier setting.php (attention aux droits d'ecriture du fichier et du repertoire)
ligne 554 $settings['file_private_path'] = 'sites/mondomaine/files/private';

Apparence

Création d'un sub-theme de Bootstrap et positionnement des blocs

Pour utiliser un logo.png
Installer ce code dans le repertoire du theme config\install fichier SUB-THEME.settings.yml

logo:
  path: 'sites/DOMAINE/themes/SUB-THEME/logo.png'
  use_default: false

Activer les extentions utiles au projet.

Drupal 8 introduit le concept de modules expérimentaux. Ce sont des modules fournis à des fins de test, mais qui ne sont pas encore totalement pris en charge.

Modules du Coeur

X Activity Tracker
Active le suivi du contenu récent pour les utilisateurs.

X Book
Permet aux utilisateurs de créer et d'organiser des contenus associés dans une structure.

X Inline Form Errors
Place les messages d'erreur adjacents aux entrées de formulaire, pour une utilisation et une accessibilité améliorées.

X Responsive Image
Fournit un formateur d'image et une cartographie des points de rupture pour afficher des images adaptatives en utilisant l'élément HTML5 picture.

Types de champs

X Datetime Range
Fournit la possibilité de stocker des dates de fin.

Modules complémentaires = Extension

Admin Toolbar
Provides a drop-down menu interface to the core Drupal Toolbar.
https://www.drupal.org/project/admin_toolbar

Admin Toolbar Extra Tools
Adds menu links to the Admin Toolbar.

Admin Toolbar Links Access Filter
Provides a workaround for the common problem that users with 'Use the administration pages and help' permission see menu links they don't have access permission for.

Module filter
Filter the modules list.
https://www.drupal.org/project/module_filter

Backup and Migrate
Backup the Drupal database and files or migrate them to another environment.
https://www.drupal.org/project/backup_migrate
Creer un nouveau profil
admin/config/development/backup_migrate/settings
modifier le schedule pour réaliser une sauvegarde par jour et garder 31 sauvegarde

Diff
Shows changes between content revisions.
https://www.drupal.org/project/diff
Administration >> Configuration >> Développement >> Backup and Migrate
admin/config/content/diff/general
Déplacer Unified fields en haut de liste

Content Lock
Prevents multiple users from trying to edit a content entity simultaneously to prevent edit conflicts.
Content Lock Timeout
Provides mechanisms for automatically unlocking nodes that have been locked for a certain length of time.
https://www.drupal.org/project/content_lock
Administration >> Configuration >> Rédaction de contenu >> Content lock settings >> Général
admin/config/content/content_lock

Search 404
Automatically search for the keywords in URLs that result in 404 errors and show results instead of Page-Not-Found.
https://www.drupal.org/project/search404
Administration >> Configuration >> Recherche et metadonnées >> Search 404 settings
admin/config/search/search404
Activer X Jump directly to the search result when there is only one result
Activer X Use OR between keywords when searching
Activer X Use auto-detection of keywords from search engine referer

Honeypot
Mitigates spam form submissions using the honeypot method.
https://www.drupal.org/project/honeypot
Administration >> Configuration >> Rédaction de contenu >> Honeypot configuration
admin/config/content/honeypot
Activer les protections et mettre le time limit a 9

Back To Top
Back To Top adds a button that hovers in the bottom of your screen and allow users to smoothly scroll up the page using jQuery.
https://www.drupal.org/project/back_to_top
Administration >> Configuration >> Interface utilisateur >> Back To Top
admin/config/user-interface/back_to_top
Activer Prevent on administration pages and node edit

Bootstrap Library
Register Boostrap as a library by installing files in libraries/bootstrap
https://www.drupal.org/project/bootstrap_library

Utiliser avec un sous-thème Bootstrap pour avoir les fichiers CDN en local
Télécharger  la librairie https://getbootstrap.com/docs/3.3/getting-started/
Décompresser le contenu de bootstrap-3.3.7-dist.zip dans libraries/bootstrap

Administration >> Configuration >> Développement >> Boostrap Library
admin/config/development/bootstrap_library
Sélectionner Load locally
Activer pour les thèmes Bootstrap et bootstrap_dialogues
Séléctionner
X CSS files
X Javascript files

Copier dans le dossier css du sous-thème le fichier css/3.3.7/overrides.min.css du thème principal Bootstrap
Dans le fichier du sous-thème bootstrap_dialogues.libraries.yml activer le css css/overrides.min.css: {}

Dans le sous-thème dans Avancé / CDN Provider choisir Aucun

Database Optimization
Optimizing the site database.
https://www.drupal.org/project/optimizedb
Administration >> Configuration >> Développement >> Database Optimization
admin/config/development/optimizedb
Activer l'optimisation à la fréquence souhaité

Entity Update
Update Drupal 8 Entity schema
Entity update tests
Tests for the module Entity update. For the test purpose only.
https://www.drupal.org/project/entity_update
Administration >> Configuration >> Développement > Entity Update System >> Run Entity update
admin/config/development/entity-update/exec
Super util pour corriger error Entity

Colorbox
A light-weight, customizable lightbox plugin for jQuery.
https://www.drupal.org/project/colorbox
Administration >> Configuration >> Média >> Colorbox settings
admin/config/media/colorbox
X Personnalisé
Opacity 0.3
Max width et Max height 98%
Enlever Fixe et Scrollbars
Activer Slideshow Setting
Desactiver Slideshow autostart
Installer la librairie http://www.jacklmoore.com/colorbox/ dans libraries/colorbox

Colorbox Inline
Enabled the "colorbox inline" functionality for Drupal 8.
https://www.drupal.org/project/colorbox_inline
Utiliser pour faire fonctionner le module insert

Insert
Assists in inserting files, images, or other media into the body field or other text areas.
https://www.drupal.org/project/insert
Administration >> Configuration >> Rédaction de contenu >> Insert module configuration
admin/config/content/insert
Activer pour HTML simple et HTML complet
Additional CSS Classes colorbox

Geolocation - Leaflet
Leaflet map provider
Geolocation
Provides a simple geolocation field type to store and display location data (lat, lng).
Geolocation - Address
Address integration
Geolocation - Demo
Example views and pages for some more common use cases
Geolocation - Geofield Integration
Use geofield in CommonMap views style
Geolocation - Google Maps API
Google Maps integration
Geolocation - Google Maps API - Demo
Example views and pages for some more common use cases
Geolocation - Google Places API
Make sure to follow the Places API Policies.
Geolocation - Search API Integration
Use search API in CommonMap views style
https://www.drupal.org/project/geolocation
Création de field_geolocation dans les contenus
Puis à utiliser avec Views

Dans taxonomie
Administration >> Structure >> Taxonomie
admin/structure/taxonomy
Ajouter un vocabulaire Dialogues
Description Dialogues dans le monde
puis Gérer les champs

Ajouter un champ image
Étiquette Logo Dialogue
Texte d'aide Transférer une image Logo pour ce Dialogue 460 x 340
Image par défaut
Choisir l'image
L'image sera sauvée dans le dossier files/default_images
X Enable File (Field) Paths
Chemin du fichier medias/logo-dialogues
File Path Options
X Cleanup using Pathauto
X Transliterate
File Name Options
X Cleanup using Pathauto
X Transliterate
Résolution maximale de l'image 460 X 340
Taille maximale de transfert 5 MB
X Activer le champ Alt
sans le Champ Alt requis
Gérer l'affichage du formulaire et Gérer l'affichage placer Logo Dialogue en haut de liste

Ajouter un champ Geolocation
Étiquette Localisation du Dialogue
X Champ requis
Valeur par Défaut
Latitude 45.779436
Longitude 4.847546

Enfin créer les termes suivant avec le logo et la géo-localisation correspondante

  • Afrique
    • Addis Abeba (Ethiopia)
    • Dakar (Sénégal)
    • Togoville, Agbodrafo et Lomé (Togo)
    • Porto-Novo (Benin)
    • Rabat (Maroc)
  • Amérique
    • Foz do Iguaçu ITAIPU (Brasil)
    • Salvador Bahia (Brasil)
  • Asie
    • Auroville (India)
    • Bangalore (India)
    • Chandigarh Himalaya (India)
  • Europe
    • Berlin (Germany)
    • Bruxelles (Belgique)
    • Dialogues en humanité L'association
    • Festival Chemin Faisant
    • Grand parc de Miribel-Jonage
    • La Chimère Citoyenne Grenoble (France)
    • Lyon La Duchère (France)
    • Lyon (France)
    • Saint-Ouen (France)
    • Voices From Citizens Of Europe
  • Océanie
    • Réseau international
    • Citoyens de la Terre unissons nous!
    • Réseau des Dialogues
    • Aide pour Dialogues

Taxonomy Menu
Embed a taxonomy tree into a menu
https://www.drupal.org/project/taxonomy_menu
Administration >> Structure >> Taxonomy menu Configuration
admin/structure/taxonomy_menu
Add Taxonomy menu Dialogues
Choisir le vocabulaire Dialogues
Sélectionner le menu Main navigation ou Navigation principale
X All menus entries expanded
avec une Profondeur de 2

Dans la configuration du bloc Main navigation ou Navigation principale
Administration >> Structure >> Mise en page des blocs >> Configurer le bloc

Niveaux de Menu / Niveau de visibilité initial = 1
Nombre de niveaux à afficher = 2

Dans la configuration du menu Main navigation ou Navigation principale
Administration >> Structure >> Menus >> Modifier le menu Main navigation
Vérifier que chaque Lien du Menu qui possède un sous-menu est bien la propriété Afficher déplié sélectionnée

Image resize filter
Resizes images based on width and height attributes and optionally link to the original image
Administration >> Configuration >> Rédaction de contenu >>Formats de texte et éditeurs
admin/config/content/formats

Mettre à jour dans les formats de texte utilisants ckeditor
Administration >> Configuration >> Rédaction de contenu >> Formats de texte et éditeurs
admin/config/content/formats

Developpement module ckeditor_moonocolor
pour installer le skin monocolor 4.5.1 et activer l'affichage des blocs

function moonocolor_editor_js_settings_alter(array &$settings) {
  if (empty($settings['editor']['formats']))
    return;
  foreach ($settings['editor']['formats'] as $format => $setting) {
    // http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-skin
    // When setting config.skin it is possible to specify custom skin location after a comma.
    if ($setting['editor'] == 'ckeditor')
      $settings['editor']['formats'][$format]['editorSettings']['skin'] = 'moonocolor,' . base_path() . drupal_get_path('module', 'moonocolor') . '/js/skins/moonocolor/';
      $settings['editor']['formats'][$format]['editorSettings']['startupOutlineBlocks'] = true;
  }
}

File (Field) Paths
Adds improved Token based file sorting and renaming functionalities.
https://www.drupal.org/project/filefield_paths
Permet de classer les medias envoyés sur le site dans des dossiers spécifiques
Dans le vocabulaire Dialogue l'image "Logo Dialogue" est classée avvec le chemin default_images dans un dossier commun nommer "medias"
medias/piedpage

Token
Provides a user interface for the Token API and some missing core tokens.
https://www.drupal.org/project/token

Chaos tools
Provides a number of utility and helper APIs for Drupal developers and site builders.
Chaos tools blocks
Provides improvements to blocks that will one day be added to Drupal core.
Chaos tools Views
A set of improvements to the core Views code that allows for greater control over Blocks.
https://www.drupal.org/project/ctools

Pathauto
Provides a mechanism for modules to automatically generate aliases for the content they manage.
https://www.drupal.org/project/pathauto
Administration >> Configuration >> Recherche et metadonnées >> Alias d'URL >> Patterns
admin/config/search/path/patterns
Ajouter les patterns de base:
all content    [node:nid]/[node:title]                              Contenu
all taxonomy [term:vocabulary]/[term:tid]/[term:name] Terme de taxonomie
user             [user:account-name]/[user:uid]                 Utilisateur

Publish Content
Adds a 'Publish' or 'Unpublish' link on the node edit/view pages, and a 'Publish Link' field if the Views module is enabled.
https://www.drupal.org/project/publishcontent

View Unpublished
Select which roles should be able to see unpublished nodes.
https://www.drupal.org/project/view_unpublished

 

A verifier

Libraries
Allows version-dependent and shared usage of external libraries.

Simple timeline
Provide a views style for displaying content in a vertical timeline

User protect
Allows admins to protect users from being edited or cancelled, on a per-user basis.

Masonry API
Provides an API for integrating the jQuery Masonry plugin with Drupal.

Masonry Views
Provides a Views plugin for displaying content in a Masonry layout.

Permissions by Term
Restricts access to nodes and taxonomy terms via user to term relations.
Permissions by Entity
Extends the functionality of Permissions By Term to be able to limit the selection of specific taxonomy terms by users or roles for an entity.

Role delegation
Allows site administrators to grant some roles the authority to assign selected roles to users.

Menu Per Role
Allows restricting access to menu items per role.

Création de contenu