Requête SQL pour lister la taxonomie ?

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je souhaiterais afficher sur une page n'appartenant pas à Drupal la taxonomie et sa hiérarchie, sous la forme :

Vocabulaire 1
- Terme 1
--Sous-terme
--Sous-terme
--Sous-terme
--Sous-terme
-Terme 2
--Sous-terme
--Sous-terme
Vocabulaire 2

Je précise bien que je souhaite faire cette requête sans passer par Views ni un autre module mais directement dans la table.

Un grand merci
Cdt

Forum : 
Version de Drupal : 

Tu as 3 tables à prendre en compte : vocabulary, term_hierarchy et term_data.

select
  v.name,d.name,d.tid,h.parent
from term_data d
inner join term_hierarchy h on h.tid=d.tid
inner join vocabulary v on v.vid=d.vid
order by v.name,h.parent;

Il ne te reste plus qu'à parcourir le résultat et de créer ton arborescence.

Bonsoir et merci Yoran,

J'étais à peu pret persuadé que je pourrais compter sur ton aide, c'est très gentil.
L'obtention des données n'est en fait pas mon plus gros problème.
Ce qui l'est, c'est le tri de l'array que la requête me sort (et je le dis pour ceux qui tomberaient sur ce sujet via Google plus tard, vous pourrez trouver n'importe quelle requête effectuée par Drupal en installant le module Devel et en le paramétrant pour).

Drupal semble pouvoir générer la hiérarchie en une seule requête, par quelle magie et comment arrive t il à trier l'array en php afin de pouvoir l'afficher ainsi dans la liste des termes de la taxo ???

Merci

Drupal ne la génère pas différemment de ce que je t'ai passé. Suis le lien de yvmarques et tu verras la même requête avec un code de mise en forme du résultat. Je ne vois pas bien où est la magie sur ce coup là ;-)

Merci mais n'étant pas dans Drupal et n'ayant pas d'install Drupal sur le serveur, ça devient un casse tête car reprendre le code m'impose de reprendre la quasi totalité des fonctions définies par drupal (chaque fonction en appelle une autre).

Nous redéveloppons notre site depuis le début car Drupal nous laisse perplexe quand à sa complexité (il faudrait des mois de pratique et d'apprentissage pour pouvoir réussir à pondre un site à peu prêt équivalent à notre cahier des charges). Le problème n'est pas de créer des types de contenu, la taxo, etc. mais une fois le site rempli de contenu, il faut extraire des données (les 10 articles les plus lus, les membres ayant proposé le contenu le mieux noté, la liste des catégories de contenu, la liste des ressources d'un article, etc.) puis créer un thème sur mesure et là le casse tête devient infernal. :(

La seule fonction à la limite que tu dois refaire, c'est drupal_clone (et encore c'est pas nécessairement obligé).

Le reste tu peux facilement t'en passer, car le db_query etc.. c'est des fonctions que tu remplaces par mysql_query etc.

Sinon, comme j'ai dit, tu fais une page bête dans drupal (node add avec le format filter PHP) et qui te renvoie un JSON qui avec PHP tu peux très facilement convertir en Array pour reprendre dans ton nouveau projet.

Salutations,