Vues avancées avec Drupal 7 #dcparis13

Post on 26-Jun-2015

1.083 views 2 download

description

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

Transcript of Vues avancées avec Drupal 7 #dcparis13

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

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 tousleurs 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 utilesCache

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

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/

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)

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

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