Structure hiérarchique à la Spip, dans Drupal !

Bonsoir,

Je sais que Drupal n'est pas orienté arborescence. Il se trouve néanmoins que les sites que je suis amené à faire sont basés sur des pages, possédants chacune un ou plusieurs articles. Le tout avec un menu qui permette d'afficher les pages.

Comment reproduire cela avec Drupal. Pour ceux qui connaissent Spip, vous aurez compris que j'essaie, un peu, de "Spipiser" Drupal. Il n'en reste pas moins que cette structure hiérarchique de pages/sous-pages/etc. me plait dans Spip. J'aimerais vraiment pouvoir procéder ainsi dans Drupal.

Comment procédez-vous habituellement ? A moins que personne n'emploie de structure hiérarchique dans Drupal ?

Merci à vous.

Version de Drupal : 

Si tu as peu de pages à produire, et que peu de personnes interviennent sur le site, le plus simple serait sans doute d'utiliser le module Book ; mais ce n'est pas très dynamique comme solution (le classement de l'ordre des pages, si tu veux modifier le classement par défaut, doit se faire à la main). C'est la solution adoptée sur kolossaldrupal.org (et sur drupal.org si je ne m'abuse). Pour quelque chose de plus dynamique, et de plus pratique pour les utilisateurs, il faut passer par la taxonomie + Views. Mais la structure spipienne n'est pas très simple à reproduire dans Drupal.

Merci pour cette réponse.

Il me semblait que la notion de rubriques et de sous-rubriques était compliquée à recréer dans Drupal. C'est bien bête...

Je vais essayer de voir avec la taxonomie, mais je ne comprends pas comment gérer une structure hiérarchique avec. C'est plutôt pour un regroupement horizontal, plutôt que vertical, non ?

Il y a eu une grosse discussion à ce sujet sur les groupes :
http://groups.drupal.org/node/22342

Pour ceux qui viennent de MODx aussi, "perdre" la hiéarchie et souffrir de la dichotomie menu/hiéarchie ce n'est pas facile...

On parle souvent du module Book mais ça ne règle pas par exemple la génération automatique d'URL hiérachiques ou la création automatique d'item de menu en fonction de la hiérarchie. Le module le plus abouti que j'ai trouvé est NodeHierarchy (il gère ces différents aspects, et plus) mais il n'est pas sans inconvénients (notamment conflits poentiel avec d'autres module comme forum, qu'on peut éviter en faisant attention aux types de contenu qu'on souhaite hiérarchique). La nouvelle version en cours de dév sera totalement ré-écrite apparemment, il y a peut-être espoir :)

Software is like sex, it's better when it's free (Linus Torvalds)

http://twitter.com/davidmolliere

Oui, la taxonomie en hiérarchique ce n'est pas top. En fait il faut comprendre que dans Drupal, contrairement à SPIP qui reproduit un peu le système Windows répertoires/fichiers, le contenu n'est pas rangé. Il [lui] est seulement "donné accès". La force de la taxo, c'est justement de pouvoir multiplier les accès possibles à un même contenu. C'est très déphasant au début car spontanément on a besoin de ranger son contenu. Mais il faut en réalité apprendre à le réorganiser autrement. C'est un saut qualitatif et conceptuel très important.

@Marie-Hélène :
saut conceptuel je suis d'accord, qualitatif je c'est une question de point de vue : il me semble que cela provient plutôt directement du systeme de menu (niveau API) de drupal qui est "plat" d'origine : une adresse url est relié à une fonction chargée d'afficher la page. Les pages ne sont pas contenus dans une entité hiérarchisable à mon sens.

Quand on programme, on peut définir une chemin qui aboutit à une hiérarchie; mais quand on ne programme pas on est obligé de faire appel à des modules comme nodehierarchy pour reproduire ce comportement finalement.

Un module te fournit souvent une page en dehors de toute hiérarchie (comme views par ex) et il faut effectuer des manips , voire utiliser un module comme "context" (ou peut être spaces que je connais pas encore) pour recréer la logique d'un espace "rubrique". (par exemple, décider de n'afficher un bloc que dans une rubrique particulière n'est pas facile dans Drupal).

Hello
Ma première remarque c'est que Drupal et Spip ne fonctionnement vraiment pas de la même manière; et si tu cherches absolument à résoudre un probleme particulier (par ex : créer des rubriques) en raisonnant "à la spip" alors que tu as Drupal entre les mains; tu vas déprimer :-) A nouveau CMS, nouveau schema de réflexion.

Pour la taxonomie c'est bien la première manière de hiérarchiser que tu dois essayer d'utiliser.
Tu peux créer les rubriques avec des termes de taxonomies, et des sous rubriques en créant des termes "enfants" à ces termes rubriques. Ensuite au besoin, le module views te permet de lister tes rubriques et sous rubriques de la manière que tu désires (puisqu'une taxonomie ça a un titre, une description, et ça peut avoir une image avec le module taxonomy image, pas si loin d'une rubrique spip en fait :-) )

Tu peux aussi être intéressé par le module taxonomy menu (ou autres,il y a beaucoup de possibilités de ce côté) qui te permet de générer des menus dynamiquement/automatiquement en fonction de la taxonomie que tu as crée.

Enfin le module taxonomy breadcrumb te permet d'avoir un fil d'arianne qui prend en compte la hiérarchie de la taxonomie.

A mon humble avis il faut bien faire le tour de cette manière de procéder avant d'essayer des choses comme nodehierarchy, pour comprendre comme fonctionne Drupal de ce côté. Mais comme le dit davidm effectivement nodehierarchy est celui qui se rapproche le plus de ce que tu cherches et peut être te conviendra t-il parfaitement...

Je ne vois pas la taxonomie comme exclusive d'un système hiérarchique, mais plutôt potentiellement complémentaire... on apprend à s'adapter sans mais si on regarde bien même la taxonomie est parfois utilisé pour créer des pseudos hiérarchies : on détourne l'outil de sa finalité pour contourner ses limitations :P

Car c'est bien une limitation, si Drupal avait une hiérarchie possible dans le core, ça n'empêcherai pas à la taxo d'avoir toute son utilité de navigation transversale...

L'autre aspect impacté c'est le fil d'ariane, qui prouve si besoin était que l'aspect hiérarchique des choses à quand même des lacunes qui obligent à des pirouettes pour rester cohérent...

Mais on s'éloigne...

Software is like sex, it's better when it's free (Linus Torvalds)

http://twitter.com/davidmolliere

Je ne considère pas cela comme un détournement dans le sens où c'est de base le seul élément du core qui utilise la notion de parent et d'enfant (le module book servant définitivement à faire un wiki et pas à construire un site, il n'est pas à prendre en compte pour moi). J'ai conçu une boutique en ligne il y a pas longtemps sur ce principe et je trouve le résultat très cohérent et facile à mettre en place, avec rubriques et sous rubriquage des produits ubercart, et affichage des sous-rubriques avec views (avec taxonomie image).
edit : ça n'empeche pas que je trouve aussi cette histoire de hiérarchie prise de tête et tu connais ma passion pour les fils d'arianne de Drupal :-)

Je viens d'être confrontée au même problème sur un tout petit projet local ; la solution que j'ai trouvée : Taxonomy + Hierarchical Select + Taxonomy Menu. Ce dernier est assez riche et je ne le connais pas encore bien : lire le fichier README.txt pour tout piger, en particulier l'intégration avec Views qui permet de différencier le comportement de l'affichage pour chaque menu/vocabulaire. Bien sûr une fois le menu créé il faut activer le bloc correspondant.
Cela semble marcher.

http://drupal.org/project/hierarchical_select
http://drupal.org/project/taxonomy_menu

Oui taxonomy_menu est une bonne solution. On m'a aussi parlé de http://drupal.org/project/taxonomy_treemenu mais je n'ai pas eu l'occasion de le tester. je ne sais pas en quoi ils diffèrent.

Menu block me parait bien aussi pour prendre le controler des menus avec encore plus de précisions : on peut lui faire prendre une partie de la taxonomie en choisissant le parent et la profondeur; de quoi construire des sous menus facilement.

Apparemment (coup d'oeil rapide) T_Treemenu permet de construire des menus à partir de "morceaux" de vocabulaires (et pas un vocabulaire complet par menu). Ensuite il y a probablement des différences dans la prise en charge de Views, des chemins, etc.

C'est dingue ce truc : même des problèmes auxquels on n'aurait jamais pensé ont déjà une solution :-) ! - bon, bien sûr, il faut tester les solutions existantes. Mais c'est quand même dingue...