Upload
romain-jarraud
View
156
Download
4
Embed Size (px)
Citation preview
Global Training
DayAnimé par Romain JARRAUD
© 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
© 2007-2012© 2007-2015
Sommaire
•Présentation de Drupal.
•Cas d’utilisation.
•CMS et framework.
•MVC.
•Démonstration.
3
© 2007-2015
Présentation de Drupal
Jargon et usages de Drupal
4
© 2007-2012© 2007-2015
Connaissez-vous Drupal ?
5
0 €
2 001
676
37 296
2%Made in
Noeud (node)
Module
Thème
Taxonomie
© 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
© 2007-2012© 2007-20157
© 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
© 2007-2015
Cas d’utilisation
9
© 2007-2012© 2007-201510
© 2007-2012© 2007-2015
Média et presse
11
© 2007-2012© 2007-201512
© 2007-2012© 2007-2015
Institutions
13
© 2007-2012© 2007-201514
© 2007-2012© 2007-201515
© 2007-2012© 2007-201516
© 2007-2012© 2007-2015
Gouvernements
17
© 2007-2012© 2007-201518
© 2007-2012© 2007-2015
CAC 40
19
© 2007-2012© 2007-201520
© 2007-2012© 2007-201521
© 2007-2012© 2007-201522
© 2007-2012© 2007-2015
Utilisation
23
© 2007-2012© 2007-2015
Evolution
24
BLOG CMF+ Plateforme d’applica8on
CMS CMF CMF+
© 2007-2012© 2007-2015
drupal.org
•Ressources : •Modules, thèmes, distributions
•Guides
•Documentations
•Hébergement
•Livres
•Site participatif alimenté par la communauté.
25
© 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
© 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
© 2007-2015
Petit tour rapide de Drupal 8
28
© 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
© 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
© 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
•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
© 2007-2015
Philosophie
32
© 2007-2012© 2007-2015
Modularité
33
Drupal Joomla Wordpress
© 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
© 2007-2012© 2007-2015
Modules maison étendant des modules contrib
Applications tierce-partie
Modules contrib
CMS et Framework
35
Drupal
Modules maison
© 2007-2013© 2007-2015
Etendre Drupal en installant des
Modules
36
© 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
© 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
© 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
© 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
© 2007-2012© 2007-2015
Intégration
41
© 2007-2012© 2007-201542
http://fr.slideshare.net/swentel/the-state-of-drupal-8-drupalcamp-gent
© 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!
© 2007-2012© 2007-2015
MVC
•Contenus : noeuds, utilisateurs.
•Vues : modules Views.
•Contrôler : Drupal et modules.
44
© 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
© 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
© 2007-2015
Contenu - Model
47
© 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
© 2007-2012© 2007-201549
© 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
© 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
© 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
© 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
© 2007-2012© 2007-2015
Entité, bundle et champ
54
Entités
Champs
Bundle
Photos Catégorie Adresse Bio
ProfilesArticles Catégories
UtilisateursNoeuds Taxonomie
© 2007-2015
Vues
55
© 2007-2012© 2007-2015
Organisation de la page
56
© 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
© 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
© 2007-2012© 2007-201559
© 2007-2012© 2007-201560
© 2007-2012© 2007-201561
© 2007-2015
Contrôleur
62
© 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
© 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
© 2007-2015
Sécurité et Performances
65
© 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
© 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
© 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
© 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
© 2007-2015
DémonstrationPage complexe Outils à notre disposition
70
© 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
© 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
Merci !