¿Hay alguna función central para obtener el nombre de usuario en Drupal? O debería realizar una consulta db? mi campo es un campo de texto con '#autocomplete_path' igual que 'usuario/autocompletar'¿Hay alguna forma de obtener el nombre del usuario en Drupal?
Respuesta
Puede usar la función user_load
. Ver http://api.drupal.org/api/function/user_load/6
En particular ver http://api.drupal.org/api/function/user_load/6#comment-6439
por lo que sería hacer algo como esto:
// $name is the user name
$account = user_load(array('name' => check_plain($name)));
// uid is now available as $account->uid
no hay una función API hecho listo para esto, no que yo sepa. Pero puedes hacer tu propio si necesitas varios lugares. Debería ser bastante simple y directo consultar el db para el uid.
La función de carga de usuarios es muy pesado, utilizaría más recursos y volver más datos de los necesarios, he aquí una pequeña función agradable para usted:
function get_uid($username)
{
// Function that returns the uid based on the username given
$user = db_fetch_object(db_query("SELECT uid FROM users WHERE name=':username'", array(":username" => $username)));
return $user->uid;
}
Nota: Este código es revisado y de entrada se escapó , entonces el código no es peligroso de ninguna manera.
no coloque el correo electrónico en stackoverflow en este formato. Sabes que serás interceptado –
wow, que es una consulta muy peligrosa dado que está recibiendo información de un formulario ... google "ataque de inyección" – ErichBSchulz
hola gracias, tenía prisa, iba a actualizar el código ahora –
alguna razón no pude hacer el trabajo de consulta, pero me encontré con esto:
$user = user_load_by_name($username);
$user_id = $user->uid;
véase: http://api.drupal.org/api/drupal/modules%21user%21user.module/function/user_load_by_name/7
Su respuesta es bastante buena porque es simple y puede aplicarse dentro de una función de validación personalizada para iniciar sesión form (donde el usuario global var aún no está configurado) ¡Muchas gracias!+1 – Roger
Usted puede obtener toda la información sobre el usuario conectado con $user
variable global.
El código es:
<?php
global $user;
$uid = $user->uid;
echo $uid;
?>
Su solución es la mejor, pero cuando necesite hacer esto dentro de una función de validación personalizada para el formulario de inicio de sesión, debe usar la solución de Willem de Jong. +1 – Roger
- 1. ¿Hay alguna forma (distinta de sql) de obtener el mlid para un nid determinado en drupal?
- 2. ¿Hay alguna forma en Grails de obtener todo el registro?
- 3. ¿Hay alguna forma de cambiar el nombre del nombre de la cookie RequestVerificationToken?
- 4. ¿Hay alguna manera de obtener el UID del usuario en la máquina Linux usando Java?
- 5. ¿Hay alguna forma de que MS Access pueda obtener el usuario actual de Active Directory?
- 6. ¿Hay alguna forma de obtener el nombre de la unidad actual de un archivo de inclusión?
- 7. Git cli: obtener información de usuario del nombre de usuario
- 8. elisp: ¿Hay alguna manera de obtener el nombre del módulo .el actual (como __FILE__ en C)?
- 9. ¿Hay alguna forma de registrar automáticamente el nombre del método en Android?
- 10. ¿Cómo puedo obtener el primer nombre (o nombre completo) del usuario del teléfono?
- 11. ¿Cómo obtener el rol del usuario actualmente conectado en Drupal 7?
- 12. Obtener el nombre para mostrar del usuario de WindowsIdentity
- 13. ¿Hay alguna forma de pasar el iPhone?
- 14. ¿Hay alguna forma de obtener la cadena de agente de usuario predeterminada aparte de WebView.getSettings(). GetUserAgentString()?
- 15. ¿Hay alguna forma de encontrar el nombre del sistema operativo usando Java?
- 16. ¿Hay alguna forma de obtener una dirección de referencia?
- 17. ¿Hay alguna forma de devolver el tipo anónimo del método?
- 18. ¿Hay alguna manera de obtener el nombre de la función de llamada dentro del destinatario?
- 19. C# Active Directory: ¿Obtener el nombre de dominio del usuario?
- 20. ¿Hay alguna forma de obtener la dirección de un registro?
- 21. obtener el rol del usuario actual
- 22. ¿hay alguna forma de obtener componentes individuales de heroku toolbelt?
- 23. ¿Hay alguna forma de obtener el número de elementos del objeto?
- 24. ¿Obtener nombre de usuario en el constructor para el controlador?
- 25. ¿Cómo obtener el nombre de usuario/visualización en Buddypress?
- 26. ¿Hay alguna forma de 'resaltar' el código?
- 27. En Git, ¿hay alguna manera de obtener el nombre "amigable" para una confirmación arbitraria?
- 28. ¿Hay alguna forma de obtener XML de elemento por atributo?
- 29. JavaScript - Cómo obtener el nombre del usuario actual
- 30. ¿Hay alguna forma de cancelar TabControl.Items.CurrentChanging?
Para obtener el UID, esta es una manera bastante lenta para hacerlo, ya que involucra a todos los módulos que implementan hook_user creación de una cantidad desconocida de consultas. – googletorp
@googletorp: acepte que esto es lento. Pero pensé que sería más simple para Hamid de esta manera. En términos prácticos, 'node_load', que es similar en concepto a' user_load', pasa mucho en Drupal, si no me equivoco, y no afecta negativamente el rendimiento en la mayoría de los casos. Así que pensé que sería una buena idea recomendar 'user_load' –
Cuando él mismo pregunta si debería hacer una consulta de db, estoy seguro de que podrá hacerlo. No es tan complicado después de todo. – googletorp