Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
chamilo-lms/tests/datafiller/fill_many_users.php

61 lines
1.7 KiB

<?php
/**
* This script contains a data filling procedure for users
* @author Yannick Warnier <yannick.warnier@beeznest.com>
*
*/
require '../../main/inc/global.inc.php';
/**
* Executing
*/
//fill_many_users(100000);
/**
* Loads the data and injects it into the Chamilo database, using the Chamilo
* internal functions.
* @return array List of user IDs for the users that have just been inserted
*/
function fill_many_users($num)
{
$users = array(); //declare only to avoid parsing notice
require_once 'data_users.php'; //fill the $users array
$i = 1;
$output = [];
$batchSize = 20;
$em = Database::getManager();
while ($i < $num) {
$output[] = array('title' => 'Users Filling Report:');
foreach ($users as $j => $user) {
//first check that the first item doesn't exist already
$output[$i]['line-init'] = $user['firstname'];
$res = UserManager::create_user(
$user['firstname'],
$user['lastname'],
$user['status'],
$i.'_'.$user['email'],
$i.'_'.$user['username'],
$user['pass'],
null,
null,
null,
null,
$user['auth_source'],
null,
$user['active']
);
$output[$i]['line-info'] = ($res ? get_lang('Inserted') : get_lang('NotInserted')).' '.$user['username'].$i;
$i++;
if (($i % $batchSize) === 0) {
$em->flush();
$em->clear(); // Detaches all objects from Doctrine!
}
}
}
return $output;
}