You are here

function patchinfo_form_update_manager_update_form_alter in PatchInfo 8.2

Same name and namespace in other branches
  1. 8 patchinfo.module \patchinfo_form_update_manager_update_form_alter()
  2. 7 patchinfo.module \patchinfo_form_update_manager_update_form_alter()

Implements hook_form_FORM_ID_alter() for update_manager_update_form().

File

./patchinfo.module, line 50
Patch Info primary module file.

Code

function patchinfo_form_update_manager_update_form_alter(&$form, FormStateInterface $form_state, $form_id) {

  // Add our CSS.
  $form['#attached']['library'][] = 'patchinfo/patchinfo';

  // Add a highly visible notice for patched modules.
  $patch_info = _patchinfo_get_info();
  if (count($patch_info) > 0) {

    // Get project information from update manager service.
    $projects = \Drupal::service('update.manager')
      ->getProjects();

    // Check each project and its submodules for patches.
    foreach (Element::children($form['project_downloads']) as $module) {
      $patches = _patchinfo_get_patches($patch_info, $projects[$module]);
      if (count($patches) > 0) {

        // Determine, if the module is enabled or disabled and add the patch
        // list to the appropriate section of the form.
        $key = '';
        if (isset($form['projects']['#options'][$module]['title'])) {
          $key = 'projects';
        }
        elseif (isset($form['disabled_projects']['#options'][$module]['title'])) {
          $key = 'disabled_projects';
        }
        if (!empty($key)) {
          $patch_list = [
            '#theme' => 'patchinfo_patches',
            '#patches' => $patches,
          ];
          $form[$key]['#options'][$module]['title']['data']['patches'] = $patch_list;
        }
      }
    }

    // If a manual update is available, check, if Drupal core has any
    // patches. If so, show a warning above the update form.
    if (isset($form['manual_updates'])) {
      $patches_drupal = _patchinfo_get_patches($patch_info, $projects['drupal']);
      if (count($patches_drupal) > 0) {
        $patch_list = [
          '#theme' => 'patchinfo_patches',
          '#patches' => $patches_drupal,
        ];
        $form['manual_updates']['#rows']['drupal']['data']['title']['data']['patches'] = $patch_list;
      }
    }
  }
}