public function StatusSystem::calculateScore in Site Audit 8.3
.
Overrides SiteAuditCheckBase::calculateScore
File
- src/
Plugin/ SiteAuditCheck/ StatusSystem.php, line 114
Class
- StatusSystem
- Provides the StatusSystem Check.
Namespace
Drupal\site_audit\Plugin\SiteAuditCheckCode
public function calculateScore() {
// See system/system.admin.inc function system_status().
// Load .install files.
include_once DRUPAL_ROOT . '/core/includes/install.inc';
drupal_load_updates();
// Check run-time requirements and status information.
$this->registry->requirements = \Drupal::moduleHandler()
->invokeAll('requirements', [
'runtime',
]);
usort($this->registry->requirements, function ($a, $b) {
if (!isset($a['weight'])) {
if (!isset($b['weight'])) {
return strcmp($a['title'], $b['title']);
}
return -$b['weight'];
}
return isset($b['weight']) ? $a['weight'] - $b['weight'] : $a['weight'];
});
$this->percentOverride = 0;
$requirements_with_severity = [];
foreach ($this->registry->requirements as $key => $value) {
if (isset($value['severity'])) {
$requirements_with_severity[$key] = $value;
}
}
$score_each = 100 / count($requirements_with_severity);
$worst_severity = REQUIREMENT_INFO;
foreach ($this->registry->requirements as $requirement) {
if (isset($requirement['severity'])) {
if ($requirement['severity'] > $worst_severity) {
$worst_severity = $requirement['severity'];
}
if ($requirement['severity'] == REQUIREMENT_WARNING) {
$this->percentOverride += $score_each / 2;
}
elseif ($requirement['severity'] != REQUIREMENT_ERROR) {
$this->percentOverride += $score_each;
}
}
}
$this->percentOverride = round($this->percentOverride);
if ($this->percentOverride > 80) {
return SiteAuditCheckBase::AUDIT_CHECK_SCORE_PASS;
}
elseif ($this->percentOverride > 60) {
return SiteAuditCheckBase::AUDIT_CHECK_SCORE_WARN;
}
return SiteAuditCheckBase::AUDIT_CHECK_SCORE_FAIL;
}