original_string: public static function get_site_info($defaults = []) {
          global $CFG, $DB;
          require_once($CFG->libdir . '/badgeslib.php');
          require_once($CFG->dirroot . "/course/lib.php");
  
          $siteinfo = array();
          $cleanhuburl = clean_param(HUB_MOODLEORGHUBURL, PARAM_ALPHANUMEXT);
          foreach (self::FORM_FIELDS as $field) {
              $siteinfo[$field] = get_config('hub', 'site_'.$field.'_' . $cleanhuburl);
              if ($siteinfo[$field] === false) {
                  $siteinfo[$field] = array_key_exists($field, $defaults) ? $defaults[$field] : null;
              }
          }
  
          // Statistical data.
          $siteinfo['courses'] = $DB->count_records('course') - 1;
          $siteinfo['users'] = $DB->count_records('user', array('deleted' => 0));
          $siteinfo['enrolments'] = $DB->count_records('role_assignments');
          $siteinfo['posts'] = $DB->count_records('forum_posts');
          $siteinfo['questions'] = $DB->count_records('question');
          $siteinfo['resources'] = $DB->count_records('resource');
          $siteinfo['badges'] = $DB->count_records_select('badge', 'status <> ' . BADGE_STATUS_ARCHIVED);
          $siteinfo['issuedbadges'] = $DB->count_records('badge_issued');
          $siteinfo['participantnumberaverage'] = average_number_of_participants();
          $siteinfo['modulenumberaverage'] = average_number_of_courses_modules();
  
          // Version and url.
          $siteinfo['moodlerelease'] = $CFG->release;
          $siteinfo['url'] = $CFG->wwwroot;
  
          // Mobile related information.
          $siteinfo['mobileservicesenabled'] = 0;
          $siteinfo['mobilenotificationsenabled'] = 0;
          $siteinfo['registereduserdevices'] = 0;
          $siteinfo['registeredactiveuserdevices'] = 0;
          if (!empty($CFG->enablewebservices) && !empty($CFG->enablemobilewebservice)) {
              $siteinfo['mobileservicesenabled'] = 1;
              $siteinfo['registereduserdevices'] = $DB->count_records('user_devices');
              $airnotifierextpath = $CFG->dirroot . '/message/output/airnotifier/externallib.php';
              if (file_exists($airnotifierextpath)) { // Maybe some one uninstalled the plugin.
                  require_once($airnotifierextpath);
                  $siteinfo['mobilenotificationsenabled'] = \message_airnotifier_external::is_system_configured();
                  $siteinfo['registeredactiveuserdevices'] = $DB->count_records('message_airnotifier_devices', array('enable' => 1));
              }
          }
  
          // Analytics related data follow.
          $siteinfo['analyticsenabledmodels'] = \core_analytics\stats::enabled_models();
          $siteinfo['analyticspredictions'] = \core_analytics\stats::predictions();
          $siteinfo['analyticsactions'] = \core_analytics\stats::actions();
          $siteinfo['analyticsactionsnotuseful'] = \core_analytics\stats::actions_not_useful();
  
          // IMPORTANT: any new fields in siteinfo have to be added to the constant CONFIRM_NEW_FIELDS.
  
          return $siteinfo;
      }
code: public static function get_site_info($defaults = []) {
          global $CFG, $DB;
          require_once($CFG->libdir . '/badgeslib.php');
          require_once($CFG->dirroot . "/course/lib.php");
  
          $siteinfo = array();
          $cleanhuburl = clean_param(HUB_MOODLEORGHUBURL, PARAM_ALPHANUMEXT);
          foreach (self::FORM_FIELDS as $field) {
              $siteinfo[$field] = get_config('hub', 'site_'.$field.'_' . $cleanhuburl);
              if ($siteinfo[$field] === false) {
                  $siteinfo[$field] = array_key_exists($field, $defaults) ? $defaults[$field] : null;
              }
          }
  
          // Statistical data.
          $siteinfo['courses'] = $DB->count_records('course') - 1;
          $siteinfo['users'] = $DB->count_records('user', array('deleted' => 0));
          $siteinfo['enrolments'] = $DB->count_records('role_assignments');
          $siteinfo['posts'] = $DB->count_records('forum_posts');
          $siteinfo['questions'] = $DB->count_records('question');
          $siteinfo['resources'] = $DB->count_records('resource');
          $siteinfo['badges'] = $DB->count_records_select('badge', 'status <> ' . BADGE_STATUS_ARCHIVED);
          $siteinfo['issuedbadges'] = $DB->count_records('badge_issued');
          $siteinfo['participantnumberaverage'] = average_number_of_participants();
          $siteinfo['modulenumberaverage'] = average_number_of_courses_modules();
  
          // Version and url.
          $siteinfo['moodlerelease'] = $CFG->release;
          $siteinfo['url'] = $CFG->wwwroot;
  
          // Mobile related information.
          $siteinfo['mobileservicesenabled'] = 0;
          $siteinfo['mobilenotificationsenabled'] = 0;
          $siteinfo['registereduserdevices'] = 0;
          $siteinfo['registeredactiveuserdevices'] = 0;
          if (!empty($CFG->enablewebservices) && !empty($CFG->enablemobilewebservice)) {
              $siteinfo['mobileservicesenabled'] = 1;
              $siteinfo['registereduserdevices'] = $DB->count_records('user_devices');
              $airnotifierextpath = $CFG->dirroot . '/message/output/airnotifier/externallib.php';
              if (file_exists($airnotifierextpath)) { // Maybe some one uninstalled the plugin.
                  require_once($airnotifierextpath);
                  $siteinfo['mobilenotificationsenabled'] = \message_airnotifier_external::is_system_configured();
                  $siteinfo['registeredactiveuserdevices'] = $DB->count_records('message_airnotifier_devices', array('enable' => 1));
              }
          }
  
          // Analytics related data follow.
          $siteinfo['analyticsenabledmodels'] = \core_analytics\stats::enabled_models();
          $siteinfo['analyticspredictions'] = \core_analytics\stats::predictions();
          $siteinfo['analyticsactions'] = \core_analytics\stats::actions();
          $siteinfo['analyticsactionsnotuseful'] = \core_analytics\stats::actions_not_useful();
  
          // IMPORTANT: any new fields in siteinfo have to be added to the constant CONFIRM_NEW_FIELDS.
  
          return $siteinfo;
      }
code_tokens: public static function get_site_info ( $ defaults = [ ] ) { global $ CFG , $ DB ; require_once ( $ CFG -> libdir . '/badgeslib.php' ) ; require_once ( $ CFG -> dirroot . "/course/lib.php" ) ; $ siteinfo = array ( ) ; $ cleanhuburl = clean_param ( HUB_MOODLEORGHUBURL , PARAM_ALPHANUMEXT ) ; foreach ( self :: FORM_FIELDS as $ field ) { $ siteinfo [ $ field ] = get_config ( 'hub' , 'site_' . $ field . '_' . $ cleanhuburl ) ; if ( $ siteinfo [ $ field ] === false ) { $ siteinfo [ $ field ] = array_key_exists ( $ field , $ defaults ) ? $ defaults [ $ field ] : null ; } } // Statistical data. $ siteinfo [ 'courses' ] = $ DB -> count_records ( 'course' ) - 1 ; $ siteinfo [ 'users' ] = $ DB -> count_records ( 'user' , array ( 'deleted' => 0 ) ) ; $ siteinfo [ 'enrolments' ] = $ DB -> count_records ( 'role_assignments' ) ; $ siteinfo [ 'posts' ] = $ DB -> count_records ( 'forum_posts' ) ; $ siteinfo [ 'questions' ] = $ DB -> count_records ( 'question' ) ; $ siteinfo [ 'resources' ] = $ DB -> count_records ( 'resource' ) ; $ siteinfo [ 'badges' ] = $ DB -> count_records_select ( 'badge' , 'status <> ' . BADGE_STATUS_ARCHIVED ) ; $ siteinfo [ 'issuedbadges' ] = $ DB -> count_records ( 'badge_issued' ) ; $ siteinfo [ 'participantnumberaverage' ] = average_number_of_participants ( ) ; $ siteinfo [ 'modulenumberaverage' ] = average_number_of_courses_modules ( ) ; // Version and url. $ siteinfo [ 'moodlerelease' ] = $ CFG -> release ; $ siteinfo [ 'url' ] = $ CFG -> wwwroot ; // Mobile related information. $ siteinfo [ 'mobileservicesenabled' ] = 0 ; $ siteinfo [ 'mobilenotificationsenabled' ] = 0 ; $ siteinfo [ 'registereduserdevices' ] = 0 ; $ siteinfo [ 'registeredactiveuserdevices' ] = 0 ; if ( ! empty ( $ CFG -> enablewebservices ) && ! empty ( $ CFG -> enablemobilewebservice ) ) { $ siteinfo [ 'mobileservicesenabled' ] = 1 ; $ siteinfo [ 'registereduserdevices' ] = $ DB -> count_records ( 'user_devices' ) ; $ airnotifierextpath = $ CFG -> dirroot . '/message/output/airnotifier/externallib.php' ; if ( file_exists ( $ airnotifierextpath ) ) { // Maybe some one uninstalled the plugin. require_once ( $ airnotifierextpath ) ; $ siteinfo [ 'mobilenotificationsenabled' ] = \ message_airnotifier_external :: is_system_configured ( ) ; $ siteinfo [ 'registeredactiveuserdevices' ] = $ DB -> count_records ( 'message_airnotifier_devices' , array ( 'enable' => 1 ) ) ; } } // Analytics related data follow. $ siteinfo [ 'analyticsenabledmodels' ] = \ core_analytics \ stats :: enabled_models ( ) ; $ siteinfo [ 'analyticspredictions' ] = \ core_analytics \ stats :: predictions ( ) ; $ siteinfo [ 'analyticsactions' ] = \ core_analytics \ stats :: actions ( ) ; $ siteinfo [ 'analyticsactionsnotuseful' ] = \ core_analytics \ stats :: actions_not_useful ( ) ; // IMPORTANT: any new fields in siteinfo have to be added to the constant CONFIRM_NEW_FIELDS. return $ siteinfo ; }
docstring: Calculates and prepares site information to send to moodle.net as part of registration or update
  
  @param array $defaults default values for inputs in the registration form (if site was never registered before)
  @return array site info
docstring_tokens: Calculates and prepares site information to send to moodle . net as part of registration or update