/**
* Returns $course object of the top-level site.
*
* @return course A {@link $COURSE} object for the site
*/
function get_site() {
global $SITE;
if (!empty($SITE->id)) { // We already have a global to use, so return that
return $SITE;
}
if ($course = get_record('course', 'category', 0)) {
return $course;
} else {
return false;
}
}
Why not change the second if to
if ($SITE = get_record('course', 'category', 0)) {
return $SITE;
} else {
return false;
}
So that if you call get_site once, the global is initialised for future calls.