/** * This function calculates the users to be added to backup based in the * settings defined at backup. All the resulting user ids are sent to * backup_ids for later usage. * @param int $courseid id of the course to backup * @param int $backup_unique_code unique code of the backup being executed * @param int $backup_unique_code setting specifying what users to export (0=all, 1=needed, 2=none) * @param int $backup_messages flag (true/false) defining if messages must be * considered to extract needed users * @param int $backup_blogs flag (true/false) defining if blogs must be * considered to extract needed users * @return array one array (key, value) sumarizing the result of the function (number of users) */ function user_check_backup($courseid, $backup_unique_code, $backup_users, $backup_messages, $backup_blogs) { global $DB; $context = get_context_instance(CONTEXT_COURSE, $courseid); $count_users = 0; $backupable_users = array(); if ($backup_users == 0) { /// All users $backupable_users = backup_get_all_users(); } else { if ($backup_users == 1) { /// Needed users /// Calculate needed users (calling every xxxx_get_participants function + scales users /// + messages users + blogs users) $needed_users = backup_get_needed_users($courseid, $backup_messages, $backup_blogs); /// Calculate enrolled users (having course:view cap) $enrolled_users = backup_get_enrolled_users($courseid); /// Calculate backupable users (needed + enrolled) /// First, needed $backupable_users = $needed_users; /// Now, enrolled if ($enrolled_users) { foreach ($enrolled_users as $enrolled_user) { $backupable_users[$enrolled_user->id]->id = $enrolled_user->id; } } } } /// If we have backupable users if ($backupable_users) { /// Iterate over users putting their roles foreach ($backupable_users as $backupable_user) { $backupable_user->info = ""; /// Is needed user or enrolled user, mark it as needed if (isset($needed_users[$backupable_user->id]) || isset($enrolled_users[$backupable_user->id])) { $backupable_user->info .= "needed"; } /// Yu: also needed because they can view course /// might need another variable /// Now create the backup_id record $backupids_rec->backup_code = $backup_unique_code; $backupids_rec->table_name = "user"; $backupids_rec->old_id = $backupable_user->id; $backupids_rec->info = $backupable_user->info; /// TODO: Change this call inserting to a standard backup_putid() call /// And read data acordingly with backup_getid() when needed. /// TODO: Also analyse it the "needed" info is really needed for anything. Drop if not. /// Insert the user to the backup_ids table. backup_user_info() will use that info $status = $DB->insert_record('backup_ids', $backupids_rec, false); $count_users++; } /// Do some output backup_flush(30); } /// Prepare Info /// Gets the user data $info[0][0] = get_string("users"); $info[0][1] = $count_users; return $info; }
function user_check_backup($course, $backup_unique_code, $backup_users, $backup_messages) { //$backup_users=0-->all // 1-->course (needed + enrolled) // 2-->none global $db, $CFG; $context = get_context_instance(CONTEXT_COURSE, $course); $count_users = 0; //If we've selected none, simply return 0 if ($backup_users == 0 or $backup_users == 1) { //Now, depending of parameters, create $backupable_users if ($backup_users == 0) { //Calculate all users (every record in users table) $all_users = backup_get_all_users(); $backupable_users = $all_users; } else { //Calculate needed users (calling every xxxx_get_participants function + scales users) $needed_users = backup_get_needed_users($course, $backup_messages); //Calculate enrolled users (students + teachers) $enrolled_users = backup_get_enrolled_users($course); //Calculate course users (needed + enrolled) //First, needed $course_users = $needed_users; //Now, enrolled if ($enrolled_users) { foreach ($enrolled_users as $enrolled_user) { $course_users[$enrolled_user->id]->id = $enrolled_user->id; } } $backupable_users = $course_users; } //If we have backupable users if ($backupable_users) { //Iterate over users putting their roles foreach ($backupable_users as $backupable_user) { $backupable_user->info = ""; //Is needed user (exists in needed_users) if (isset($needed_users[$backupable_user->id])) { $backupable_user->info .= "needed"; } else { if (isset($course_users[$backupable_user->id])) { $backupable_user->info .= "needed"; } } // Yu: also needed because they can view course // might need another variable //Now create the backup_id record $backupids_rec = new stdClass(); $backupids_rec->backup_code = $backup_unique_code; $backupids_rec->table_name = "user"; $backupids_rec->old_id = $backupable_user->id; $backupids_rec->info = $backupable_user->info; //Insert the record id. backup_users decide it. //When all users $status = insert_record('backup_ids', $backupids_rec, false); $count_users++; } //Do some output backup_flush(30); } } //Prepare Info //Gets the user data $info[0][0] = get_string("users"); $info[0][1] = $count_users; return $info; }