You are here

function hide_revision_field_form_alter in Hide Revision Field 8.2

Same name and namespace in other branches
  1. 8 hide_revision_field.module \hide_revision_field_form_alter()

Implements hook_form_alter().

Ensure that ContentEntityForms don't have an empty Revision Info tab. Also, hide the revision checkbox if the revision log field is hidden or disabled.

File

./hide_revision_field.module, line 132
Manage hiding revision log field on revisionable entity edit/create forms.

Code

function hide_revision_field_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $form_object = $form_state
    ->getFormObject();
  if (is_a($form_object, ContentEntityForm::class)) {

    /** @var \Drupal\Core\Entity\ContentEntityForm $form_object */

    /** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */
    $entity_type = $form_object
      ->getEntity()
      ->getEntityType();
    if ($field = $entity_type
      ->getRevisionMetadataKey('revision_log_message')) {
      if (isset($form[$field]['widget'][0]['value']['#type'])) {
        if ($form[$field]['widget'][0]['value']['#type'] === 'hidden') {
          unset($form[$field]['#group']);
          if (isset($form['revision'])) {
            $form['revision']['#type'] = 'hidden';
          }
        }
      }
      else {
        if (isset($form['revision'])) {
          $form['revision']['#type'] = 'hidden';
        }
      }
    }
  }
}