SlideShare uma empresa Scribd logo
1 de 17
Vues avancées avec Drupal 7
Fabrice GUERY
@fabriceguery
Sommaire
Rapide rappel des possibilités du module
Présentation avancée de l'interface de création
Présentation de l'API
Petit rappel
Présentation du contenu
Filtrage du contenu
Gestion des permissions, menu, …
Customisable!
Différents types de contenu
Nodes, commentaires, utilisateurs, …
En réalité, toutes les entités
Et même des sources de données différentes (solr,
webservices, ...)
Possibilité d'utiliser les fields pour une customisation fine
Filtres de contexte
Permet de filtrer les contenu en fonction d'un paramètre d'URL.
Mise à jour des titres, breadcrumbs, ...
Relations
Récupérer des informations d'autres entités liés
Par exemple, pour récupérer des infos sur l'auteur d'un nœud il
faudra ajouter la relation author.
Possibiliter d'ajouter de multiples relations (ex: lier les
commentaires d'un nœud et tous
leurs auteurs)
Filtres exposés
Permet à l'utilisateur de filtrer les résultats lui-même via
l'affichage d'un formulaire
Possibilité d'avoir de multiple filtres, même avec un filtre de
contexte.
Différents opérateurs (=, !=, IN, ...)
Customisable!
Autres fonctionalités utiles
Cache
Activer Ajax
Passer outre les access permission des contenus
Grouper (comme group by)
Theming par template
Customisable? Comment?
Theming des vues
Différents hooks et plugins
Customisation des templates
Plusieurs niveau de réecriture possible :
– Par vues,
– Par format (table, unordered list, …)
– Par ligne
– Par field
Les suggestions de nom des templates sont
visibles dans themes → informations, via l'UI
Les principaux hooks disponibles
hook_views_default_views(_alter)
Pour définir de nouvelles views
hook_views_data(_alter)
Ajoute / modifie des fields, définit les handlers, ...
hook_views_pre_render
Permet de modifier le tableau de render
hook_views_plugins(_alter)
Permet de définir de nouveaux plugins
Handlers
Comportement des éléments constitutifs de la vue
Ils définissent un ensemble de méthodes appliquées à, par exemple, un
champ.
Voyons un exemple avec views_handler_field_comment
Cf views/handlers/
Handlers
Type Responsabilité Exemple
Field Affichage du champ Node: delete link
(views_handler_field_node_link_delete)
Sort Tri Content: Created at (views_handler_sort_date)
Filter Filtre (+ form exposé) Content: Author (views_handler_filter_user_name)
Argument Filtre de contexte Content: Has taxonomy term ID
views_handler_argument_term_node_tid
Relationship Les relations Content: Author (views_handler_relationship)
Area Ajoute des blocs à la vue en
dehors du resultat
Global result message (views_handler_area_result)
Les plugins
Mh, un extrait de la doc peut-être...
Dans Views, un plugin est un peu comme un handler, mais ils ne participent pas directement à l'écriture de
la requête. Ils s'agit d'objets utilisés pour afficher la vue ou effectuer d'autres modifications.
Bref, à peu près tout ce qui n'est pas un handler!
Example : views_plugin_access_perm
Principaux types de plugins
Type Responsabilité Exemple
Display Défini le contexte dans lequel la vue est
affichée
Page, block
(views_plugin_display_page,
views_plugin_display_block)
Style Défini l'affichage général de la vue Table, list
(views_plugin_style_table,
views_plugin_style_list)
Ligne Défini l'affichage d'une ligne de résultat views_plugin_row_fields,
views_plugin_row_node_view
Pager Défini le type de pager views_plugin_pager
Exposed form
plugin
Responsable pour l'affichage et le passage
d'argument des filtres exposés
views_plugin_exposed_form_basic
Ressources

https://api.drupal.org/api/views/


Views/handlers/

Views/includes/handlers.inc

