Hallo Bernd,
danke für den Link, das scheint ja ganz nützlich zu sein. Für meine Zwecke habe ich als Notlösung nun den Core erweitert. Angezeigt werden beim Anlegen eines neuen Nutzers dabei alle Kurse mitsamt Kategorienamen als Auswahlliste. Gespeichert wird dabei die Kurszuordnung mit manueller Einschreibung ungeachtet ggf. vorhandener Metakurse.
/users/editadvanced_form.php, ab Zeile 47 (Moodle 2.6)
$mform->setType('username', PARAM_RAW);
# NEU / Kursauswahl für neuen Nutzer:
if ($userid == -1) {
$displaylist = coursecat::make_categories_list('moodle/category:manage');
$keyDisplaylist=array_keys($displaylist);
for($i=0; $i < count($displaylist); $i++) {
$courses = get_courses($keyDisplaylist[$i]);
foreach ($courses as $course) {
$courselist[$course->id] = $displaylist[$keyDisplaylist[$i]].": ".$course->fullname;
}
}
$mform->addElement('select', 'course_id', get_string('coursecategory'), $courselist);
}
/users/editadvanced.php, ab Zeile 185 (Moodle 2.6)
$usernew->id = user_create_user($usernew, false);
# NEU / Kursauswahl für neuen Nutzer:
if (!empty($usernew->course_id)) {
$rs = $DB->get_record('enrol', array('courseid'=>$usernew->course_id, 'enrol'=>'manual'), '*');
$enrrecord = new stdClass();
$enrrecord->status = 0;
$enrrecord->enrolid = $rs->id;
$enrrecord->userid = $usernew->id;
$enrrecord->timestart = time();
$enrrecord->timeend = 0;
$enrrecord->modifierid = 2;
$enrrecord->timecreated = time();
$enrrecord->timemodified = time();
$DB->insert_record('user_enrolments', $enrrecord);
}
Schöne Grüsse
Daniel