Question

Un utilisateur est le propriétaire d'un seul noeud, et je veux rediriger l'utilisateur, au moment de la connexion, à son seul noeud propriété.

Comment puis-je obtenir le contenu du nœud si je sais que le? Utilisateur connecté

Était-ce utile?

La solution

Voici comment je le faire:

function MYHOOK_user_login(&$edit, $account) {
    global $user;
    $nid = db_query('SELECT nid FROM {node} WHERE uid = :uid', array(':uid' => $user->uid))->fetchField();
    drupal_goto('node/' . $nid);
}

Autres conseils

Jetez un oeil à hook_user_login -> http://api.drupal.org/api/drupal/modules--user--user.api.php/function/hook_user_login/7 . C'est là que vous pouvez ajouter votre propre code personnalisé pour faire des choses comme regarder l'ID de noeud (JNV) par ID utilisateur (uid) et émettre ensuite un drupal_goto ( http://api.drupal.org/api/drupal/includes--common.inc/ fonction / drupal_goto / 7 )

Il y a aussi la possibilité de faire la personnalisation avec le formulaire de connexion hook_form_alter qui pourrait être considéré comme plus d'une solution D6. Vous devrez fournir plus de détails si ces suggestions ne sont pas répondre à vos questions.

$nid = db_query('SELECT nid FROM {node} WHERE uid = :uid AND type = :type', array(':uid' => $user->uid, ':type' => $node_type))->fetchField():

vous obtiendrez le JNV.

Note:. S'il vous plaît ne pas tenir compte de cette réponse (voir les commentaires pour pourquoi)


$nid = db_select('node', 'n')
  ->fields('n', array('nid'))
  ->condition('n.uid', $user->uid)
  ->range(0, 1)
  ->fetchField()

Je serais tenté de le faire de cette façon, car il est plus comme « Drupal », bien que les autres suggestions sont certainement valables. Notez que j'ai mis une limite à l'instruction SQL pour la sécurité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à drupal.stackexchange
scroll top