Commit f7122db3 authored by Abhai Sasidharan's avatar Abhai Sasidharan Committed by Dave Reid
Browse files

Issue #3323148 by abhaisasidharan, Dave Reid: Fixed Drupal 10 Call to...

Issue #3323148 by abhaisasidharan, Dave Reid: Fixed Drupal 10 Call to undefined method Drupal\Core\Extension\ModuleHandler::getImplementations() in xmlsitemap_check_status().
parent 4f39edba
Loading
Loading
Loading
Loading
+19 −9
Changes for xmlsitemap.module: 19 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -2307,25 +2307,35 @@ function xmlsitemap_check_status() {
  $messages = &drupal_static(__FUNCTION__);

  if (!isset($messages)) {
    $moduleHandler = \Drupal::moduleHandler();

    // Cache the list of modules that are checked.
    if ($cache = \Drupal::cache()->get('xmlsitemap:registry:requirements')) {
    if ($cache = \Drupal::cache('bootstrap')->get('xmlsitemap:registry:requirements')) {
      $modules = $cache->data;
    }
    else {
      $modules = [];
      \Drupal::moduleHandler()->loadAllIncludes('install');
      foreach (\Drupal::moduleHandler()->getImplementations('requirements') as $module) {
        if (strpos($module, 'xmlsitemap') !== FALSE) {
          $modules[] = $module;
      $moduleHandler->loadAllIncludes('install');
      $modules = array_keys($moduleHandler->getModuleList());
      $modules = array_filter($modules, function ($module) use ($moduleHandler) {
        if (strpos($module, 'xmlsitemap') === FALSE) {
          return FALSE;
        }
        elseif (!method_exists($moduleHandler, 'hasImplementations')) {
          // @todo Remove this check once we require Drupal 9.4+.
          return $moduleHandler->implementsHook($module, 'requirements');
        }
      \Drupal::cache()->set('xmlsitemap:registry:requirements', $modules, Cache::PERMANENT, ['xmlsitemap']);
        else {
          return $moduleHandler->hasImplementations('requirements', $module);
        }
      });
      \Drupal::cache('bootstrap')->set('xmlsitemap:registry:requirements', $modules, Cache::PERMANENT, ['xmlsitemap']);
    }

    $messages = [];
    require_once DRUPAL_ROOT . '/core/includes/install.inc';
    foreach ($modules as $module) {
      \Drupal::moduleHandler()->loadInclude($module, 'install');
      $requirements = \Drupal::moduleHandler()->invoke($module, 'requirements', ['runtime']);
      $moduleHandler->loadInclude($module, 'install');
      $requirements = $moduleHandler->invoke($module, 'requirements', ['runtime']);
      foreach ($requirements as $requirement) {
        if (isset($requirement['severity']) && max(REQUIREMENT_OK, $requirement['severity'])) {
          $messages[] = $requirement['description'];