Ciao ragazzi.
Dato che nel JED non ho trovato estensioni utili mi sono messo di buona lena e ho creato questo script PHP per l'inserimento nel db degli utenti provenienti da una lista CSV in un sito JOOMLA 3.X
Funziona così:
1. CREAZIONE DELLA LISTA UTENTI
prima si crea la lista degli utenti con i dati fondamentali:
nome1,cognome1,username1,email1
nome2,cognome2,username2,email2NB: ho sviluppato questo script avendo necessità di più utenti ma con la stessa password poichè ognuno poi andrà a modificarla (mi serviva per i colleghi dell'azienda). Tuttavia aggiungendo un semplice campo password alle variabile potrete personalizzare a seconda delle vostre esigenze.Ora salvate la lista in CSV.
2. CREAZIONE DELLO SCRIPT
ora creiamo un semplice script PHP che gestirà l'inserimento di quella lista sul db. Quello che dovrete fare voi è cambiare i parametri che ho indicato con XXXXXX (connessione al vostro db mysql, prefissi tabelle e password)
<?php
class smCONNECTION {
// ----> parametri di connessione al database
var $dbHost = "XXXXXX"; // host o indirizzo IP
var $dbNome = "XXXXXX"; //Nome utente database mysql
var $dbUser = "XXXXXX"; // user
var $dbPass = "XXXXXX"; // pass
var $connessione = NULL;
var $output = "";
// ----> metodo per attivare la
// ----> connessione al database
public function connetti() {
$this->connessione = mysql_connect($this->dbHost,
$this->dbUser,
$this->dbPass);
mysql_select_db($this->dbNome,$this->connessione);
return $this->connessione;
}
// ----> metodo per recuperare
// ----> ultimo record inserito
public function selectRow($tabella,$campi,$where) {
$html = "";
$sql = "SELECT * FROM $tabella $where ORDER BY id ASC LIMIT 1";
$result = @mysql_query($sql,$this->connetti());
$num = @mysql_num_rows($result);
$records = @mysql_fetch_object($result);
if (!$num) {
$this->output = NULL;
}
else {
$array = array();
foreach ($campi as $k=>$v) {
array_push($array,$records->$v);
}
@mysql_free_result($result);
$this->output = $array;
}
return $this->output;
}
// ----> metodo per recuperare una
// ----> lista di record; usando questo metodo
// ----> vengono recuperati i record che rispettano determinate clausole
public function selectRows($tabella,$campi,$where,$order) {
$html = "";
$sql = "SELECT * FROM $tabella $where $order";
$result = @mysql_query($sql,$this->connetti());
$num = @mysql_num_rows($result);
$records = @mysql_fetch_object($result);
if (!$num) {
$this->output = NULL;
}
else {
$array = array();
$i = 1;
while ($records) {
$lista = array();
foreach ($campi as $k=>$v) {
array_push($lista,$records->$v);
}
array_push($array,$lista);
$i++;
$records = @mysql_fetch_object($result);
}
@mysql_free_result($result);
$this->output = $array;
}
return $this->output;
}
// ----> metodo per il salvataggio dei dati
// ----> su database; metodo generico,
// ----> potrebbe essere usato per INSERT, UPDATE, DELETE
public function salva($sql) {
@mysql_query($sql,$this->connetti());
$this->output = TRUE;
return $this->output;
}
}
// ----> ----------------------------------
// ----> utilizzo della classe smCONNECTION
// ----> ----------------------------------
$sqlUtenti = new smCONNECTION;
// ----> parametri
$tabella = "XXXXXX_users";
$campi = "name,username,email,password";
// ----> lettura file CSV
$record = explode("\r",file_get_contents('lista.csv'));
for ($a=0; $a<count($record); $a++) {
$utente = explode(";",trim($record[$a]));
if ($utente[0] != '') {
$query = "INSERT INTO $tabella ($campi) VALUES ('".$utente[0]." ".$utente[1]."','".strtolower($utente[2])."','".strtolower($utente[3])."','".md5('XXXXXX')."');";
echo $query."[br /]";
$sqlUtenti->salva($query);
}
}
echo "[br /][br /]Fatto...[br /]";
?>
3. ULTIMO PASSO
Non vi resta che salvare questo file come importautenti.php e copiarlo assieme alla lista csv nella root del vostro sito via FTP. Per far funzionare il tutto andate su
www.nomevostrosito.it/importautenti.php e premete invio. Gli utenti verranno scritti nella tabella "_users".
4.PERMESSI
Ovviamente questi utenti non appertengono a nessun gruppo. Potete usare la funzione "Azioni multiple" della menù utenti del pannello amministrativo di Joomla per dare a tutti un ruolo (registered, author, ecc..)
Spero di essere di aiuto a qualcuno e sono contento per aver dato il mio contributo alla community!