Architecture des typesde contenu : ce qui a changé en drupal 7        Présentation Soirée     Communautaire DrupalFr  le 0...
Faisons Connaissance(« mais rapide, hein ?») • SS2L fondée en 2001 :  http://www.ows.fr • Effectif actuel : 15 salariés •/...
Objectifs de la   présentation• Pour qui : chefs de projet, architectes et site builders• Pour quoi : Avoir une vue global...
Plan de la      présentation•   Rappel sur limportance des types de contenu•   Les objets drupal : D6 => D7•   Les liaison...
Importance des types  de contenu/objets      • Architecture même du CMS :        nodes/taxonomies/users (...)      • A con...
Les objets Drupal       • Field API       • Users : D6 => D7       • Taxonomies : D6 =>         D7       • Nodes : D6 => D...
Field API : la révolution• Drupal 6 : Les différents objets  sont fieldables (cf infra), mais  aucune unification• Drupal ...
Objet Drupal : User• Drupal 6 : Fieldable• Méthodes : profile (module core),  content_profile• Drupal 7 : Field API baby• ...
Objet Drupal : Taxo• Drupal 6 : Fieldable• Méthodes : taxonomy_image,  term_fields• Drupal 7 : Field API baby• Dans les de...
Objet Drupal : Node• Drupal 6 : Fieldable• Méthodes : cck et tous les  modules contrib• Drupal 7 : Field API baby
Objet Drupal :            Comment• Drupal 6 : Fieldable (?!)• Méthodes : nodecomment,  comment_fields• Drupal 7 : Field AP...
Objet Drupal : Entity• Changement majeur D7• Tous les objets précédents sont  en fait devenus des entities• Toute entity e...
Liaisons (simples)entre les objets drupal          •   D6 : Tour dhorizon          •   D7 : references          •   D7 : E...
Liaisons D6 : panorama• Liaison node → node :  nodereference• Liaison node → user :  userreference• Liaision node → taxo :...
Liaisons D7 : la liberté• Tout objet est fieldable => les   possibilités sont infinies• Les Back References sont   gérées ...
Liaisons D7 : references• Maintainers : fgm, yched,  KarenS• Fournit trois types de   Fields :   – Node reference  – User ...
Liaisons D7 : entity reference• Maintainer : DamZ• Permet de lier tout type dentité  (dont node, user, taxo, etc...)• Perm...
Alors, lequel choisir ?• Les 2 sont de qualité• Les 2 peuvent cohabiter• Chemin de migration plus clair  depuis D6 pour re...
UI (minimum) pour les types de contenus         • Grouper les champs         • Utiliser les           multigroupes        ...
UI : Grouper les champs• Ne pas hésiter à abuser des   fieldsets et de leurs  propriétés• Osez les groupes dans les   grou...
UI : Les multigroupes• Permet de répéter des  occurences de plusieurs  Fields• En D6 : CCK mais version 3• En D7 : field_c...
UI : Améliorer les liaisons• Objectifs :   – Améliorer lautocomplete   – Avoir un contrôle fin (view) sur     les objets r...
Tips & Tricks en Vrac         • Un module par content           type ?         • Gestion des taxonomies           hiérarch...
TnT : 1 module par CT ?• Utile en D6 car :   – Hooks non disponibles     autrement   – Permettait de supprimer le     body...
TnT : Taxo Hiérarchiques• On est tous confrontés   un jour ou lautre• D6 : hierarchical_select  mais peu stable et plus  m...
TnT : Date• Le couteau suisse du   champ date => usine à gaz• Mais pas moyen de faire  autrement• Tout champ date est dans...
TnT : EntityFieldQuery• Nouvelle classe• Permet de requêter sur les  entités avec une couche  dabstraction• LA façon de fa...
TnT : Gestion des medias• http://drupal.org/project/scald• </autopromo>• Sappuie sur la puissance des  entités
Discutons !
Prochain SlideShare
Chargement dans…5
×

