SlideShare une entreprise Scribd logo
1  sur  29
Architecture des types
de contenu : ce qui a
 changé en drupal 7
        Présentation Soirée
     Communautaire DrupalFr
  le 08/11/2012 La Cantine, Paris
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 ! »
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
Plan de la
      présentation
•   Rappel sur l'importance 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
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
Les objets Drupal
       • Field API
       • Users : D6 => D7
       • Taxonomies : D6 =>
         D7
       • Nodes : D6 => D7
       • Comments : D6 => D7
       • Entities : D7
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
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...)
Objet Drupal : Taxo
• Drupal 6 : Fieldable
• Méthodes : taxonomy_image,
  term_fields
• Drupal 7 : Field API baby
• Dans les deux cas :
  catégoriser/classer
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 API baby
• Le plus : les comments sont
  fieldable par type de contenu !
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
  qu'un node ?
• Connaissances en
  développement requises
• Exemple d'entité : product
Liaisons (simples)
entre les objets drupal
          •   D6 : Tour d'horizon
          •   D7 : references
          •   D7 : Entity Reference
          •   La guerre des
              références
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
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 s'affranchir du 
  typage et lier des termes de
  taxo à tout autre objet par
  exemple
Liaisons D7 : references
• Maintainers : fgm, yched,
  KarenS
• Fournit trois types de 
  Fields : 
  – Node reference
  – User Reference
  – Term reference
• Couvre 95% des besoins
  d'un projet
Liaisons D7 : entity reference
• Maintainer : DamZ
• Permet de lier tout type d'entité
  (dont node, user, taxo, etc...)
• Permet de mélanger dans un
  champ plusieurs types d'entité
• Permet de lier dans un champ
  plusieurs bundle d'entités :
  des termes de taxo au sein de 2
  voc différents
• Un peu plus complexe et encore
  en rc (5)
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
UI (minimum) pour les
 types de contenus
         • Grouper les champs
         • Utiliser les
           multigroupes
         • Améliorer l'UI des
           liaisons
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..)
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
UI : Améliorer les liaisons
• Objectifs :
   – Améliorer l'autocomplete
   – 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)
Tips & Tricks en Vrac
         • Un module par content
           type ?
         • Gestion des taxonomies
           hiérarchiques
         • Date : beware
         • EntityFieldQuery est ton
           ami
         • Gestion des medias :
           scald :)
TnT : 1 module par CT ?
• Utile en D6 car :
   – Hooks non disponibles
     autrement
   – Permettait de supprimer le
     body
• En D7, plus vraiment 
  d'intérêt
• Cepenant, il est sain de
  regrouper ses hooks ;-)
TnT : Taxo Hiérarchiques
• On est tous confrontés 
  un jour ou l'autre
• D6 : hierarchical_select
  mais peu stable et plus
  maintenu (en 7 aussi)
• Alternative D7 : 
  term_reference_tree
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
TnT : EntityFieldQuery
• Nouvelle classe
• Permet de requêter sur les
  entités avec une couche
  d'abstraction
• LA façon de faire des
  requêtes sur les entités
• http://drupal.org/node/13437
  08
TnT : Gestion des medias
• http://drupal.org/project/scald
• </autopromo>
• S'appuie sur la puissance des
  entités
Discutons !

Contenu connexe

En vedette

Conforme A CuáL SueñO Vives
Conforme A CuáL SueñO VivesConforme A CuáL SueñO Vives
Conforme A CuáL SueñO VivesCarlos Chacón
 
Trabajo En Equipos
Trabajo En EquiposTrabajo En Equipos
Trabajo En EquiposAdalberto
 
AG MCP 3 octobre 2014
AG MCP 3 octobre 2014AG MCP 3 octobre 2014
AG MCP 3 octobre 2014Michel Dumas
 
3 décembre 2015 | Etudes non interventionnelles
3 décembre 2015 | Etudes non interventionnelles3 décembre 2015 | Etudes non interventionnelles
3 décembre 2015 | Etudes non interventionnellesMarket iT
 
Rechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur AccessRechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur AccessVotre Assistante
 
Augmenter des tarifs avec une requête mise à jour sur Access
Augmenter des tarifs avec une requête mise à jour sur AccessAugmenter des tarifs avec une requête mise à jour sur Access
Augmenter des tarifs avec une requête mise à jour sur AccessVotre Assistante
 
Formation "Animer efficacement une page Facebook" (Extrait)
Formation "Animer efficacement une page Facebook" (Extrait)Formation "Animer efficacement une page Facebook" (Extrait)
Formation "Animer efficacement une page Facebook" (Extrait)Akova
 
Castigo divino
Castigo divinoCastigo divino
Castigo divinoAdalberto
 
Febrero 2015 agenda departamental
Febrero 2015 agenda departamentalFebrero 2015 agenda departamental
Febrero 2015 agenda departamentalAdalberto
 
Examen Neoclas Romant
Examen Neoclas RomantExamen Neoclas Romant
Examen Neoclas Romantmalcazar
 
Taller de Gerencia Efectiva - Colombia
Taller de Gerencia Efectiva - ColombiaTaller de Gerencia Efectiva - Colombia
Taller de Gerencia Efectiva - ColombiaOscar Ayala
 
Jeunesse - How to enroll distributors into your team (Ru/Eng)
Jeunesse - How to enroll distributors into your team (Ru/Eng)Jeunesse - How to enroll distributors into your team (Ru/Eng)
Jeunesse - How to enroll distributors into your team (Ru/Eng)Yevgen
 
Je Continuerai Leonid Afremov
Je Continuerai  Leonid AfremovJe Continuerai  Leonid Afremov
Je Continuerai Leonid Afremovguest3d27360
 
Club de la Com : Premier pas sur viadeo linkedin
Club de la Com : Premier pas sur viadeo linkedinClub de la Com : Premier pas sur viadeo linkedin
Club de la Com : Premier pas sur viadeo linkedinBernard MARTINEZ
 
Les 3 religions_monotheisme
Les 3 religions_monotheismeLes 3 religions_monotheisme
Les 3 religions_monotheismecandice8874
 
Solo en dios confiamos
Solo en dios confiamosSolo en dios confiamos
Solo en dios confiamosAdalberto
 
Les pronoms directes
Les pronoms directesLes pronoms directes
Les pronoms directesmllemarin38
 

En vedette (20)

Presentación1
Presentación1Presentación1
Presentación1
 
Conforme A CuáL SueñO Vives
Conforme A CuáL SueñO VivesConforme A CuáL SueñO Vives
Conforme A CuáL SueñO Vives
 
Trabajo En Equipos
Trabajo En EquiposTrabajo En Equipos
Trabajo En Equipos
 
AG MCP 3 octobre 2014
AG MCP 3 octobre 2014AG MCP 3 octobre 2014
AG MCP 3 octobre 2014
 
Ourense2
Ourense2Ourense2
Ourense2
 
Sueldos
SueldosSueldos
Sueldos
 
3 décembre 2015 | Etudes non interventionnelles
3 décembre 2015 | Etudes non interventionnelles3 décembre 2015 | Etudes non interventionnelles
3 décembre 2015 | Etudes non interventionnelles
 
Rechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur AccessRechercher et supprimer les doublons sur Access
Rechercher et supprimer les doublons sur Access
 
Augmenter des tarifs avec une requête mise à jour sur Access
Augmenter des tarifs avec une requête mise à jour sur AccessAugmenter des tarifs avec une requête mise à jour sur Access
Augmenter des tarifs avec une requête mise à jour sur Access
 
Formation "Animer efficacement une page Facebook" (Extrait)
Formation "Animer efficacement une page Facebook" (Extrait)Formation "Animer efficacement une page Facebook" (Extrait)
Formation "Animer efficacement une page Facebook" (Extrait)
 
Castigo divino
Castigo divinoCastigo divino
Castigo divino
 
Febrero 2015 agenda departamental
Febrero 2015 agenda departamentalFebrero 2015 agenda departamental
Febrero 2015 agenda departamental
 
Examen Neoclas Romant
Examen Neoclas RomantExamen Neoclas Romant
Examen Neoclas Romant
 
Taller de Gerencia Efectiva - Colombia
Taller de Gerencia Efectiva - ColombiaTaller de Gerencia Efectiva - Colombia
Taller de Gerencia Efectiva - Colombia
 
