Documentatie, zucht... ik beloof dat ik de komende maanden echt...
de code voor het profiel zit in /user/tabs.php, bijvoorbeeld heb ik een tabs periods erbij gemaakt, deze code checkt eerst de rechten (usercontext+has_capability) roept dan bij aanklikken van de tab de pagina periods.php op:
// periods tab
$usercontext = get_context_instance(CONTEXT_USER, $user->id);
if ($user->id == $USER->id || has_capability('moodle/user:viewdetails', $coursecontext ) ||
has_capability('moodle/user:viewdetails', $personalcontext ) ) {
$toprow[] = new tabobject('periods', $CFG->wwwroot.'/user/periods.php?id='
.$user->id.'&courseid='.$course->id ,get_string('Periods','dialogue'));
//end periods tab
Het eerste wat je op die pagina periods.php doet is natuurlijk ook weer de rechten checken om fishing te voorkomen..