Pregunta

Un usuario es el propietario de un solo nodo, y quiero redirigir al usuario, en el momento de inicio de sesión, a su nodo sólo propiedad.

¿Cómo puedo obtener el contenido del nodo si sé sólo el usuario conectado?

¿Fue útil?

Solución

Esta es la forma en que he de hacerlo:

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

Otros consejos

Tome un vistazo a hook_user_login -> http://api.drupal.org/api/drupal/modules--user--user.api.php/function/hook_user_login/7 . Aquí es donde usted puede añadir su propio código personalizado para hacer cosas como buscar el ID de nodo (NID) por ID de usuario (UID) y luego emitir un drupal_goto ( http://api.drupal.org/api/drupal/includes--common.inc/ función / drupal_goto / 7 )

También existe la opción de hacer la personalización con hook_form_alter al formulario de acceso que podría considerarse más de una solución D6. Usted tendrá que proporcionar más detalles si estas sugerencias no están abordando su pregunta.

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

Esto le dará el NID.

Nota:. No tenga en cuenta esta respuesta (ver los comentarios para qué)


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

estaría tentado a hacerlo de esta manera ya que es la forma más 'Drupal, aunque las otras sugerencias son ciertamente válido. Tenga en cuenta que he puesto un límite en la instrucción SQL para la seguridad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top