73
Global Training Day Animé par Romain JARRAUD

Global Training Day Paris - Drupal 8

Embed Size (px)

Citation preview

Page 1: Global Training Day Paris - Drupal 8

Global Training

DayAnimé par Romain JARRAUD

Page 2: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Stagiaires et formateur

•Stagiaires •Nom et profil ?

•Comment avez-vous découvert Drupal ?

•Qu’attendez-vous de cette formation ?

•Formateur (Romain JARRAUD) •Développeur web depuis 1998.

•A commencé par faire du développement Drupal, et aujourd’hui fait surtout de l’animation de formations et du consulting Drupal.

2

Page 3: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Sommaire

•Présentation de Drupal.

•Cas d’utilisation.

•CMS et framework.

•MVC.

•Démonstration.

3

Page 4: Global Training Day Paris - Drupal 8

© 2007-2015

Présentation de Drupal

Jargon et usages de Drupal

4

Page 5: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Connaissez-vous Drupal ?

5

0 €

2 001

676

37 296

2%Made in

Noeud (node)

Module

Thème

Taxonomie

Page 6: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Drupal

•29 800 modules : réseaux sociaux, e-commerce, SEO, gestion de contenus, médias, SSO...

•2 115 thèmes.

•904 distributions.

•1 157 400 utilisateurs enregistrés.

•Plus grande communauté open-source au monde (2 fois plus de développeurs que Linux).

6

Page 7: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-20157

Page 8: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Positionnement de Drupal

•WordPress++ •Création/gestion d’un site “à la souris”, sans développement.

•Gestion de contenu élaborée (types de contenu personnalisés, classification, workflow...).

•Écosystème de modules pour étendre ou modifier les fonctionnalités de base.

•Possibilité de personnalisations avancées, aussi bien graphiques que fonctionnelles.

•Content Management Framework (CMF) •Un cadre applicatif permettant de créer des applications web

de gestion de contenu.

•Un ensemble d’APIs (SGBD, formulaires, contrôle d’accès...).

•Une architecture modulaire extensible.

8

Page 9: Global Training Day Paris - Drupal 8

© 2007-2015

Cas d’utilisation

9

Page 10: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201510

Page 11: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Média et presse

11

Page 12: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201512

Page 13: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Institutions

13

Page 14: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201514

Page 15: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201515

Page 16: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201516

Page 17: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Gouvernements

17

Page 18: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201518

Page 19: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

CAC 40

19

Page 20: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201520

Page 21: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201521

Page 22: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201522

Page 23: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Utilisation

23

Page 24: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Evolution

24

BLOG CMF+ Plateforme  d’applica8on

CMS CMF CMF+

Page 25: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

drupal.org

•Ressources : •Modules, thèmes, distributions

•Guides

•Documentations

•Hébergement

•Livres

•Site participatif alimenté par la communauté.

25

Page 26: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Evénements

•DrupalCon 3 fois par an (Europe, Etats-Unis et Amérique du Sud/Océanie).

•DrupalCamp nationaux dans de nombreux pays.

•Drupal Dev Days pour les développeurs.

•MeetUp : rencontres communautaires avec présentation.

•Drink ’n’ Drupal : rencontre informelle.

26

Page 27: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Acquia

•Société américaine fondée par Dries Buytaert.

•Emploi de nombreux contributeurs actifs.

•Promotion de Drupal.

•Support, hébergement, optimisation.

•Certification.

•Ce n’est pas l’éditeur officiel !

27

Page 28: Global Training Day Paris - Drupal 8

© 2007-2015

Petit tour rapide de Drupal 8

28

Page 29: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Drupal 8 vs Drupal 7•Back-office réorganisé.

•Structure des fichiers/dossiers repensée.

•Intégration de nombreux modules : Views, Entity Reference, Date, Email...

•Wysiwyg, Inline Editing, Traduction, Responsive Design, Navbar...

•Blocs «maison».

•Système de thème revu : Twig, templates uniquement, preprocess.

•CMI : déploiement «facile».

•POO : développement orienté object (Injection de dépendance, PSR-4, interface...).

29

Page 30: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Drupal 8 vs Drupal 7 Modules supprimés•Blog (drupal.org/project/blog)

•Dashboard (maintenant Homebox drupal.org/project/homebox)

