2009-09-19 10 views
0

Je me demandais s'il y avait une méthode intégrée dans Drupal, pour créer un lien vers des nœuds créés par un utilisateur. Dans mon cas, chaque utilisateur peut créer un noeud appelé "profil". Je veux ajouter un lien dans le menu, qui lie directement à ce noeud de profil.Élément de menu dynamique dans Drupal?

Je peux le faire en faisant un module qui vérifie simplement un lien, par ex. mysite.com/?goTo=profile puis écris simplement le sql pour trouver le premier noeud de type "profile" dans la db puis redirige juste vers ça, mais sûrement drupal doit avoir une sorte de syntaxe ou quelque chose par laquelle tu peux spécifier qu'il doit être lié au premier noeud de type x de l'utilisateur y?

Répondre

1

Non, il n'y a pas l'API, ni dans le code, ni dans la UI.

Mais comme vous l'avez dit, il devrait être facile d'écrire un petit module pour cela. On dirait qu'il y en avait un à un moment donné mais a été abandonné: http://drupal.org/project/user_profile_node_integrator.

pourrait travailler comme ça:

  • inscrire un chemin de menu comme/myprofile

  • Ajouter un rappel d'accès qui vérifie si l'utilisateur a un tel noeud. (Vous pouvez ajouter un deuxième élément de menu qui pointe vers node/add/whatever s'il ne l'affiche pas et ne montre que dans ce cas.)

  • Dans votre rappel de page, chargez le nid et appelez directement node_view ($ nid) ou transférer vers le noeud/$ nid.

+0

Le module d'alias "moi" fait également l'affaire. – coderama

1

Je créerais une vue (limite 1, filtre sur le type de contenu et le champ d'utilisateur) et utiliser soit Insert View ou views_embed_view() pour l'amener dans.

+0

Ce n'est pas une mauvaise idée du tout! :-) Je préférerais toujours lier directement au nœud (car il montrera le lien correct dans la barre de titre) mais je suppose que cela pourrait faire l'affaire. – coderama

Questions connexes