Function To Mass-register User Accounts? »  Show posts from    to     

Icy Phoenix


Old Support Topics - Function To Mass-register User Accounts?



alexlehm [ Wed 03 Mar, 2010 21:31 ]
Post subject: Function To Mass-register User Accounts?
Version: 13053a new install

I have just started using Icy Phoenix to build an internal forum that I want to use for our development department.
To get the project going, I started creating user accounts for the people instead of having everybody register themselves and I would like to automate this in some way.
Assuming that I have CSV file with necessary data, can the user creation process be automated? Either by inserting the records directly into the database or by calling a xml-rpc or something similar?
If this is not possible currently, would it be feasible to create a batch registration process?


bye, Alexander


Mighty Gorgon [ Thu 25 Mar, 2010 11:09 ]
Post subject: Re: Function To Mass-register User Accounts?
I have created a file for doing that a while ago... but never tested it on live websites and IP 1.3.

You can have a try and let us know.

Code: [Hide] [Select]
<?php
/**
*
* @package Icy Phoenix
* @version $Id$
* @copyright (c) 2008 Icy Phoenix
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

define('CTRACKER_DISABLED', true);
define('IN_ICYPHOENIX', true);
if (!defined('IP_ROOT_PATH')) define('IP_ROOT_PATH', './');
if (!defined('PHP_EXT')) define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
include(IP_ROOT_PATH . 'common.' . PHP_EXT);

// Start session management
$userdata = session_pagestart($user_ip);
init_userprefs($userdata);
// End session management

die('Decomment me!!!');

@set_time_limit(0);
//@ignore_user_abort(true);
@ini_set('memory_limit', '64M');

$users_start = request_var('us', 0);
$users_step = request_var('up', 50);

$users_data = array();

/*
$users_data[] = array(
'username' => 'username',
'user_password' => 'password',
'user_email' => 'email',
'user_style' => 1;
'user_lang' => 'english',
'user_timezone' => '0.00',
'user_dateformat' => 'Y/m/d - H:i',
);

$users_data[] = array(
0 => 'username',
1 => 'password',
2 => 'email',
3 => 'user_style',
4 => 'lang',
5 => 'user_timezone',
6 => 'user_dateformat',
);

CSV Example:
"User 01","pwd01","user01@user01.com",1,"english","0.00","Y/m/d - H:i"
"User 02","pwd02","user02@user01.com",1,"english","0.00","Y/m/d - H:i"
"User 03","pwd03","user03@user01.com",1,"english","0.00","Y/m/d - H:i"
*/

$users_counter = 0;
$handle = fopen('users_to_add.csv', 'r');
while (($data = fgetcsv($handle, 0, ',')) !== false)
{
$num = sizeof($data);
for ($c = 0; $c < $num; $c++)
{
$users_data[$users_counter][$c] = $data[$c];
}
$users_counter++;
}
fclose($handle);

//include($phpbb_root_path . 'users_to_add.' . $phpEx);

$users_list = '';
$total_users = sizeof($users_data);
$users_this_step = min($users_start + $users_step, $total_users);
$users_this_step = ($users_this_step == 0) ? $total_users : $users_this_step;
$new_start = $users_start;

include(IP_ROOT_PATH . 'includes/class_users.' . PHP_EXT);
$users_class = new class_users();

$users_fields_name = array('username', 'user_password', 'user_email', 'user_style', 'user_lang', 'user_timezone', 'user_dateformat');
for ($i = $users_start; $i < $users_this_step; $i++)
{
$users_fields_values = array($users_data[$i][0], $users_data[$i][1], $users_data[$i][2], $config['default_style'], $config['default_lang'], $config['board_timezone'], $config['default_dateformat']);
for ($j = 0; $j < sizeof($users_fields_name); $j++)
{
$users_data[$i][$j] = (empty($users_data[$i][$j])) ? $users_fields_values[$j] : $users_data[$i][$j];
$users_data[$i][$users_fields_name[$j]] = $users_fields_values[$j];
unset($users_data[$i][$j]);
}
$action_result = $users_class->create_user($users_data[$i]['username'], $users_data[$i]['user_password'], $users_data[$i]['user_email'], $users_data[$i]['user_style'], $users_data[$i]['user_lang'], $users_data[$i]['user_dateformat'], $users_data[$i]['user_timezone'], true, true);
if ($action_result)
{
$users_list .= (($users_list == '') ? '' : ', ') . $users_data[$i]['username'];
}
$new_start++;
}

$message_text = 'The following users have been added to the DB:<br /><br />' . $users_list;

if ($new_start >= $total_users)
{
$message = 'All users have been imported correctly!<br /><br />' . $message_text;
$template->assign_vars(array(
'MESSAGE_TITLE' => $meta_content['page_title'],
'MESSAGE_TEXT' => $message,
)
);
full_page_generation('message_body.tpl', 'Users Import', '', '');
}
else
{
$redirect_url = append_sid('users_add.' . PHP_EXT . '?us=' . $new_start . '&amp;up=' . $users_step);
meta_refresh(3, $redirect_url);
$message = 'The process is not finished yet, this page will redirect automatically in few seconds, please wait...<br /><br />' . $message_text;
message_die(GENERAL_MESSAGE, $message);
}

exit;

?>




Powered by Icy Phoenix