•Overlay

•Open ID

•Poll (drupal.org/project/poll)

•PHP Filter

•Trigger (utiliser Rules)

•Profile (utiliser Profile2)

•Translation (maintenant Entity Translation)

•XML-RPC

30

Page 31: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Drupal 8 vs Drupal 7 Modules intégrés•Views

•Administration Views

•Module Filter

•CKeditor

•Display Suite

•Entity View Mode

•Entity Reference

•Entity Translation

•Date

•E-mail

•Link

•Picture (Responsive Image)

•Breakpoint

•Features (sur un même site)

31

•Insert (inline image)

•Services et RESTws

•String Override

•Bean (Bloc comme entité)

•Telephone

•Transliteration

•User Image Field

•Views Bulk Operation (VBO)

•Webform (pour les formulaires de contact)

•Localization Update (l10n Update)

•Administration Language

•Fallback Language Negotiation

Page 32: Global Training Day Paris - Drupal 8

© 2007-2015

Philosophie

32

Page 33: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Modularité

33

Drupal Joomla Wordpress

Page 34: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Drupal

•Gestion des utilisateurs.

•Gestion du contenu généré.

•Séparation fonctionnel / présentation.

•Modèle MVC.

•Sécurité (formulaires, XSS, SQL injection…)

•Drupal est de plus en plus une plateforme de développement. Ce n’est plus un simple système de création de blog (on peut quand même !).

34

Page 35: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Modules maison étendant des modules contrib

Applications tierce-partie

Modules contrib

CMS et Framework

35

Drupal

Modules maison

Page 36: Global Training Day Paris - Drupal 8

© 2007-2013© 2007-2015

Etendre Drupal en installant des

Modules

36

Page 37: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Qu’est-ce qu’un module ?

•D’autres logiciels utilisent d’autres mots pour parler de "module" : plugin, add-on, composant, extension...

•Un module permet d’ajouter une ou plusieurs fonctionnalités à Drupal : •Module Forum - Ajoute un forum

•Module Simplenews - Ajoute une newsletter

•Module Google Analytics - Connexion au service de Google

•Module LDAP - Ajoute l’identification via un annuaire LDAP

•... (il existe des milliers de modules)

•Chaque module possède plusieurs versions correspondant aux versions majeures de Drupal (7, 8..). La version 8.x d’un module n’est compatible qu’avec la version 8.x de Drupal. Idem pour la version 5.x, 6.x...

37

Page 38: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Où trouver des modules ?

•On trouve des modules à plusieurs endroits : •Modules natifs (ou core), livrés avec Drupal.

•Modules contrib, hébergés sur drupal.org.

•Modules maison, développés pour un besoin ou projet spécifique.

•Comment chercher/comparer les modules ? •Pour chercher un module contrib, taper sur Google :

motclé drupal ou bien : motclé site:drupal.org/project/

•Pour comparer les modules contrib, regarder le nombre d’installations, le statut la dernière mise à jour, et surtout... tester le module vous-même !

38

Page 39: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Flexibilité

•Les modules existants couvrent un large choix de fonctionnalités.

•De nombreuses APIs permettent de s’intégrer facilement à Drupal et de développer ses propres fonctionnalités.

•Certains modules sont extensibles en proposant leurs propres APIs.

39

Page 40: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Intégration

•1277 modules destinés à intégrer des solutions tiers partie (Gmap, CAS, LDAP…).

•Web Services : diffusion multi canal.

40

Page 41: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Intégration

41

Page 42: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201542

http://fr.slideshare.net/swentel/the-state-of-drupal-8-drupalcamp-gent

Page 43: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Intégration

43

Third party services http://drupal.org/project/salesforce http://drupal.org/project/adsense http://drupal.org/project/site_verify http://drupal.org/project/acquia_connector http://drupal.org/project/opencalais http://drupal.org/project/alfresco http://drupal.org/project/millennium Media http://drupal.org/project/media_youtube http://drupal.org/project/media_vimeo http://drupal.org/project/flickr http://drupal.org/project/media_flickr !JQuery libraries!!http://drupal.org/project/superfish!http://drupal.org/project/jcarousel!http://drupal.org/project/addtoany!!

