Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Les nodes fantômes

Traduction de l'article de Michael Anello : The Phantom Nodes


« Je dois parler au Conseil des Jedi immédiatement. La situation s'est beaucoup compliquée. »

C'est à peu près ce que je me suis dit il y a quelques semaines lorsqu'un problème assez intéressant est apparu dans un projet sur lequel je travaillais. Je venais juste d'importer dans Drupal des données en provenance de sources tierces lorsque j'ai appris qu'en plus de ces quelques 3 000 nodes tout neufs, nous devions également prendre en compte quelques milliers « d'alias » supplémentaires pour chaque node. Et je ne parle pas là d'alias dans le sens drupalien du terme...

Dans notre cas, chaque node importé pouvait avoir plusieurs titres et chaque titre devait être disponible dans plusieurs Views et devait pouvoir être retrouvé via les fonctions de recherche de Drupal. Une contrainte supplémentaire était que nous ne devions pas simplement dupliquer le contenu des nodes et leur donner à chacun un nouveau titre. Nous avions besoin de nodes « fantômes ».

TPN-1.png

Pour illustrer le problème, prenons un simple exemple. Dans cette illustration nous avons un node rouge d'un type de contenu couleur. Nous avons en plus 6 nodes « fantômes », ils ont chacun un titre unique mais ils se rapportent tous au même node rouge. Aussi, dans une view qui affiche toutes les couleurs, chaque node réel ou fantôme est affiché sans biais. Mais lorsqu'un utilisateur clique sur l'un des nodes « fantôme » il est automatiquement redirigé vers le node rouge. Explicite ?

La solution que j'ai trouvé a été de créer un nouveau type de contenu « fantôme » qui n'avait que quelques caractéristiques : un titre, un champ de champ de redirection CCK pour enregistrer le chemin vers le « vrai » node, et une taxonomie identique à celle du « vrai » type de contenu.

Voici un aperçu du type de contenu « Couleur » :

TPN-2.png

Rien de spécial à dire dessus, c'est un type de contenu ordinaire avec quelques champs texte et une taxonomie « vocabulaire Couleur » activée.

Tous les types de contenus et les vues utilisées dans cet exemple sont disponibles en lien à la fin de cet article.

Regardons maintenant le type de contenu color_phantom :

TPN-3.png

Ce type de contenu accède à la même taxonomie que le type de contenu « réel » (ce sera utile plus tard lorsque nous filtrerons les vues), mais à aucun des champs texte descriptifs. De plus, il a un champ « real path » extra-spécial.

Ce champ « real path » (CCK Redirection) est un type de champ additionnel, qui s'ajoute au noyau de CCK (téléchargeable ici) et qui fournit un simple champ texte doté de quelques options. Je l'ai utilisé dans sa forme la plus basique, en type de redirection divert. D'autres types de redirection sont possibles, delay ou frameset.

Une fois que mes types de contenus ont été paramétrés, j'ai créé un node « rouge » (en empruntant le contenu à Wikipedia) :

TPN-4.png

Vous remarquerez le terme de taxonomie happy en bas du node. Rien de spécial non plus ici, je l'utiliserai plus tard dans une vue.

Maintenant je vais créer un node « fantôme ». Mais avant cela je devrais noter le chemin du node « rouge » en regardant la barre d'adresse de mon navigateur :

TPN-5.png

C'est node/13 que je dois conserver pour la suite (la section http://localhost:8888/drupaleasy/ est le chemin vers mon installation locale de Drupal, je n'ai besoin que du chemin « interne »).

Pour créer chaque node « fantôme », je crée simplement un nouveau node « Color phantom » (menu Administrer > Gestion du contenu > Créer un contenu > Color phantom), je lui donne un titre unique, la même taxonomie que le node « réel » et le chemin vers le vrai node :

TPN-6.png

Plutôt simple, non ? Rien de compliqué. En me basant sur le diagramme de départ, j'ai créé 5 autres nodes fantômes. Une fois fait, ma page admin/content/node ressemblait à ceci :

TPN-7.png

Maintenant, si vous vous logguez en tant qu'Utilisateur 1 (le premier utilisateur créé lorsque vous avez installé votre site web - celui qui a tous les super-pouvoirs), et que vous cliquez pour visiter l'un de vos nodes fantômes, vous ne serez pas redirigé où que ce soit. Vous verrez juste une message comme celui-ci :

TPN-8.png

C'est parce les droits configurés d'office pour le module CCK redirection (auxquels vous accédez dans Administrer > Gestion des utilisateurs > Droits d'accès) contournent la redirection. En tant qu'Utilisateur 1 vous ne serez jamais redirigé. Déconnectez-vous pour aller voir le node « scarlet » et vous serez automagiquement redirigé vers le node « Rouge ».

TPN-9.png

À ce stade le plus dur est fait. On peut facilement paramétrer une vue qui affiche toutes les couleurs et toutes les couleurs fantômes et qui nous dirige vers le node approprié quand on clique dessus. De plus, puisque j'ai dupliqué la taxonomie pour les nodes fantômes, Je peux aussi filtrer les views avec la taxonomie. Si vous voulez filtrer sur d'autres champs, vous devrez probablement dupliquer d'autres contenus - je n'ai pas encore trouvé d'autres moyens de le faire.

Voici un petit aperçu de la view paramétrée pour la démonstration :

TPN-10.png

Il reste encore une chose sympa à faire avec le module CCK redirection - il n'est pas obligé de rediriger vers un node - il peut rediriger vers n'importe quoi. Imaginez un peu ce que l'on faire avec...

Imaginez que vous créez une view qui ne soit pas une simple liste comme celle donnée en exemple. Imaginez un diaporama quelconque. Là, vous pouvez mélanger et regrouper des nodes, d'autres views, des pages de taxonomies, même des URL externes dans une seule view. Vous pouvez alors ajouter un champ image à chaque node utilisant le champ CCK Redirection et afficher l'image dans la vue, et lorsque l'utilisateur clique sur l'image, le rediriger à l'endroit approprié.

Avec ces nouvelles possibilités, vous vous sentirez de taille à affronter tout l'Empire. Que la Force soit avec vous.

Michael Anello - DrupalEasy.com.


Un dernier mot de la part du traducteur :

Les nodes fantômes ne sont pas destinés à être affichés en tant que contenus, comme le sont les nodes classiques. Ils sont seulement là pour être « disponibles » dans les vues de Views et permettre une redirection vers le contenu principal. Pour que la redirection fonctionne, vous devrez accorder les droits view field_realpath situé dans le groupe module content_permissions (Administrer > Gestion des utilisateurs > Droits d'accès).

Fichier attachéTailleAccèsLast download
ThePhantomNodes.zip3.35 Ko0Not yet downloaded