/**
	 * Call to check for updates as part of the health checking system in Core.
	 * 
	 * @return array
	 */
	public static function _HealthCheckHook(){
		// SERVER_ADMIN_EMAIL
		
		$checks      = [];
		$updateSites = UpdateSiteModel::Find();
		$updates     = UpdaterHelper::GetUpdates();
		
		// Scan through the update sites and ensure that they are available and set.
		if(!sizeof($updateSites)){
			$checks[] = \Core\HealthCheckResult::ConstructWarn(
				t('STRING_CHECK_UPDATER_NO_UPDATE_SITES'),
				t('MESSAGE_WARNING_UPDATER_NO_UPDATE_SITES'),
				'/updater'
			);
		}
		else{
			foreach($updateSites as $site){
				/** @var UpdateSiteModel $site */
				if($site->isValid()){
					$checks[] = \Core\HealthCheckResult::ConstructGood(
						t('STRING_SUCCESS_UPDATER_SITE_S_OK', $site->get('url')),
						t('MESSAGE_SUCCESS_UPDATER_SITE_S_OK', $site->get('url'))
					);
				}
				else{
					$checks[] = \Core\HealthCheckResult::ConstructError(
						t('STRING_ERROR_UPDATER_SITE_S_OK', $site->get('url')),
						t('MESSAGE_ERROR_UPDATER_SITE_S_OK', $site->get('url')),
						'/updater'
					);
				}
			}
		}
		
		if(isset($updates['core'])){
			// This should always be set, but who knows...
			if($updates['core']['status'] == 'update'){
				$checks[] = \Core\HealthCheckResult::ConstructWarn(
					t('STRING_WARNING_UPDATER_CORE_OUTDATED'),
					t('MESSAGE_WARNING_UPDATER_CORE_OUTDATED_S_AVAILABLE', $updates['core']['version']),
					'/updater'
				);
			}
			elseif($updates['core']['status'] == 'installed'){
				$checks[] = \Core\HealthCheckResult::ConstructGood(
					t('STRING_SUCCESS_UPDATER_CORE_OUTDATED'),
					t('MESSAGE_SUCCESS_UPDATER_CORE_OUTDATED_S_AVAILABLE', $updates['core']['version'])
				);
			}
		}
		
		foreach($updates['components'] as $dat){
			if($dat['status'] == 'update'){
				$checks[] = \Core\HealthCheckResult::ConstructWarn(
					t('STRING_WARNING_UPDATER_COMPONENT_S_OUTDATED', $dat['title']),
					t('MESSAGE_WARNING_UPDATER_COMPONENT_S_OUTDATED_S_AVAILABLE', $dat['title'], $dat['version']),
					'/updater'
				);
			}
			elseif($dat['status'] == 'installed'){
				$checks[] = \Core\HealthCheckResult::ConstructGood(
					t('STRING_SUCCESS_UPDATER_COMPONENT_S_OUTDATED', $dat['title']),
					t('MESSAGE_SUCCESS_UPDATER_COMPONENT_S_OUTDATED_S_AVAILABLE', $dat['title'], $dat['version'])
				);
			}
		}

		foreach($updates['themes'] as $dat){
			if($dat['status'] == 'update'){
				$checks[] = \Core\HealthCheckResult::ConstructWarn(
					t('STRING_WARNING_UPDATER_THEME_S_OUTDATED', $dat['title']),
					t('MESSAGE_WARNING_UPDATER_THEME_S_OUTDATED_S_AVAILABLE', $dat['title'], $dat['version']),
					'/updater'
				);
			}
			elseif($dat['status'] == 'installed'){
				$checks[] = \Core\HealthCheckResult::ConstructGood(
					t('STRING_SUCCESS_UPDATER_THEME_S_OUTDATED', $dat['title']),
					t('MESSAGE_SUCCESS_UPDATER_THEME_S_OUTDATED_S_AVAILABLE', $dat['title'], $dat['version'])
				);
			}
		}
		
		return $checks;
	}