function user_download_csv($userids, $fields, $includecompanyfield) { global $CFG, $SESSION, $DB; require_once $CFG->dirroot . '/user/profile/lib.php'; $filename = clean_filename(get_string('users') . '.csv'); header("Content-Type: application/download\n"); header("Content-Disposition: attachment; filename={$filename}"); header("Expires: 0"); header("Cache-Control: must-revalidate,post-check=0,pre-check=0"); header("Pragma: public"); $delimiter = get_string('listsep', 'langconfig'); $encdelim = '&#' . ord($delimiter); $row = array(); foreach ($fields as $fieldname) { if ($includecompanyfield || $fieldname != "profile_field_company") { $row[] = str_replace($delimiter, $encdelim, $fieldname); } } $row[] = "temppassword"; echo implode($delimiter, $row) . "\n"; foreach ($userids as $userid) { // Stop the script from timing out on large numbers of users. set_time_limit(30); $row = array(); if (!($user = $DB->get_record('user', array('id' => $userid)))) { continue; } profile_load_data($user); foreach ($fields as $field => $unused) { // Stop the script from timing out on large numbers of users. set_time_limit(30); if ($includecompanyfield || $field != "profile_field_company") { $row[] = str_replace($delimiter, $encdelim, $user->{$field}); } } $row[] = str_replace($delimiter, $encdelim, company_user::get_temporary_password($user)); echo implode($delimiter, $row) . "\n"; } die; }