Frage

Ein Benutzer ist der Eigentümer von nur einem Knoten, und ich möchte den Benutzer zur Anmeldezeit zu seinem einzigen Knoten umleiten.

Wie kann ich den Knoteninhalt erhalten, wenn ich nur den angemeldeten Benutzer kenne?

War es hilfreich?

Lösung

So habe ich es gemacht:

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

Andere Tipps

Sich ansehen Hook_user_login -> http://api.drupal.org/api/drupal/modules-- user-- user.api.php/function/hook_user_login/7. Hier können Sie Ihren eigenen benutzerdefinierten Code hinzufügen, um Dinge wie die Node -ID (NID) per Benutzer -ID (UID) durchzusehen und dann a zu geben Drupal_goto (http://api.drupal.org/api/drupal/includes-common.inc/function/drupal_goto/7)

Es gibt auch die Möglichkeit, die Anpassung mit durchzuführen Hook_form_alter in der Anmeldeform, die eher als D6 -Lösung betrachtet werden kann. Sie müssen mehr Details angeben, wenn diese Vorschläge Ihre Frage nicht behandeln.

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

Dadurch werden Sie das NID bekommen.

Hinweis: Bitte ignorieren diese Antwort (siehe Kommentare, warum).


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

Ich wäre versucht, es so zu tun, da es eher die "Drupal" -Straße ist, obwohl die anderen Vorschläge sicherlich gültig sind. Beachten Sie, dass ich die SQL -Anweisung zur Sicherheit begrenzt habe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit drupal.stackexchange
scroll top