Views/plugins/*

Views/includes/plugins.inc
Views development de F.G. Marand sur Slideshare
Vues avancées avec Drupal 7
Fabrice GUERY
@fabriceguery

Mais conteúdo relacionado

Destaque

ONEtoONE Corporate Finance - Compraventa de empresas
ONEtoONE Corporate Finance - Compraventa de empresasONEtoONE Corporate Finance - Compraventa de empresas
ONEtoONE Corporate Finance - Compraventa de empresasONEtoONECF
 
Vitamine C - n°11 - décembre 2012
Vitamine C - n°11 - décembre 2012Vitamine C - n°11 - décembre 2012
Vitamine C - n°11 - décembre 2012Asso_Cyclope
 
La cuisine japonaise: Sushi, Sashimi et Maki
La cuisine japonaise: Sushi, Sashimi et MakiLa cuisine japonaise: Sushi, Sashimi et Maki
La cuisine japonaise: Sushi, Sashimi et MakiProjetsDeCom2013 INALCO
 
Pv conseil de district du 12 decembre 1996
Pv conseil de district du 12 decembre 1996Pv conseil de district du 12 decembre 1996
Pv conseil de district du 12 decembre 1996Alain Lambert
 
Guidetwitterinitiation 140602071529-phpapp02
Guidetwitterinitiation 140602071529-phpapp02Guidetwitterinitiation 140602071529-phpapp02
Guidetwitterinitiation 140602071529-phpapp02Joël Patoureau
 
6008 5438 yves allard - prmia conference may 29 french_presentation
6008 5438 yves allard - prmia conference may 29 french_presentation6008 5438 yves allard - prmia conference may 29 french_presentation
6008 5438 yves allard - prmia conference may 29 french_presentationRon Cheshire
 
Normas internacionales de informacion financiera un enfoque integral
Normas internacionales de informacion financiera un enfoque integralNormas internacionales de informacion financiera un enfoque integral
Normas internacionales de informacion financiera un enfoque integralCAMP DAVID CORPORATION C.A.
 
A propos de la mise en oeuvre légale de la médiation - Bernard Castelein
A propos de la mise en oeuvre légale de la médiation - Bernard CasteleinA propos de la mise en oeuvre légale de la médiation - Bernard Castelein
A propos de la mise en oeuvre légale de la médiation - Bernard CasteleinLARBelgium
 
Reg5 f equipe de regulation médicale du samu
Reg5 f equipe de regulation médicale du samuReg5 f equipe de regulation médicale du samu
Reg5 f equipe de regulation médicale du samuMiguel Martinez Almoyna
 
e-Park.biz Cyberparc Bizerte Tunisie
e-Park.biz Cyberparc Bizerte Tunisiee-Park.biz Cyberparc Bizerte Tunisie
e-Park.biz Cyberparc Bizerte TunisieImed Ouardi
 

Destaque (19)

ONEtoONE Corporate Finance - Compraventa de empresas
ONEtoONE Corporate Finance - Compraventa de empresasONEtoONE Corporate Finance - Compraventa de empresas
ONEtoONE Corporate Finance - Compraventa de empresas
 
Vitamine C - n°11 - décembre 2012
Vitamine C - n°11 - décembre 2012Vitamine C - n°11 - décembre 2012
Vitamine C - n°11 - décembre 2012
 
La cuisine japonaise: Sushi, Sashimi et Maki
La cuisine japonaise: Sushi, Sashimi et MakiLa cuisine japonaise: Sushi, Sashimi et Maki
La cuisine japonaise: Sushi, Sashimi et Maki
 
Pv conseil de district du 12 decembre 1996
Pv conseil de district du 12 decembre 1996Pv conseil de district du 12 decembre 1996
Pv conseil de district du 12 decembre 1996
 
Cuisine et Saisons en Corée
Cuisine et Saisons en CoréeCuisine et Saisons en Corée
Cuisine et Saisons en Corée
 
Proyecto final
Proyecto finalProyecto final
Proyecto final
 
Guidetwitterinitiation 140602071529-phpapp02
Guidetwitterinitiation 140602071529-phpapp02Guidetwitterinitiation 140602071529-phpapp02
Guidetwitterinitiation 140602071529-phpapp02
 
Proyecto final1
Proyecto final1Proyecto final1
Proyecto final1
 
yves book 2016
yves book 2016yves book 2016
yves book 2016
 
6008 5438 yves allard - prmia conference may 29 french_presentation
6008 5438 yves allard - prmia conference may 29 french_presentation6008 5438 yves allard - prmia conference may 29 french_presentation
6008 5438 yves allard - prmia conference may 29 french_presentation
 
Normas internacionales de informacion financiera un enfoque integral
Normas internacionales de informacion financiera un enfoque integralNormas internacionales de informacion financiera un enfoque integral
Normas internacionales de informacion financiera un enfoque integral
 
A propos de la mise en oeuvre légale de la médiation - Bernard Castelein
A propos de la mise en oeuvre légale de la médiation - Bernard CasteleinA propos de la mise en oeuvre légale de la médiation - Bernard Castelein
A propos de la mise en oeuvre légale de la médiation - Bernard Castelein
 
Mi experiencia significativa de aprendizaje
Mi experiencia significativa de aprendizajeMi experiencia significativa de aprendizaje
Mi experiencia significativa de aprendizaje
 
Recrutement 2.0
Recrutement 2.0Recrutement 2.0
Recrutement 2.0
 
Yahoo! 20 ans
Yahoo! 20 ans Yahoo! 20 ans
Yahoo! 20 ans
 
Reg5 f equipe de regulation médicale du samu
Reg5 f equipe de regulation médicale du samuReg5 f equipe de regulation médicale du samu
Reg5 f equipe de regulation médicale du samu
 
e-Park.biz Cyberparc Bizerte Tunisie
e-Park.biz Cyberparc Bizerte Tunisiee-Park.biz Cyberparc Bizerte Tunisie
e-Park.biz Cyberparc Bizerte Tunisie
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Recrutement 2.0 & Mariage 2.0
Recrutement 2.0 & Mariage 2.0Recrutement 2.0 & Mariage 2.0
Recrutement 2.0 & Mariage 2.0
 

Semelhante a Vues avancées avec Drupal 7 #dcparis13

Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)Nicolas Morin
 
Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)Nicolas Morin
 
Projet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMProjet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMAbdelmonem NAAMANE
 
Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Thibaud Vibes
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPressChi Nacim
 
Angluars js
Angluars jsAngluars js
Angluars jsRYMAA
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Projet de semestre / 3ème partie / partage de contenus multimédia
Projet de semestre / 3ème partie / partage de contenus multimédiaProjet de semestre / 3ème partie / partage de contenus multimédia
Projet de semestre / 3ème partie / partage de contenus multimédiaLaurent Moccozet
 
On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017Artusamak
 
Creation de-themes-wp
Creation de-themes-wpCreation de-themes-wp
Creation de-themes-wpChi Nacim
 
Catalogue Services for the Web (CSW)
Catalogue Services for the Web (CSW)Catalogue Services for the Web (CSW)
Catalogue Services for the Web (CSW)BIG
 
Diagramme de-composants152
Diagramme de-composants152Diagramme de-composants152
Diagramme de-composants152Sirafina Rosa
 
03 presentation-builder-normal
03 presentation-builder-normal03 presentation-builder-normal
03 presentation-builder-normalMichael Bertocchi
 

Semelhante a Vues avancées avec Drupal 7 #dcparis13 (20)

Fondamentaux des CMS
Fondamentaux des CMSFondamentaux des CMS
Fondamentaux des CMS
 
Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)Drupal en bibliothèque (2008)
Drupal en bibliothèque (2008)
 
Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)Drupal en bibliothèque (2009)
Drupal en bibliothèque (2009)
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Projet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMProjet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMM
 
SPIP
SPIPSPIP
SPIP
 
Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)Presentation solr 10 Aout 2011 (french)
Presentation solr 10 Aout 2011 (french)
 
Rapport tp3 j2ee
Rapport tp3 j2eeRapport tp3 j2ee
Rapport tp3 j2ee
 
Développement d’extensions WordPress
Développement d’extensions WordPressDéveloppement d’extensions WordPress
Développement d’extensions WordPress
 
HTML5 en Entreprise
HTML5 en EntrepriseHTML5 en Entreprise
HTML5 en Entreprise
 
Angluars js
Angluars jsAngluars js
Angluars js
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Projet de semestre / 3ème partie / partage de contenus multimédia
Projet de semestre / 3ème partie / partage de contenus multimédiaProjet de semestre / 3ème partie / partage de contenus multimédia
Projet de semestre / 3ème partie / partage de contenus multimédia
 
On test quoi - DCLannion 2017
On test quoi - DCLannion 2017On test quoi - DCLannion 2017
On test quoi - DCLannion 2017
 
Creation de-themes-wp
Creation de-themes-wpCreation de-themes-wp
Creation de-themes-wp
 
Patrons de conception
Patrons de conceptionPatrons de conception
Patrons de conception
 
Web 2.0 Wikipedia
Web 2.0 WikipediaWeb 2.0 Wikipedia
Web 2.0 Wikipedia
 
Catalogue Services for the Web (CSW)
Catalogue Services for the Web (CSW)Catalogue Services for the Web (CSW)
Catalogue Services for the Web (CSW)
 
Diagramme de-composants152
Diagramme de-composants152Diagramme de-composants152
Diagramme de-composants152
 
03 presentation-builder-normal
03 presentation-builder-normal03 presentation-builder-normal
03 presentation-builder-normal
 

Vues avancées avec Drupal 7 #dcparis13

  • 1. Vues avancées avec Drupal 7 Fabrice GUERY @fabriceguery
  • 2. Sommaire Rapide rappel des possibilités du module Présentation avancée de l'interface de création Présentation de l'API
  • 3. Petit rappel Présentation du contenu Filtrage du contenu Gestion des permissions, menu, … Customisable!
  • 4. Différents types de contenu Nodes, commentaires, utilisateurs, … En réalité, toutes les entités Et même des sources de données différentes (solr, webservices, ...) Possibilité d'utiliser les fields pour une customisation fine
  • 5. Filtres de contexte Permet de filtrer les contenu en fonction d'un paramètre d'URL. Mise à jour des titres, breadcrumbs, ...
  • 6. Relations Récupérer des informations d'autres entités liés Par exemple, pour récupérer des infos sur l'auteur d'un nœud il faudra ajouter la relation author. Possibiliter d'ajouter de multiples relations (ex: lier les commentaires d'un nœud et tous leurs auteurs)
  • 7. Filtres exposés Permet à l'utilisateur de filtrer les résultats lui-même via l'affichage d'un formulaire Possibilité d'avoir de multiple filtres, même avec un filtre de contexte. Différents opérateurs (=, !=, IN, ...) Customisable!
  • 8. Autres fonctionalités utiles Cache Activer Ajax Passer outre les access permission des contenus Grouper (comme group by) Theming par template
  • 9. Customisable? Comment? Theming des vues Différents hooks et plugins
  • 10. Customisation des templates Plusieurs niveau de réecriture possible : – Par vues, – Par format (table, unordered list, …) – Par ligne – Par field Les suggestions de nom des templates sont visibles dans themes → informations, via l'UI
  • 11. Les principaux hooks disponibles hook_views_default_views(_alter) Pour définir de nouvelles views hook_views_data(_alter) Ajoute / modifie des fields, définit les handlers, ... hook_views_pre_render Permet de modifier le tableau de render hook_views_plugins(_alter) Permet de définir de nouveaux plugins
  • 12. Handlers Comportement des éléments constitutifs de la vue Ils définissent un ensemble de méthodes appliquées à, par exemple, un champ. Voyons un exemple avec views_handler_field_comment Cf views/handlers/
  • 13. Handlers Type Responsabilité Exemple Field Affichage du champ Node: delete link (views_handler_field_node_link_delete) Sort Tri Content: Created at (views_handler_sort_date) Filter Filtre (+ form exposé) Content: Author (views_handler_filter_user_name) Argument Filtre de contexte Content: Has taxonomy term ID views_handler_argument_term_node_tid Relationship Les relations Content: Author (views_handler_relationship) Area Ajoute des blocs à la vue en dehors du resultat Global result message (views_handler_area_result)
  • 14. Les plugins Mh, un extrait de la doc peut-être... Dans Views, un plugin est un peu comme un handler, mais ils ne participent pas directement à l'écriture de la requête. Ils s'agit d'objets utilisés pour afficher la vue ou effectuer d'autres modifications. Bref, à peu près tout ce qui n'est pas un handler! Example : views_plugin_access_perm
  • 15. Principaux types de plugins Type Responsabilité Exemple Display Défini le contexte dans lequel la vue est affichée Page, block (views_plugin_display_page, views_plugin_display_block) Style Défini l'affichage général de la vue Table, list (views_plugin_style_table, views_plugin_style_list) Ligne Défini l'affichage d'une ligne de résultat views_plugin_row_fields, views_plugin_row_node_view Pager Défini le type de pager views_plugin_pager Exposed form plugin Responsable pour l'affichage et le passage d'argument des filtres exposés views_plugin_exposed_form_basic
  • 17. Vues avancées avec Drupal 7 Fabrice GUERY @fabriceguery