- Accueil
- Info légales
- Aide (FAQ)
- Les tags de ce site
- Bloc note
- Articles techniques
- Notes system
- Divers articles
- Drupal
- Notes ITIL 2007
- Notes MS
- Dans le quartier...
- Emploi
- Recettes de cuisine et adresses gourmandes
- mes applis ubuntu préferées
- Divers acronymes du monde social
- Internet 2018
- P2 meublé à louer - quartier du Poteau 75018
- apcos - réseaux sociaux et outils
- Articles techniques
- Divers liens
- Fun
- Mon CV IT
- Nouveautés
View 3.8 - node selon profondeur du livre (depth), ex de filtre exposé
Avec Ex Views 7.x-3.8, Book (du core).
But: créer une page qui permet de choisir des contenus selon la profondeur dans un livre (type de contenu book).
On souhaite aussi trouver les contenus "orphelins" (ie contenu non intégré dans un livre).
Comme il y beaucoup de contenu, on va donner la possibilité de filtrer à l'utilisation (exposer dans le vocabulaire drupal, dans la partie filtre Filter criteria) sur le statut de la publication, la langue du contenu, et le type de contenu (page, article, book...).
Création vue de type node (artfrnobook)
notes
- chemin ne remplace pas les é par e (pas de translit pour views).
- Les liens affichés (with links, without comments) affichent "Lire la suite", Ajouter un com, et le nb d'affichage. On va revenir au format Fields
Page réservée aux utilisateurs logués (et dans les bons groupes): Page settings/accès roles.
Définir le chemin (obligatoire pour une page- lors du dev, il est judicieux d'utiliser un nom proche de l'interne, ici "artfrnobook") et le menu "Entrée de menu normale" (et non son emplacement dans le menu ).
Ajouter les champs
Fields Ajouter les champs, en cachant les champs qui serviront de filtre (par ex: Publié, Type, Langue...).
Astuce pour trouver la profondeur ("depth of the book page, sachant que l'entrée d'un livre a une profondeur de 1") filtrer sur Livre, ou mieux, rechercher avec depth.
Sauver, l'url est admin/structure/views/view/artfrnobook
Filter criteria "expose this filter to visitors"
Choix de types de contenu: article, forum subject, book, cv... Souvent, pour travailler avec des termes de taxonomie, il faut ici restreindre à un (ou des types de) contenu, qui utilise un seul vocabulaire (voir image dans la note plus bas).
En passant on voit dans la liste les lignes suivantes:
-
Si on prend "Contenu: Has taxonomy term" on a 2 choix: 1 seul voca et le choix "liste déroulante" / "termes séparés par des virgules". - Contenu: Published or admin Filters out unpublished content if the current user cannot view it... Qui cacherait les contenus non publiés si le visiteur n'a pas les droits de lecture?
- Contenu: User posted or commented. Display nodes only if a user posted the node or commented on the node.
Avec cette vue, il semble impossible de trouver les orphelins, mais elle est très utile pour gérer le contenu.
A première vue, on pense que créer un filtre sur profondeur =0 (ou<=1 l'entrée de livre) mais cela ne fonctionne pas (ca n'affiche rien) et génère le sql suivant:
SELECT node.title AS node_title, node.type AS node_type, book_menu_links.depth AS book_menu_links_depth, book_menu_links.weight AS book_menu_links_weight FROM {node} node LEFT JOIN {book} book ON node.nid = book.nid LEFT JOIN {menu_links} book_menu_links ON book.mlid = book_menu_links.mlid WHERE (( (book_menu_links.depth <= '1') )) LIMIT 10 OFFSET 0
On ne peux pas choisir non plus null. Solution: ajouter un tri sur la profondeur fait remeonter les orphelins.
Création d'une autre page (penser à overrider)
Ajouter les champs livre Poids et Profondeur. On note que les données qui ne sont pas dans un livre ont Profondeur et Poids =0. Les entrée de livre ont une Profondeur=1. Voici ce qui pourrait trouver nos orphelins (non intégrés dans un livre).
Le poids apparait dans le tri mais pas dans les filtres?!? La Hiérarchie n'apparait que dans les filtres...
3e page- avec relations Livre
A l'ajout d'une relation: avec le choix "Livre: Parent" et suivant
Ajout d'un champs Poids du livre (une liste "relationships apparait", on peux y choisir ou pas "Parent de livre") et Profondeur (chercher depth).