Ottenere la lista degli utenti [risolto]

4 contenuti / 0 new
Ultimo contenuto
Ottenere la lista degli utenti [risolto]

Ciao a tutti,
apro questo post per porvi la seguente domanda: come faccio ad ottenere la lista di tutti gli utenti di un'installazione?
Mi piacerebbe avere come valore ritornato un array contenente tante variabili a-la-$user quanti utenti ci sono, ma anche dopo diverse ricerche, sia tra i moduli che sull'api di drupal, non ho trovato nulla di significativo: neanche il codice dei moduli user, user_list e userlist mi è venuto incontro, in quanto l' unica soluzione che ho visto essere adottata è la query diretta sul DB.
Questa è una soluzione a basso livello, che vorrei evitare in quanto ho in mente un modulo per Drupal 5/6/7 e mi sarebbe più comodo fare affidamento su un'interfaccia di programmazione piuttosto che su una query...
Se poi dovrò scrivere pure un modulo UserS perchè al momento non c'è... basta saperlo x°D

fatto velocemente (ma poco performante):

<?php
$max_uid
= db_fetch_array(db_query("SELECT uid FROM {users} LIMIT 1 ORDER BY uid DESC"));
$users = array();
for(
$i = 1; $i < $max_uid; $i++) {
 
$user = user_load($i);
  if(
$user) {
   
$users[$user->uid] = $user;
  }
}
?>

non l'ho provato ma dovrebbe andare (e ovviamente si può ottimizzare).

Ciao
Marco
--
My blog
Working at @agavee

Fantastico, non avevo notato la funzione user_load...
grazie mille ;)

Ok, ho provato il codice, con qualche piccola modifichina funziona.
Adesso qualsiasi suggerimento per migliorarlo è ben accetto :)

<?php
function mymodule_users_list() {
   
$max_uid = db_fetch_object(db_query("SELECT MAX(uid) AS uid FROM {users}"))->uid;
   
$users = array();
    for (
$i = 1; $i <= $max_uid; $i++) {
      if (
$user = user_load(array("uid" => $i))) {
       
$users[$user->uid] = $user;
      }
    }
    return
'<pre>'. print_r($users, TRUE) .'</pre>';
}
?>