views (intro, stockage - Definitive Guide to Drupal 7)

Source: livre "The Definitive Guide to Drupal 7" 2011

Stockage des views (admin/structure/views)

  • In code : dans un fichier de module. Les modules peuvent avoir plusieurs Views.
  • Database overriding code : un module a généré cette view, dont on a personnalisé le contenu (et sauvé ces modifications en db). C'est cette copie en db qui est utilisé par le site.
  • In database: vous aviez créé la vue via view_ui et ce code est dans la db.

Selon les modules activés, on trouvera cette liste: Archive (liste par mois), Backlings (use table backlinks : tous les contenus qui pointent vers p courante, Glossary, Tracker...

admin/structure/views/view/frontpage/edit

Titre: si c'est une page, sera titre page (h1 et metadata) ; si block: titre du block

Format
Settings/paramètres -> ajout d'une classe css à chaque ligne du container de sortie.
Show/afficher -> on affiche contenu et résumé comme un "tout préformatté" ou bien on choisit quelques champs?

Format Settings - Configuration Options
Grid (grille) le résultat est dans une boite, choix nb ligne et col
HTML list liste numérique ou à puce cf http://alistapart.com/article/taminglists/
Jump menu
(menu de saut)
si on a jouté des titres au menu jump: en sel ce titre, on va au contenu
Table (tableau) ressemble à une feuille de calcul, on peux trier selon les titres des col
Unformatted
(Liste non mise en forme)

div simple avec classe CSS
Ex: messages highlight, messages warning....

Voir aussi (panels, views3, context, delta...) article en anglais: http://mechdeveloper.com/blog/using-css-classes-themecustomize-drupal-wi...

Avancés: filtres contextuels, relations...

Les blocs n'ont pas accès à URL pour récup argument => code PHP.
Voir cet article d'oct 2010 (views sous drupal 6): http://drupalfr.org/documentation/les-arguments

Contextual Filters (v3) = arguments (v1 et de views)

pour créer des pages dynamiques (qui utilise l'URL pour décider comment afficher la page).

Action lorsque aucun argument n'est fourni -> sommaire. Affiche une liste d'arguments possible, basée sur la vue, et fournit des liens pour visualiser la vue avec cet argument. Les sommaires ont leurs propres styles et options. Le style de sommaire par défaut affiche une liste d'arguments avec le compte du nombre de données trouvées pour chacun.
Si choix argument par défaut -> fixe, id noeud via URL, id user via URL, ou id user logué

Validation des arg par plugins:

  • Validation de base: S'assure que l'argument est présent. Le cas échéant, une valeur PHP null ne passe pas la validation.
  • Terme de classification S'assure que l'argument fournit est un terme valide de la taxonomie. Il est également possible de limiter la recherche à des vocabulaires spécifiques.
  • Code PHP Vous pouvez saisir du code PHP, un peu comme dans les blocs, pour déterminer si l'argument fourni est valide ou pas.

Un tuto en fr qui montre comment ajouter un bloc via Views, qui montre les articles qui ont un tag commun avec l'article courrant : http://www.webenstock.com/fr/blog/2012-07-29-creer-bloc-listant-les-arti...

Relations

Historiquement, la relation node - utilisateur est de trop (ajoutée silencieusement dans views 1&2). Voir http://drupalfr.org/documentation/les-relations daté d'oct 2009, pour drupal 6.

Ex: on a créé une page views, qui affiche tous les (type de contenu) Articles. Pour voir ceux écrits par un user, y ajouter Contenu: Auteur et configurer son nom dans filtre (Tracker - User : Nom (= jenny))
Ex: ajouter "Révision du nœud : Utilisateur" -> tous les champs "utilisateur auteur de la révision" sont dispo

Exposed forms

Si des filtres sont proposé au user: à afficher dans block séparé ou dans les résultats de views ?
Style du formulaire exposé

Other (nom machine, comment...)

Display Status: active ou non l'affichage.
Use AJAX? par défaut à non (si oui ne sera pas indéxé par moteurs de recherche)
Hide attachments in summary / Masquer les vues attachées dans le sommaire: qd on affiche un résumé du filtre contextuel
Grouper et agréger selon un champs (ou pas).
Si coché: certains champs pourraient devenir indisponibles. Tous les champs qui sont sélectionnés pour le regroupement seront réduits à un seul enregistrement par valeur distincte. Les autres champs qui sont sélectionnés pour agrégation verront la fonction exécutée sur ceux-ci. Par ex: grouper des nœuds par leur titre et compter le nombre de nids pour obtenir une liste des doublons.

Query settings (para requete): 3 cases à cocher

  • Désactiver la réécriture SQL: saute les vérifs de node_access (check droits user à voir ou pas) et des autres modules qui implémentent hook_query_alter().
  • Distinct: retire les doulons éventuels.
  • Utiliser un serveur esclave: option concernant la performance

Commentaire de requête (transmis au serveur SQL pour log et debug) + Tags (identifier cette req dans un module)

Mise en cache: 0 (pour blocl "last update") ou "En fonction du temps écoulé" (par htlm généra + par req)

Classe CSS: ajout classe à la div conteneur
Theme: plutot pour information (mémo pour thémer plus tard la sortie de la view). Ces templates doivent etre stockés dans le code.

 

Si en italique: c'est overridé

 

Source: livre "The Definitive Guide to Drupal 7" 2011