1 system.install system_update_1103()

Create system.extensions config and populate with enabled modules and themes.

Related topics

File

core/modules/system/system.install, line 3808
Install, update and uninstall functions for the system module.

Code

function system_update_1103() {
  $result = db_query("SELECT name, status, type, schema_version, info FROM {system} ORDER BY name ASC")->fetchAll(PDO::FETCH_ASSOC);
  $modules =[];
  $themes =[];
  foreach ($result as $row) {
    $extension = (array) $row;
    $extension['info'] = unserialize($extension['info']);

    if ($extension['type'] === 'module') {
      // Do not include hidden modules in the list.
      if (!empty($extension['info']['hidden'])) {
        continue;
      }
      // Do not include uninstalled modules in the list.
      if ($extension['schema_version'] == -1) {
        continue;
      }

      $modules[$extension['name']] = (bool) $extension['status'];
    }

    // Only add enabled themes to the list.
    if ($extension['type'] === 'theme' && $extension['status']) {
      $themes[$extension['name']] = (bool) $extension['status'];
    }
  }

  $config = config('system.extensions');
  $config->set('modules', $modules);
  $config->set('themes', $themes);
  $config->save();
}