File: /var/www/html/demo.sumarbc.com.py/local/presentialtracker/upload/index.php
<?php
require_once(__DIR__ . '/../../../config.php');
require_login();
require_capability('moodle/site:config', context_system::instance());
$PAGE->set_url(new moodle_url('/local/presentialtracker/upload/index.php'));
$PAGE->set_context(context_system::instance());
$PAGE->set_title(get_string('uploadcsv', 'local_presentialtracker'));
echo $OUTPUT->header();
echo $OUTPUT->heading(get_string('uploadheader', 'local_presentialtracker'));
echo '<form method="post" enctype="multipart/form-data">';
echo '<input type="file" name="csvfile" accept=".csv" required>';
echo '<br><br><input type="submit" value="' . get_string('submit', 'local_presentialtracker') . '">';
echo '</form>';
if (!empty($_FILES['csvfile']['tmp_name'])) {
$csv = array_map('str_getcsv', file($_FILES['csvfile']['tmp_name']));
$header = array_map('trim', $csv[0]);
unset($csv[0]);
global $DB;
$time = time();
foreach ($csv as $row) {
$data = array_combine($header, $row);
if (!isset($data['username'], $data['coursename'])) {
continue;
}
if ($user = $DB->get_record('user', ['username' => $data['username']])) {
$record = new stdClass();
$record->userid = $user->id;
$record->coursename = $data['coursename'];
$record->grade = $data['grade'] ?? '';
$record->comments = $data['comments'] ?? '';
$record->completiondate = strtotime($data['completiondate'] ?? '') ?: null;
$record->timecreated = $time;
$DB->insert_record('local_presentialtracker', $record);
}
}
echo $OUTPUT->notification(get_string('success', 'local_presentialtracker'), 'notifysuccess');
}
echo $OUTPUT->footer();