17
Vues avancées avec Drupal 7 Fabrice GUERY @fabriceguery

Vues avancées avec Drupal 7 #dcparis13

  • Upload
    fguery

  • View
    1.082

  • Download
    2

Embed Size (px)

DESCRIPTION

Présentation donnée au Drupal Camp Paris 2013 sur les vues avancées dans Drupal 7

Citation preview

Page 1: Vues avancées avec Drupal 7 #dcparis13

Vues avancées avec Drupal 7

Fabrice GUERY@fabriceguery

Page 2: Vues avancées avec Drupal 7 #dcparis13

Sommaire

Rapide rappel des possibilités du module

Présentation avancée de l'interface de création

Présentation de l'API

Page 3: Vues avancées avec Drupal 7 #dcparis13

Petit rappel

Présentation du contenu

Filtrage du contenu

Gestion des permissions, menu, …

Customisable!

Page 4: Vues avancées avec Drupal 7 #dcparis13

Différents types de contenuNodes, 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

Page 5: Vues avancées avec Drupal 7 #dcparis13

Filtres de contexte

Permet de filtrer les contenu en fonction d'un paramètre d'URL.

Mise à jour des titres, breadcrumbs, ...

Page 6: Vues avancées avec Drupal 7 #dcparis13

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 tousleurs auteurs)

Page 7: Vues avancées avec Drupal 7 #dcparis13

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!

Page 8: Vues avancées avec Drupal 7 #dcparis13

Autres fonctionalités utilesCache

Activer Ajax

Passer outre les access permission des contenus

Grouper (comme group by)

Theming par template

Page 9: Vues avancées avec Drupal 7 #dcparis13

Customisable? Comment?

Theming des vues

Différents hooks et plugins

Page 10: Vues avancées avec Drupal 7 #dcparis13

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

Page 11: Vues avancées avec Drupal 7 #dcparis13

Les principaux hooks disponibleshook_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

Page 12: Vues avancées avec Drupal 7 #dcparis13

HandlersComportement 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/

Page 13: Vues avancées avec Drupal 7 #dcparis13

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 IDviews_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)

Page 14: Vues avancées avec Drupal 7 #dcparis13

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

Page 15: Vues avancées avec Drupal 7 #dcparis13

Principaux types de pluginsType 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

Page 16: Vues avancées avec Drupal 7 #dcparis13

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

Page 17: Vues avancées avec Drupal 7 #dcparis13

Vues avancées avec Drupal 7

Fabrice GUERY@fabriceguery