Studio Synthesis

crm, BI, opensource, web marketing, sicurezza, etc

Script importazione utenti in Joomla 1.5

with one comment

Rilasciamo uno script php per importare utenti in un database di Joomla CMS (situazione tipica: ho un sito nuovo in Joomla 1.5, già online, e ci voglio aggiungere gli utenti registratisi in un altro mio sito, in Joomla 1.0)

Credits (& critics🙂 to a.fortin@studiosynthesis.biz.

Lo script è una rielaborazione di codice precedente, reperito in rete (ad oggi il sito non è online, vedi copia cache di google).

Ecco lo script – disponibile anche nella categoria IT Stuff della sezione Downloads del sito di Studio Synthesis:

<?php
//database data
$dbhost=””;
$dbname=””;
$dbuser=””;
$dbpass=””;
//filename
$filename=”users.csv”;

$debugactive=false;
$fileline=0;
$recordsupdated=0;
$skippedrecords=-1;

$file=fopen($filename,”r”) or exit(“Unable to open file!”);

$con = mysql_connect($dbhost,$dbuser,$dbpass);
if (!$con) {
die(‘Could not connect: ‘ . mysql_error() . “\n”);
}
else {
mysql_select_db($dbname, $con) or die(mysql_error());
if ($debugactive) echo “Connection with db Ok\n—————————-\n”;
}

while(!feof($file))
{
$fileline = $fileline+1;
$string= fgets($file);
$token = strtok($string, “,”);

$found=false;
$i=0;
$array;

while ($token !== false)
{
$array[$i]= str_replace(“\””, “”, trim($token));
if ($debugactive) echo $i.” = “.$array[$i].”\n”;

$i.”\n”;
$i=$i+1;
$token = strtok(“,”);
}
//done making the array to insert into the MySQL tables

//encrypt the password
//$pw= md5($array[0]);
//$pw= $array[0];

$result = mysql_query(“SELECT * FROM jos_users WHERE username=’$array[1]'”);
//check if User exists in the table
while($row = mysql_fetch_array($result)) {
$found=true;
echo $row[‘username’] . ” – found skipping this row ($fileline)\n”;
$skippedrecords = $skippedrecords + 1;
}
if($found==true) {
continue;
$found=false;
}

//insert into the 3 joomla tables
//jos_users
//jos_core_acl_aro
//jos_core_acl_groups_aro_map

//start with jos_users
$insertQuery=”INSERT INTO jos_users (name,username,email,password,usertype,block,sendEmail,gid,registerDate,lastvisitDate,activation,params)
VALUES (‘$array[0]’,’$array[1]’,’$array[2]’,’$array[3]’,’$array[4]’,’$array[5]’,’$array[6]’,’$array[7]’,’$array[8]’,’$array[9]’,’$array[10]’,’$array[11]’)”;
if (! mysql_query($insertQuery)) die(“Wrong query:\n”.”$insertQuery”.”\n”);
$recordsupdated = $recordsupdated + 1;

//now do a select statement to figure out the jos_user ID you just generated
$result = mysql_query(“SELECT id FROM jos_users WHERE username=’$array[1]'”);

while($row = mysql_fetch_array($result))
{
$joomID= $row[‘id’];
}
if ($debugactive) {
echo “added user: “. $array[1];
echo “\n”;
echo “Joomla ID: ” . $joomID;
echo “\n”;
}
//now insert jos_core_acl_aro
$insertQuery=”INSERT INTO jos_core_acl_aro
(section_value, value, order_value, name, hidden)
VALUES (‘users’, ‘$joomID’, ‘$array[11]’, ‘$array[12]’, ‘$array[13]’)”;
if (! mysql_query($insertQuery)) die(“Wrong query:\n” . “$insertQuery” . “\n”);

//now find out the jos_core_acl_aro ID you just generated
$result = mysql_query(“SELECT id FROM jos_core_acl_aro WHERE value=’$joomID'”);
while($row = mysql_fetch_array($result))
{
$aroID= $row[‘id’];
}
if ($debugactive) echo “with aroID: ” . $aroID . “\n”;

//now insert into jos_core_acl_groups_aro_map
mysql_query(“INSERT INTO jos_core_acl_groups_aro_map (group_id , aro_id) VALUES (‘$array[14]’,’$aroID’)”);
}
$fileline = $fileline – 1;
echo “Total processed lines = ” . $fileline . “\n”;
echo “Added ” . $recordsupdated . ” records\n”;
echo $skippedrecords . ” record(s) already present\n”;
?>

Enjoy Joomla, enjoy opensource🙂

Written by cbeschi

9 febbraio 2009 a 5:59 PM

Pubblicato su cms, joomla

Tagged with , ,

Una Risposta

Subscribe to comments with RSS.

  1. Salve,

    è proprio il problema su cui sto sbattendo la testa da diversi giorni…ho aggiornato il sito da joomla 1.0.15b a joomla 1.5.18 ma non c’è verso di migrare gli utenti!

    Scusate la mia ignoranza ma come uso questo script?

    Grazie

    Marco

    10 giugno 2010 at 6:23 PM


Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: