Domanda

Un utente è il proprietario di un solo nodo, e voglio reindirizzare l'utente, al momento del login, al suo nodo unica di proprietà.

Come posso ottenere il contenuto del nodo se conosco solo l'utente connesso?

È stato utile?

Soluzione

Questo è come io ho farlo:

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);
}

Altri suggerimenti

Date un'occhiata a hook_user_login -> http://api.drupal.org/api/drupal/modules--user--user.api.php/function/hook_user_login/7 . Questo è dove è possibile aggiungere il proprio codice personalizzato per fare le cose come cercare l'ID del nodo (NID) per ID utente (UID) e quindi emettere un drupal_goto ( http://api.drupal.org/api/drupal/includes--common.inc/ funzione / drupal_goto / 7 )

C'è anche la possibilità di fare la personalizzazione con hook_form_alter al form di login che potrebbe essere considerato più di una soluzione D6. Dovrete fornire maggiori dettagli se questi suggerimenti non si rivolgono alla tua domanda.

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

Questo ti porterà la nid.

. Nota: si prega di ignorare questa risposta (vedi i commenti per il motivo)


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

sarei tentato di farlo in questo modo dal momento che è il modo più 'Drupal', anche se gli altri suggerimenti sono certamente valide. Si noti che ho messo un limite al istruzione SQL per la sicurezza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top