Created
March 2, 2017 21:58
-
-
Save geekwright/3cc71647bdfd035e609c3a045fc6db41 to your computer and use it in GitHub Desktop.
Quick and dirty XOOPS user import from csv file
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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