Entities – c’est quoi cebordel?
Qui suis-je?Mytailorisrich, but my French is not as rich.Hashtag #gregsaysIANAD – I am not a developerJe voulais comprendre, donc j’avais demandé à m’expliquer.Et maintenant j’essaie d’expliquer.
Pour faire brefDrupal6 : Noeuds et CCKDrupal7 : Entités et Champs
Euh…Non, pas vraiment…
La pre-histoire (Drupal 6)NodesCustomiser/ étendre avec CCKIntegreravecViews
MAIS…Problème pour type de contenu autre que Nodes :UserCommentsTaxonomyTermsAutres types de contenus (images, pièces jointes, URLs)
MAIS… (2)Galère pour intégration dans CCK et Views (entre autre) - ils doivent être transformés en Node :soit par un modules contribsoit par des développements customisés.
DRUPAL 7 Le Next Generation
Fields & EntitiesDeux grands nouveautésAjout d’une couche supérieure au « Node », « Commentaire », etc (Entity)Intégration du concept CCK (Fields) dans Core
EntitéUn élément particulier de contenu Tout les éléments de contenus sont maintenant des EntitésUser, Node, Commentaire, etc.
Entité = contenustandardiséGestion normaliséeFonctions standards de manipulationSimplification des références entre contenus
Entity TypesLe type d’information que l’on manipulePlusieurs type d'entités :NodesCommentsUserFilesVocabularyTerm(Type d'Entités par défaut en D7)
Fieldsbah, c'est un champ….qui peut être ajouté à un EntitéComme dans CCK, les Champs peuvent être utilisé sur plusieurs BundlesChamp « Image » -> Node « Article » -> Node  « Gallery »
BundlesBundle = un Sous-Type d’Entité personnaliséType d'entité = « Node »Bundle =«  Article », « Blog »En effet Node avec quelques champs extra (image, URL, etc…)
 HEIN?« Rien compris… »
On reprend?Attention : Discours un peu plus technique
Definition d’uneEntitéPropriétés de l'entité (la partie "business")Versioné ou pasFieldable ou pasDéfinition de table dans base de donnéesComment sont mappés les concepts / champs
Definition des tables BDDExemple Node: nodeID (1,2,3)titre actuel (précédents -> node révisions)date de création + date de révisionauteurtypes (bundles disponibles)
Mapping de conceptsLes concepts: l'entitéIDrevisionIDbundleLe mapping : comment s’appelle ces champs pour les differents Entités?
Mapping Entité -> NodeentitéID -> nidrevisionID-> vidbundle-> type (qui va stockés plusieurs "types" de Nodes)
Mapping Entité -> UserentitéID -> uidrevisionID-> 0 (pas de versioning)bundle-> 0 (qui veux dire qu'il y aura qu'un bundle par défaut)
Mapping Entité -> TermeentitéID -> tidrevisionID->0 (pas de versioning)bundle-> vid(vocabularies du terme)
Alors.. Bundle encore unefois?« Vaux mieux…. »
BundlesBundle = un Type d’Entité personnaliséUn entité avec plusieurs champs, qui est définit comme un type de contenuType d'entité = “Terme”> “Bundle” = TagsAlors, par exemple, le vocabulaire “Tags” ont le champs “Images” ajouté
Bundles (2)User, Vocabulaire, File - pas de type d’EntitésBundle = Entity par défautEntity : User -> Bundle : UserIl sont toujours personnalisables (ajout de champs)
Entités / Bundles par défautEntité			BundleNode			Story, Page, Blog, ….Comment		Story, Page, Blog, ….User			0 (User par défaut)Vocabulaire		0 (Vocab par défaut)Terme			[les vocabulaires]File			0 (File par défaut)
Exemple Entity : NODEDefinitionVersioné / pas
Fieldable / pas
Définition BDD
MappingTables BDDnodeID(1,2,3)titre actuel (précédents -> node révisions)date de création + date de révisionauteurtypes (bundles disponibles)
Exempe Entity : NODE« Node »Corps de TextImageVilleNe« News »« BUNDLE »
Exempe Entity : TERM« Term »Drapeau« Langue »« BUNDLE »Les Bundles des Termes sont forcement les Vocabulaires
Foire au Questions BordelBon, c’estclair?

Drupalcamp Nantes - Présentation entités

Notes de l'éditeur

  • #8 Exemples:Champs profilsutilisateurs -> Views, faututiliserContentProfile (lien entre User et Node)Champs images / vidéos -> commentairesfaut code customisé
  • #18 Comment est-cequ’ondefiniuneEntité – soitexistant, soitsoi meme dans le code….
  • #19 NOTE: Des fois, les bundles ne sont pas disponibles….
  • #27 Explication Commentaire de type Story peutavoir un Flag, mais pas commentaire de type Blog….