Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Quick and dirty XOOPS user import from csv file
<?php
/**
* modified from script by christian@frxoops.org
* Import users from a csv file into xoops 2.5.8
*
* Put this file and your users.cvs file in the root of your site
* go to http://yoursite/import_users.php in your browser
* click the button to rn the import
*
* Don't forget to DELETE it after you run it!
*/
/* Example users.csv file:
Bill;Barra;bill.barra@yahoo.com;changeme
Mark;Knopfler;mark@knopfler.com;changeme
Jim;Morrison;jim.morrison@gmail.com;changeme
Roger;Daltrey;roger@daltrey.com;changeme
*/
// assuming this is in the web root
include 'mainfile.php';
// make sure we run as a POST transaction, so database operations do not need "force"
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo '<form action="" method="POST"><input type="submit" value="Click to import"></form>';
exit();
}
$fichier = 'users.csv'; // data file as : first name(pseudo);last name;email;password
// remove line break on last record
/** @var XoopsMemberHandler $memberHandler */
$memberHandler = xoops_getHandler('member');
if (false === $memberHandler) die("Unable to create member handler");
$time = time();
// Open file for read
if (file_exists($fichier))
$fp = fopen("$fichier", "r");
else{ // unknown file
echo "File not found !Import stopped.\n";
exit();
}
echo '<pre>Begin file import '.$fichier."\n";
// import line by line
while (!feof($fp)) {
$ligne = fgets($fp, 4096);
if ('' === trim($ligne)) {
continue; // blank line
}
$liste = explode(";", $ligne); // create array
foreach ($liste as $index => $value) {
$liste[$index] = trim($value);
}
/** @var XoopsUser $user */
$user = $memberHandler->createUser();
$user->setVar('uname', $liste[0]);
$user->setVar('name', $liste[1]);
$user->setVar('email', $liste[2]);
$user->setVar('pass', md5($liste[3]));
$user->setVar('user_regdate', $time);
$user->setVar('user_level', 1); // activated
$user->setVar('user_viewemail', 1);
$user->setVar('user_avatar', 'avatars/blank.gif');
$uid = $memberHandler->insertUser($user);
if (false === $uid) {
echo sprintf("Failed to insert user %s \n", $liste[0]);
echo "Importation stoppée.\n</pre>";
fclose($fp);
exit();
}
$memberHandler->addUserToGroup(XOOPS_GROUP_USERS, $uid);
echo sprintf("Record %d - %s added\n", $uid, $user->uname());
}
echo "Import finished successfully.\n</pre>";
fclose($fp);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment