示例#1
0
 /**
  * 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;
 }