Social!!http://drupal.org/project/twitter!http://drupal.org/project/google_plusone!http://drupal.org/project/mailchimp!http://drupal.org/project/fb!!Mapping!!http://drupal.org/project/geofield!http://drupal.org/project/gmap!http://drupal.org/project/geocoder!http://drupal.org/project/openlayers!http://drupal.org/project/location!!Visit !!http://drupal.org/project/modules!

!for details on third party integration !771 modules available for Drupal 7!

Page 44: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

MVC

•Contenus : noeuds, utilisateurs.

•Vues : modules Views.

•Contrôler : Drupal et modules.

44

Page 45: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Content Management System

45

Drupal et modules

Utilisateurs Webmaster,

contributeurs,...

Contenus Articles,

documents,...

Thème

Drupal et modulesDrupal et modulesDrupal et modulesPrésentation : pages, blocs

Webmaster

Contributeurs

Page 46: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Page Web vs Contenu

•Site statique : collection de pages dont le contenu n’est que peu modifié dans le temps.

•Site dynamique : le contenu évolue sans cesse. Le site ou l’application gère des données (utilisateurs, articles...) en définissant le workflow de publication et l’affichage des différentes pages.

•Il faut voir aujourd’hui un site web comme de la gestion de contenus en ligne et non pas comme une collection de pages.

46

Page 47: Global Training Day Paris - Drupal 8

© 2007-2015

Contenu - Model

47

Page 48: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

contenu = noeud

Noeuds

•Les contenus que l’on souhaite mettre en ligne sont structurés : titre, corps, date, images, vidéos...

•Ces contenus (ou données) sont des noeuds. En fonction des informations dont on a besoin on crée des types de noeuds comportants des champs spécifiques : •Article : titre, image, corps...

•Recettes de cuisine : titre, ingrédients, instructions, photos...

•Drupal offre une très grande flexibilité pour décrire les contenus du site.

•Les contenus principaux d’un site sont des noeuds.

48

Page 49: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201549

Page 50: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Champs Fonctionnalités

Type de noeuds

50

photo

événement

fichier

légende

personnes

dates (début - fin)

description

lieu

commentaires

j’aime

partage

ajouter au calendrier

inscription

donner une note

Page 51: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Affichage du contenu

•Le système gère à la fois la création de contenus, mais également son affichage.

•Drupal utilise le modèle MVC (Model, View, Controler).

•Les vues sont des listes d’entités, par exemples : •articles les plus lus

•utilisateurs les plus actifs

•commentaires les plus récents

•Chaque page est découpée en région (wireframe) dans lesquelles on dispose ces listes.

51

Page 52: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Tout n’est pas un noeud

•Les noeuds sont les contenus principaux du site.

•D’autres données ne sont pas des noeuds : utilisateurs, commentaires, taxonomie...

•Drupal organise toutes les données en entité : •Noeuds

•Utilisateurs

•Commentaires

•Terme de taxonomie

•Les entités possèdent des propriétés de bases (identifiant, libellé, date de création…) et sont fieldable.

52

Page 53: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Relation entre entités

•Il est possible de créer des relations entre différentes entités.

•Par exemple pour un site d’hôtels de cuisine, on a d’un côté les hôtels (noeuds) et d’un autre côté les chefs de cuisine (utilisateurs). On peut lier un chef à des hôtels en établissant une relation entre l’entité utilisateur et l’entité noeuds (spécifiquement le type de contenu hôtel).

•Ces relations sont créées grâce à un champ de type Entity Reference.

53

Page 54: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Entité, bundle et champ

54

Entités

Champs

Bundle

Photos Catégorie Adresse Bio

ProfilesArticles Catégories

UtilisateursNoeuds Taxonomie

Page 55: Global Training Day Paris - Drupal 8

© 2007-2015

Vues

55

Page 56: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Organisation de la page

56

Page 57: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Blocs•Un bloc est un contenu généralement court ou une

liste de contenus, qui peut être affiché sur n’importe quelle page existante du site.

•Un bloc est positionné dans une des régions de la page (barre de gauche, barre de droite, pied de page…). Une région peut contenir plusieurs blocs “empilés”.

