/** * Get sites data for moodle.org * @return array sites */ public static function get_sitesregister($fromid, $numrecs = 50, $modifiedafter = 0) { global $DB; // Ensure the current user is allowed to run this function $context = context_system::instance(); self::validate_context($context); require_capability('local/hub:viewinfo', $context); $params = self::validate_parameters(self::get_sitesregister_parameters(), array('fromid' => $fromid, 'numrecs' => $numrecs, 'modifiedafter' => $modifiedafter)); $hub = new local_hub(); $sites = $hub->get_sitesregister($params['fromid'], $params['numrecs'], $params['modifiedafter']); //create result. moodle.org (transformed for it.) $result = array(); foreach ($sites as $site) { $siteinfo = array(); $siteinfo['hubid'] = $site->id; $siteinfo['sitename'] = $site->name; $siteinfo['url'] = $site->url; $siteinfo['description'] = $site->description; $siteinfo['secret'] = $site->secret; $siteinfo['trusted'] = $site->trusted; $siteinfo['lang'] = $site->language; $siteinfo['timecreated'] = $site->timeregistered; $siteinfo['timeupdated'] = $site->timemodified; $siteinfo['adminname'] = $site->contactname; $siteinfo['adminemail'] = $site->contactemail; $siteinfo['adminphone'] = $site->contactphone; $siteinfo['imageurl'] = $site->imageurl; $siteinfo['prioritise'] = $site->prioritise; $siteinfo['country'] = $site->countrycode; $siteinfo['regioncode'] = $site->regioncode; $siteinfo['street'] = $site->street; $siteinfo['geolocation'] = $site->geolocation; $siteinfo['moodlerelease'] = $site->moodlerelease; $siteinfo['moodleversion'] = $site->moodleversion; $siteinfo['ipaddress'] = $site->ip; $siteinfo['courses'] = $site->courses; $siteinfo['users'] = $site->users; $siteinfo['enrolments'] = $site->enrolments; $siteinfo['resources'] = $site->resources; $siteinfo['questions'] = $site->questions; $siteinfo['modulenumberaverage'] = $site->modulenumberaverage; $siteinfo['posts'] = $site->posts; $siteinfo['participantnumberaverage'] = $site->participantnumberaverage; $siteinfo['deleted'] = $site->deleted; $siteinfo['publicationmax'] = $site->publicationmax; $siteinfo['badges'] = $site->badges; $siteinfo['issuedbadges'] = $site->issuedbadges; $siteinfo['unreachable'] = $site->unreachable; $siteinfo['timeunreachable'] = $site->timeunreachable; $siteinfo['score'] = $site->score; $siteinfo['errormsg'] = $site->errormsg; $siteinfo['timelinkchecked'] = $site->timelinkchecked; $siteinfo['serverstring'] = $site->serverstring; $siteinfo['override'] = $site->override; // $siteinfo['fingerprint'] = $site->fingerprint; // no need to send this out (also doesn't exist on moodle.org at all) $siteinfo['privacy'] = $site->privacy; //there is a privacy field at moodle.org registery table (as well as a 'public' field) - lets map directly now. // see MDLSITE-3041 for mapping (19 uses public and 2x uses privacy so this is for privacy -> public mapping since moodle.net is primarily 2x data.) $map = array('notdisplayed' => 0, 'named' => 1, 'linked' => 2); $siteinfo['public'] = $map[$site->privacy]; //this maintains what moodle.org is doing with its data there. // so going by what http://wiki.moodle.com/display/sysadmin/moodle.net+moodle.org+statistics+table+mapping+txt $result[] = $siteinfo; } return $result; }