2
Je découvre le monde drupal et la puissance des modules ! Pour le site LLV, j'ai du installer un certain nombre de modules pour pouvoir filtrer le contenu suivant les visiteurs du site, notamment anonyme ou membre de l'association. Pour aide-mémoire, voici la liste des modules drupal installés.
Views PHP filter
Comme son nom l'indique, ce module permet de créer des filtres personnalisés pour le module Views. Par défaut, les filtres de Views sont combinés avec un opérateur binaire AND. Or je voulais pouvoir filtrer la vue suivant la taxonomie 'membre' suivant que l'utilisateur était anonyme ou non.
Voici le code snippet utilisé :
- dans les filtres de Views, rajouter un filtre de type "Node ID PHP"
- dans la configuration du filtre, cliquer sur : "exclude these IDs"
- dans la textarea "PHP", rentrez le code suivant :
<code> global $user; $uid = $user->uid; $nids = array(); if (!$uid) {
// anonymous user;
$result = db_query("SELECT node.nid FROM node node LEFT JOIN term_node term_node ON node.vid = term_node.vid LEFT JOIN term_data term_data ON term_node.tid = term_data.tid WHERE (term_data.name) NOT LIKE ('%membre%');");
while ($row = db_fetch_array($result)) {
$nids = $row'nid';
}
return $nids;
} ?> </code>