Jeunesse - How to enroll distributors into your team (Ru/Eng)
Jeunesse - How to enroll distributors into your team (Ru/Eng)Jeunesse - How to enroll distributors into your team (Ru/Eng)
Jeunesse - How to enroll distributors into your team (Ru/Eng)
 
Je Continuerai Leonid Afremov
Je Continuerai  Leonid AfremovJe Continuerai  Leonid Afremov
Je Continuerai Leonid Afremov
 
Club de la Com : Premier pas sur viadeo linkedin
Club de la Com : Premier pas sur viadeo linkedinClub de la Com : Premier pas sur viadeo linkedin
Club de la Com : Premier pas sur viadeo linkedin
 
Les 3 religions_monotheisme
Les 3 religions_monotheismeLes 3 religions_monotheisme
Les 3 religions_monotheisme
 
Solo en dios confiamos
Solo en dios confiamosSolo en dios confiamos
Solo en dios confiamos
 
Les pronoms directes
Les pronoms directesLes pronoms directes
Les pronoms directes
 

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

Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011OSInet
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBContent Square
 
Drupal & responsive
Drupal & responsiveDrupal & responsive
Drupal & responsiveRezonova
 
Projet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédiasProjet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédiasLaurent Moccozet
 
Découvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceDécouvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceLINAGORA
 
Keynote drupagora 2015 7
Keynote drupagora 2015 7Keynote drupagora 2015 7
Keynote drupagora 2015 7Core-Techs
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
Du web sémantique à tous les étages
Du web sémantique à tous les étagesDu web sémantique à tous les étages
Du web sémantique à tous les étagesSemWebPro
 
ABES - intervention congrès Semweb pro (5-11-2014)
ABES - intervention congrès Semweb pro (5-11-2014)ABES - intervention congrès Semweb pro (5-11-2014)
ABES - intervention congrès Semweb pro (5-11-2014)ABES
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
Dans quel contexte employer Zend ou Drupal
Dans quel contexte employer Zend ou DrupalDans quel contexte employer Zend ou Drupal
Dans quel contexte employer Zend ou Drupalneuros
 
A la découverte de Drupal
A la découverte de DrupalA la découverte de Drupal
A la découverte de DrupalClaire Roubey
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Pierre Ternon
 
Gestion Universelle des Assets Multimédias avec le module Drupal Scald
Gestion Universelle des Assets Multimédias avec le module Drupal ScaldGestion Universelle des Assets Multimédias avec le module Drupal Scald
Gestion Universelle des Assets Multimédias avec le module Drupal Scaldslybud
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
 

Similaire à Architecture des types de contenu : ce qui a changé en Drupal 7 (20)

Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011Drupal et le NoSQL - drupagora 2011
Drupal et le NoSQL - drupagora 2011
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
 
Drupal & responsive
Drupal & responsiveDrupal & responsive
Drupal & responsive
 
Drupagora linagora-20111110
Drupagora linagora-20111110Drupagora linagora-20111110
Drupagora linagora-20111110
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
Projet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédiasProjet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédias
 
Découvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référenceDécouvrir Drupal, le CMS Open Source de référence
Découvrir Drupal, le CMS Open Source de référence
 
Keynote drupagora 2015 7
Keynote drupagora 2015 7Keynote drupagora 2015 7
Keynote drupagora 2015 7
 
Pourquoi Drupal ?
Pourquoi Drupal ?Pourquoi Drupal ?
Pourquoi Drupal ?
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Du web sémantique à tous les étages
Du web sémantique à tous les étagesDu web sémantique à tous les étages
Du web sémantique à tous les étages
 
ABES - intervention congrès Semweb pro (5-11-2014)
ABES - intervention congrès Semweb pro (5-11-2014)ABES - intervention congrès Semweb pro (5-11-2014)
ABES - intervention congrès Semweb pro (5-11-2014)
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
Dans quel contexte employer Zend ou Drupal
Dans quel contexte employer Zend ou DrupalDans quel contexte employer Zend ou Drupal
Dans quel contexte employer Zend ou Drupal
 
