A la découverte de Drupal
Upcoming SlideShare
Loading in...5
×
 

A la découverte de Drupal

on

  • 1,875 views

Présentation de Drupal 7 au Last Friday Talk chez M6Web

Présentation de Drupal 7 au Last Friday Talk chez M6Web

Statistics

Views

Total Views
1,875
Views on SlideShare
1,871
Embed Views
4

Actions

Likes
2
Downloads
27
Comments
0

1 Embed 4

https://twitter.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

A la découverte de Drupal A la découverte de Drupal Presentation Transcript

  • 31/05/2013A la découverte de
Drupal
Claire Roubey
Architecte Drupal & Chef de projet chez Clever Age

croubey@clever-age.com
  • 31/05/20132Last Friday Talk @ M6Web1.  Présentation2.  Drupal, pour quelle utilisation ?3.  Aperçu des fonctionnalités4.  Drupal, comment ça marche ?5.  Les offres packagées6.  Concepts avancés7.  Le futur de DrupalSommaire
  • 31/05/20133Last Friday Talk @ M6WebPrésentation
  • 31/05/20134Last Friday Talk @ M6Web§  Drupal est un C.M.S. libre et open-source (licence libre GPL)§  C’est aussi un environnement dedéveloppement grâce à son API(Content Management Framework)§  Ultra-flexible grâce aux milliers demodules disponibles§  Une communauté extrêmement active§  Développé en PHPQu’est-ce que Drupal ?
  • 31/05/20135Last Friday Talk @ M6WebLes origines de Drupal§  Créateur : Dries Buytaert§  Fin des années 1990 : étudiant àlUniversité dAnvers, il entreprend decréer un site de partage dactualités§  2001 : Drupal devient un logiciel libre§  2005 : sortie de la version 4.6§  2008 : sortie de la version 6.0§  2009 : arrivée de « Features », un modulepermettant d’augmenterconsidérablement l’industrialisation§  Janvier 2011 : sortie de la version 7.0
  • 31/05/20136Last Friday Talk @ M6Web§  Nombreux évènementscommunautaires annuelsDrupal aujourd’hui§  Drupal 7 : sortie début 2011 (actuellement 7.22)§  Drupal 8 prévu pour 2014§  Des millions de sites basés sur Drupal§  22 000 modules (7500 début 2011)§  2,5 millions de comptes drupal.org créés (1M en 2011)§  26 000 développeurs actifs (4000 début 2011)è son adoption partout dans le monde est encroissance rapide
  • 31/05/20137Last Friday Talk @ M6WebServeur : §  Apache (recommandé)§  Nginx §  ou Microsoft IISPHP : 5.3 recommandé (incl. PDO)Base de données : §  MySQL 5.x ou équivalent (MariaDB), §  PostgreSQL >=8.3, §  SQLite >= 3.3.7§  Support + ou – expérimental de MongoDB, SQLServer, OraclePré-requis
  • 31/05/20138Last Friday Talk @ M6WebDrupal pour quelle utilisation ?
  • 31/05/20139Last Friday Talk @ M6WebTypes de siteDrupal au coeur de la stratégie globale decommunication digitale :§  site Web grand public§  eCommerce§  Social Networking§  Intranet collaboratif / RSE§  Web app§  Application mobile§  Intégration de systèmes métier (LDAP, Webservices,…)
  • 31/05/201310Last Friday Talk @ M6WebRéférences
  • 31/05/201311Last Friday Talk @ M6WebRéférences
  • 31/05/201312Last Friday Talk @ M6WebAperçu des fonctionnalités
  • 31/05/201313Last Friday Talk @ M6Web§  Core : fichiers du cœur de Drupal, à ne jamais modifier§  Entité / Type de Contenu / Node§  Taxonomie : système de catégorisation du contenu§  Module : extension qui étend et modifie lesfonctionnalités du core de Drupal§  Thème : aspect visuel du site§  Blocs : éléments de contenus spécifiques, affichés dansdes régions du site§  Régions : zones définies dans le thème contenant desblocsTerminologie Drupal
  • 31/05/201314Last Friday Talk @ M6Web« There is a module for that »™Aperçu des fonctionnalités§  Référencement§  i18n§  Recherche (solR)§  E-commerce§  Réseaux sociaux§  Multimédia§  etc.§  Types de contenu§  Catégorisation§  Commentaires§  Blog§  Forum§  RSS§  NewsletterEt pour des besoins très personnalisés,il « suffit » d’en développer un !
  • 31/05/201315Last Friday Talk @ M6WebNotion de hameçon (hook)§  Peut être comparé à des événements internes deDrupal§  Construction autour d’une convention de nommage§  L’implémentation d’un hook permet de « s’attacher »à ce qui se passe dans le reste de Drupal§  Ex. : hook_node_delete() : un module implémentant cehook peut réaliser des opérations chaque fois qu’un nodeest supprimé§  Ex : hook_menu_alter() : altérer le contenu d’un menuModules & hooks
  • 31/05/201316Last Friday Talk @ M6WebMODULES§  Views§  Token§  Pathauto§  Features§  Context§  Webform§  Global Redirect§  Backup and Migrate§  Devel§  …Modules & APIsAPIs§  Entity API§  Hooks API§  Form API§  Field API§  Database API§  Search API§  …
  • 31/05/201317Last Friday Talk @ M6Web§  Permet de créer des listes de contenus§  Gère les jointures§  Plusieurs types de sorties possibles : page, bloc,rss, rdf, xml, json§  Rendu paramétrable§  Gère les arguments§  Gère les filtresè C’est un des éléments clés de DrupalModule Views
  • 31/05/201318Last Friday Talk @ M6Web§  Moteur de template PHPTemplate§  Possibilité de créer son thème à partir de zéro ou enpartant d’un thème existant§  Niveau « débutant » : utiliser un thème contribué (plus de1000 sont disponibles, dont certains « colorisables »)§  Niveau « intermédiaire » : modifier un thème existant,notamment en créant un sous-thème, qui va hériter duthème parent§  Niveau « avancé » : utiliser un starter-theme ou le créer« from scratch »Thèmes
  • 31/05/201319Last Friday Talk @ M6WebAnatomie d’un thème
  • 31/05/201320Last Friday Talk @ M6WebTemplate suggestionsTemplate de baseblock.tpl.phpExemple de nommage de template pour les blocsblock--[region|[module|--delta]].tpl.phpDrupal choisit le template le + spécifique :1.  block--module--delta.tpl.php2.  block--module.tpl.php3.  block--region.tpl.php4. block.tpl.php
  • 31/05/201321Last Friday Talk @ M6WebFonctions de preprocessChaque template peut avoir un « preprocess »Les hooks preprocess permettent d’altérer lesvariables accessibles dans le template.Exemple, dans template.php :mytheme_preprocess_page(&$variables)  {      $variables[‘raoul’]  =  ‘test’;  }  è Dans page.tpl.php ://  affichera  ‘test’  sur  toutes  les  pages  print  $raoul;  
  • 31/05/201322Last Friday Talk @ M6Web§  Concept puissant et flexible destructuration des différentséléments de contenu d’un siteDrupal§  La taxonomie repose sur :§  des « termes »§  des « vocabulaires » = groupe determes§  Une taxonomie peut définir desrelations hiérarchiques entre lestermes afin de définir descatégories et des sous-catégoriesTaxonomie
  • 31/05/201323Last Friday Talk @ M6Web§  Flexibilité : architecture ultra-modulaire et périmètrefonctionnel très large§  SEO-friendly§  Fiabilité (cf. les milliers de références)§  Sécurité§  Communauté§  Approche full open-sourceLes points forts de Drupal
  • 31/05/201324Last Friday Talk @ M6Web§  Beaucoup (trop ?) demodules§  Courbe dapprentissage nonnégligeable§  Pas de modèle objet§  Problèmes potentiels deperformances si mal conçuLes points faibles
  • 31/05/201325Last Friday Talk @ M6WebDrupal,comment çamarche ?(demo live)
  • 31/05/201326Last Friday Talk @ M6WebLes offres packagées
  • 31/05/201327Last Friday Talk @ M6WebDistribution=Drupal Core+fonctionnalités additionnelles :thèmes, modules, librairies, profils d’installation,etc.Les offres packagées
  • 31/05/201328Last Friday Talk @ M6WebDistributions « intégrales », orientées métier :§  Commerce Kickstart (Drupal Commerce)§  OpenPublish: site médias§  OpenAtrium : « intranet in a box »§  OpenScholar : sites universitaires§  Drupal Commons : communautés intranet / extranetDistributions « quick-start » : pour développeurs§  Acquia Drupal§  Panopoly§  Pressflow, etc.2 types de distributions
  • 31/05/201329Last Friday Talk @ M6WebConcepts avancés
  • 31/05/201330Last Friday Talk @ M6WebFeatures est une APIpermettant de packager desparamètres « exportables » :§  Types de contenus§  Views§  Permissions§  Roles§  Taxonomy§  Blocs§  Contextes§  Menus§  Presets d’image…Le paramétrage peut ainsi êtrepackagé, versionné, déployé.Industrialisation avec Features
  • 31/05/201331Last Friday Talk @ M6WebSolution 1 : Feeds§  un moteur générique d’aggrégation de données§  Nombreux format d’import : CSV, RSS, OPML,PubSubHubbub§  Mapping des champs en BO§  Module feeds_tamper : filtre sur les données avantimport§  Intégré à Batch API (mais performances limitées sigros volume)Import de données 1/2
  • 31/05/201332Last Friday Talk @ M6WebSolution 2 : Migrate§  Formats d’entrées : SQL, CSV, XML, JSON, etc.§  Gestion des structures de données complexes(gestion des dépendances)§  Intégré à Drush (pour intégrer la migration dans unscript de déploiement par ex.)§  Très performant§  Mais presque pas d’UI (définition des classesMigration dans un module custom)Import de données 2/2
  • 31/05/201333Last Friday Talk @ M6WebPlusieurs solutions1.  Installations séparées, gérées par ex. avec Aegir2.  Installations séparées, mais configuration gérée viaFeatures3.  Architecture Multi-sites : 1 seul Drupal, n bases dedonnées4.  Module Domain Access : 1 seul Drupal, 1 seule base dedonnées, sur n noms de domaine+ d’infos sur http://www.palantir.net/blog/multi-headed-drupalMulti-sites & Usines à sites
  • 31/05/201334Last Friday Talk @ M6WebArchitecture Multi-sites
  • 31/05/201335Last Friday Talk @ M6WebPseudo Multi-sites avec Domain Access
  • 31/05/201336Last Friday Talk @ M6WebLe futur de Drupal
  • 31/05/201337Last Friday Talk @ M6WebDrupal 8Sortie de Drupal 8 prévue fin 2013MAISIl faudra attendre fin 2014 pour avoir une basesolide de modules contribués portés en D8
  • 31/05/201338Last Friday Talk @ M6WebPrincipales avancées de Drupal 8§  Twig comme moteur de template§  HTML5, « Mobile First »§  WYSIWYG, CKEditor et In-Place Editing§  Amélioration de l’i18n§  Gestion de la configuration via fichiers YAML =>processus de déploiements facilités§  Symfony 2 :§  injection de dépendance§  mise en cache dune page Web par blocs avec le composant ESIde Symfony§  Web Services gérés désormais via Symfony
  • 31/05/201339Last Friday Talk @ M6WebDrupal est un C.M.S. gratuit reposantsur une base communautaire solideSa flexibilité́ lui permet de répondreaux besoins de tous les types de siteSon architecture évolutive permetlenrichissement fonctionnel au filde l’évolution de vos besoinsSynthèse
  • 31/05/201340Last Friday Talk @ M6WebDes questions ?Clever Age29 rue Flandin 69003 Lyonwww.clever-age.com04 78 89 46 45commercial@clever-age.comtechnique@clever-age.com