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