A la découverte de Drupal
A la découverte de DrupalA la découverte de Drupal
A la découverte de Drupal
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
Pas possible en drupal, c'est faux
Pas possible en drupal, c'est fauxPas possible en drupal, c'est faux
Pas possible en drupal, c'est faux
 
Gestion Universelle des Assets Multimédias avec le module Drupal Scald
Gestion Universelle des Assets Multimédias avec le module Drupal ScaldGestion Universelle des Assets Multimédias avec le module Drupal Scald
Gestion Universelle des Assets Multimédias avec le module Drupal Scald
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 

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

  • 1. Architecture des types de contenu : ce qui a changé en drupal 7 Présentation Soirée Communautaire DrupalFr le 08/11/2012 La Cantine, Paris
  • 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. 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
  • 4. Plan de la présentation • Rappel sur l'importance 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. 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. Les objets Drupal • Field API • Users : D6 => D7 • Taxonomies : D6 => D7 • Nodes : D6 => D7 • Comments : D6 => D7 • Entities : D7
  • 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. 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. 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. Objet Drupal : Node • Drupal 6 : Fieldable • Méthodes : cck et tous les modules contrib • Drupal 7 : Field API baby
  • 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. 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 qu'un node ? • Connaissances en développement requises • Exemple d'entité : product
  • 13. Liaisons (simples) entre les objets drupal • D6 : Tour d'horizon • D7 : references • D7 : Entity Reference • La guerre des références
  • 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. 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 s'affranchir du  typage et lier des termes de taxo à tout autre objet par exemple
  • 16. Liaisons D7 : references • Maintainers : fgm, yched, KarenS • Fournit trois types de  Fields :  – Node reference – User Reference – Term reference • Couvre 95% des besoins d'un projet
  • 17. Liaisons D7 : entity reference • Maintainer : DamZ • Permet de lier tout type d'entité (dont node, user, taxo, etc...) • Permet de mélanger dans un champ plusieurs types d'entité • Permet de lier dans un champ plusieurs bundle d'entités : des termes de taxo au sein de 2 voc différents • Un peu plus complexe et encore en rc (5)
  • 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. UI (minimum) pour les types de contenus • Grouper les champs • Utiliser les multigroupes • Améliorer l'UI des liaisons
  • 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. 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. UI : Améliorer les liaisons • Objectifs : – Améliorer l'autocomplete – 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. 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. TnT : 1 module par CT ? • Utile en D6 car : – Hooks non disponibles autrement – Permettait de supprimer le body • En D7, plus vraiment  d'intérêt • Cepenant, il est sain de regrouper ses hooks ;-)
  • 25. TnT : Taxo Hiérarchiques • On est tous confrontés  un jour ou l'autre • D6 : hierarchical_select mais peu stable et plus maintenu (en 7 aussi) • Alternative D7 :  term_reference_tree
  • 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. TnT : EntityFieldQuery • Nouvelle classe • Permet de requêter sur les entités avec une couche d'abstraction • LA façon de faire des requêtes sur les entités • http://drupal.org/node/13437 08
  • 28. TnT : Gestion des medias • http://drupal.org/project/scald • </autopromo> • S'appuie sur la puissance des entités

Notes de l'éditeur

  1. \n \n \n \n \n
  2. \n \n \n \n \n
  3. \n \n \n \n \n
  4. \n \n \n \n \n
  5. \n \n \n \n \n
  6. \n \n \n \n \n
  7. \n \n \n \n \n
  8. \n \n \n \n \n
  9. \n \n \n \n \n
  10. \n \n \n \n \n
  11. \n \n \n \n \n
  12. \n \n \n \n \n
  13. \n \n \n \n \n
  14. \n \n \n \n \n
  15. \n \n \n \n \n
  16. \n \n \n \n \n
  17. \n \n \n \n \n
  18. \n \n \n \n \n
  19. \n \n \n \n \n
  20. \n \n \n \n \n
  21. \n \n \n \n \n
  22. \n \n \n \n \n
  23. \n \n \n \n \n
  24. \n \n \n \n \n
  25. \n \n \n \n \n
  26. \n \n \n \n \n
  27. \n \n \n \n \n
  28. \n \n \n \n \n
  29. \n \n \n \n \n