•On peut définir la visibilité d’un bloc (c. à d. définir quand il apparaît) en fonction : •De l’URL courante (node/18, admin/*, <front>...).

•Du type de noeud affiché (page, article...).

•Du rôle de l’utilisateur courant (anonyme, identifié…).

•De la langue.

57

Page 58: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Vues - module Views

•Création de listes très flexible : •derniers utilisateurs enregistrés sur le site.

•contenus les plus commentés.

•fichiers en téléchargement.

•galleries/slideshows de photos.

•Le module Views est un moteur de requêtes et d’affichage.

•La sorties des données peut se faire selon plusieurs formats : HTML, JSON, XML (RSS)…

•Les vues produisent ainsi soit des pages et des blocs, soit des flux de données consommés par des systèmes externes.

•Une vue est dynamique : la liste est reconstruite à chaque fois qu’elle apparait (on peut néanmoins activer le cache).

58

Page 59: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201559

Page 60: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201560

Page 61: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-201561

Page 62: Global Training Day Paris - Drupal 8

© 2007-2015

Contrôleur

62

Page 63: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Modules

•La logique métier est contenue dans les modules installés.

•Grande variété de fonctionnalités disponibles : SSO, templating, lettre d’information, contrôle d’accès, éditeurs WYSIWYG, SEO, partage via les réseaux sociaux, cache, type de champ…

63

Page 64: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Modules indispensables (ou pas!)

•Views : création de listes.

•Rules : automatisation d’actions en fonction de déclencheurs.

•Context : définition de contextes (URL, type de contenu, rôles…) et de réactions (changer de thème, placer un bloc dans une région…).

•Panel, Display Suite : création de gabarits via l’interface.

•Devel : outils pour les développeurs.

64

Page 65: Global Training Day Paris - Drupal 8

© 2007-2015

Sécurité et Performances

65

Page 66: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Sécurité

•Security Team •Equipe dédiée à assurer que Drupal est protégé

contre les attaques de types connus.

•Le coeur de Drupal évolue donc, comme certains modules qui sont aussi suivis (souvent les plus utilisés).

•Mises à jour continues •35 versions de Drupal 7.

•Failles de sécurité et correction de bugs.

•Les mises à jour sont prévisibles.

66

Page 67: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Les utilisateurs

•Chaque internaute connecté au site possède son profil au chemin user/uid (uid est l’identifiant unique).

•Les personnes non connectées sont dites anonymes.

•Les utilisateurs sont organisés en différents rôles. Chacun d’entre eux peut appartenir à un ou plusieurs rôles.

•On peut créer autant de rôles que nécessaire. Par défaut on a les suivants : •Anonyme : utilisateur non connecté.

•Authentifié : utilisateur connecté.

•Administrateur : utilisateur possédant tous les droits (par défaut).

•Les permissions (ou droits) sont assignées aux différents rôles.

•Remarque : l’utilisateur 1 n’a pas de rôle. On ne peut donc pas lui limiter l’accès au site sauf en le bloquant (status « Bloqué »).

67

Page 68: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Rôles et droits

68

DroitsAdministrer les menus et les

éléments de menus.

Administrer le contenu

Voir le contenu publié

Utiliser la recherche

Administrer les utilisateurs

Rôles

Administrateur

Webmaster

Anonyme

Utilisateurs

Céline

Paul

Marie

Louis

Page 69: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Performance

•Drupal n’a pas vocation seul à encaisser la charge, c’est le rôle du serveur également.

•Plusieurs niveaux de cache : •front-end (thème).

•backend : php, base de données.

•navigateur (assets…).

69

Page 70: Global Training Day Paris - Drupal 8

© 2007-2015

DémonstrationPage complexe Outils à notre disposition

70

Page 71: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Démonstration

•Ajouter un type de contenu.

•Modules pour les développeurs

•Faire une relation entre types de contenu.

•Taxonomie.

•Views : •Liste simple.

•Liste avec relation.

•Contenu du même auteur.

•Contenus utilisants les mêmes termes.

•Thème front et back office.

71

Page 72: Global Training Day Paris - Drupal 8

© 2007-2012© 2007-2015

Trained People

•Trained People c’est également : •de l’accompagnement durant vos

projets (audit, régie...).

•des formations Drupal spécialisées (webmaster, designer, développeur, responsive design, sécurité et performance, déploiement).

•des recommandations (freelances, agences, hébergement).

72

Page 73: Global Training Day Paris - Drupal 8

Merci !