Architecture des types de contenu : ce qui a changé en Drupal 7

2 867 vues

Publié le

Présentation Soirée Communautaire DrupalFr le 08/11/2012 La Cantine, Paris

Objectifs de la présentation :
* Pour qui : chefs de projet, architectes et site builders
* Pour quoi : Avoir une vue globale sur les outils drupal (core + modules contrib) à disposition
* Dans quel objectif : outils pour traduire des besoins fonctionnels en architecture technique drupal maintenable et scalable
* Cette présentation est : un panorama non exhaustif
* Cette présentation n'est pas : axée sur les détails de l'implémentation technique (« ça va manquer de démo »)
* Combien de temps ça va durer : aucune idée

0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 867
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
21
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • Architecture des types de contenu : ce qui a changé en Drupal 7

    1. 1. Architecture des typesde contenu : ce qui a changé en drupal 7 Présentation Soirée Communautaire DrupalFr le 08/11/2012 La Cantine, Paris
    2. 2. Faisons Connaissance(« mais rapide, hein ?») • SS2L fondée en 2001 :  http://www.ows.fr • Effectif actuel : 15 salariés •/me : Sylvain Moreau • @slybud •http://drupal.org/user/118258 •http://www.linkedin.com/in/slybud • « Nous faisons de gros sites drupal et nous le faisons bien ! »
    3. 3. Objectifs de la présentation• Pour qui : chefs de projet, architectes et site builders• Pour quoi : Avoir une vue globale sur les outils drupal (core + modules contrib) à disposition• Dans quel objectif : outils pour traduire des besoins fonctionnels en architecture technique drupal maintenable et scalable• Cette présentation est : un panorama non exhaustif• Cette présentation nest pas : axée sur les détails de limplémentation technique (« ça va manquer de démo »)• Combien de temps ça va durer : aucune idée
    4. 4. Plan de la présentation• Rappel sur limportance des types de contenu• Les objets drupal : D6 => D7• Les liaisons entre les objets drupal : D6 => D7• Le minimum UI pour les types de contenus : D6 => D7• Pistes/Tips & Tricks• Questions/Réponses
    5. 5. Importance des types de contenu/objets • Architecture même du CMS : nodes/taxonomies/users (...) • A concevoir avant de commencer à développer/intégrer • Traduire le fonctionnel en technique (modélisation) • Rester sur la route et bénéficier de lécosystème
    6. 6. Les objets Drupal • Field API • Users : D6 => D7 • Taxonomies : D6 => D7 • Nodes : D6 => D7 • Comments : D6 => D7 • Entities : D7
    7. 7. Field API : la révolution• Drupal 6 : Les différents objets sont fieldables (cf infra), mais aucune unification• Drupal 7 : Field in core, tout objet est fieldable de manière unifiée
    8. 8. Objet Drupal : User• Drupal 6 : Fieldable• Méthodes : profile (module core), content_profile• Drupal 7 : Field API baby• Pour aller plus loin : profile2 (profil fieldable par role, champs privés...)
    9. 9. Objet Drupal : Taxo• Drupal 6 : Fieldable• Méthodes : taxonomy_image, term_fields• Drupal 7 : Field API baby• Dans les deux cas : catégoriser/classer
    10. 10. Objet Drupal : Node• Drupal 6 : Fieldable• Méthodes : cck et tous les modules contrib• Drupal 7 : Field API baby
    11. 11. Objet Drupal : Comment• Drupal 6 : Fieldable (?!)• Méthodes : nodecomment, comment_fields• Drupal 7 : Field API baby• Le plus : les comments sont fieldable par type de contenu !
    12. 12. Objet Drupal : Entity• Changement majeur D7• Tous les objets précédents sont en fait devenus des entities• Toute entity est fieldable avec Field API (baby)• Quand choisir une entité plutot quun node ?• Connaissances en développement requises• Exemple dentité : product
    13. 13. Liaisons (simples)entre les objets drupal • D6 : Tour dhorizon • D7 : references • D7 : Entity Reference • La guerre des références
    14. 14. Liaisons D6 : panorama• Liaison node → node : nodereference• Liaison node → user : userreference• Liaision node → taxo : core (pauvre) ou content_taxonomy• Liaison taxo → taxo : core mais mono vocabulaire (patch existe)• Eventail finalement pauvre• Gestion des back references :  nodereferrer ou cnr
    15. 15. Liaisons D7 : la liberté• Tout objet est fieldable => les  possibilités sont infinies• Les Back References sont  gérées dans views => plus besoin de modules de type nodereferrer• On peut donc saffranchir du  typage et lier des termes de taxo à tout autre objet par exemple
    16. 16. Liaisons D7 : references• Maintainers : fgm, yched, KarenS• Fournit trois types de  Fields :  – Node reference – User Reference – Term reference• Couvre 95% des besoins dun projet
    17. 17. Liaisons D7 : entity reference• Maintainer : DamZ• Permet de lier tout type dentité (dont node, user, taxo, etc...)• Permet de mélanger dans un champ plusieurs types dentité• Permet de lier dans un champ plusieurs bundle dentités : des termes de taxo au sein de 2 voc différents• Un peu plus complexe et encore en rc (5)
    18. 18. Alors, lequel choisir ?• Les 2 sont de qualité• Les 2 peuvent cohabiter• Chemin de migration plus clair depuis D6 pour references• UI plus simple et familière pour references• Entity Reference gère des cas impossibles avec references• Il se dit que references ne sera plus maintenu• Entity Reference est un peu plus complexe pour les devs
    19. 19. UI (minimum) pour les types de contenus • Grouper les champs • Utiliser les multigroupes • Améliorer lUI des liaisons
    20. 20. UI : Grouper les champs• Ne pas hésiter à abuser des  fieldsets et de leurs propriétés• Osez les groupes dans les  groupes dans les groupes• En D7 : variez vos formats de groupes (Vertical ou Horizontal Tabs, accordéon..)
    21. 21. UI : Les multigroupes• Permet de répéter des occurences de plusieurs Fields• En D6 : CCK mais version 3• En D7 : field_collection (entité à part)• Exemples : générique émission, diaporama
    22. 22. UI : Améliorer les liaisons• Objectifs : – Améliorer lautocomplete – Avoir un contrôle fin (view) sur les objets référencés – Créer un objet sans quitter le form en cours• En D6 : noderelationships• En D7 : references_dialog (fonctionne avec references et entityreference)
    23. 23. Tips & Tricks en Vrac • Un module par content type ? • Gestion des taxonomies hiérarchiques • Date : beware • EntityFieldQuery est ton ami • Gestion des medias : scald :)
    24. 24. TnT : 1 module par CT ?• Utile en D6 car : – Hooks non disponibles autrement – Permettait de supprimer le body• En D7, plus vraiment  dintérêt• Cepenant, il est sain de regrouper ses hooks ;-)
    25. 25. TnT : Taxo Hiérarchiques• On est tous confrontés  un jour ou lautre• D6 : hierarchical_select mais peu stable et plus maintenu (en 7 aussi)• Alternative D7 :  term_reference_tree
    26. 26. TnT : Date• Le couteau suisse du  champ date => usine à gaz• Mais pas moyen de faire autrement• Tout champ date est dans un fieldset !• Mieux vaut bien choisir son format de stockage dés le début
    27. 27. TnT : EntityFieldQuery• Nouvelle classe• Permet de requêter sur les entités avec une couche dabstraction• LA façon de faire des requêtes sur les entités• http://drupal.org/node/13437 08
    28. 28. TnT : Gestion des medias• http://drupal.org/project/scald• </autopromo>• Sappuie sur la puissance des entités
    29. 29. Discutons !

    ×