Submitted by mamadoo06 on
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
Tu as 3 tables à prendre en
Permalien Soumis par Yoran le 20 Juillet, 2009 - 20:59
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
Permalien Soumis par mamadoo06 le 20 Juillet, 2009 - 23:02
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
Salut, Tu auras sûrement ta
Permalien Soumis par yvmarques@drupal.org le 20 Juillet, 2009 - 23:07
Salut,
Tu auras sûrement ta réponse en regardant cette fonction taxonomy_get_tree car c'est elle dant Drupal qui te permet d'avoir un liste comme ça.
Sinon pour ton besoin j'aurais crée un url qui puisse me renvoyer la liste en JSON (car c'est le plus simple en Drupal avec drupal_to_js) ou XML.
Salutations
Drupal ne la génère pas
Permalien Soumis par Yoran le 20 Juillet, 2009 - 23:49
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
Permalien Soumis par mamadoo06 le 21 Juillet, 2009 - 10:11
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
Permalien Soumis par yvmarques@drupal.org le 21 Juillet, 2009 - 10:23
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,