You are here

function track_field_changes_form_alter in Track Field Changes 8

Same name and namespace in other branches
  1. 7 track_field_changes.module \track_field_changes_form_alter()

Implement hook_form_alter().

File

./track_field_changes.module, line 396

Code

function track_field_changes_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {

  // If we're editing an entity...
  if (!empty($form['#entity_type']) && ($entity_form = $form_state
    ->getFormObject()) && $entity_form instanceof \Drupal\Core\Entity\EntityForm) {
    $entity = $entity_form
      ->getEntity();
    $field_change_settings = \Drupal::config('track_field_changes.settings')
      ->get($entity
      ->getEntityTypeId() . '.' . $entity
      ->bundle());
    if ($field_change_settings && $field_change_settings['enable_log']) {
      $log = !$entity || $entity
        ->isNew() ? 'New ' . $form['type']['#value'] : '';
      $form['track_field_changes'] = array(
        '#type' => 'details',
        '#title' => t('Track Field Information'),
        '#collapsible' => TRUE,
        '#collapsed' => TRUE,
        '#group' => 'advanced',
        '#weight' => 35,
      );
      $form['track_field_changes']['track_field_changes'] = array(
        '#type' => 'textarea',
        '#title' => t('Track field log message'),
        '#rows' => 4,
        '#default_value' => !empty($entity->track_field_changes) ? $entity->track_field_changes : $log,
        '#description' => t('Provide an explanation of the changes you are making.'),
        '#maxlength' => 256,
      );
    }
  }
}