You are here

function require_on_publish_form_alter in Require on Publish 8

Implements hook_form_alter().

File

./require_on_publish.module, line 208
Module file for the Require on Publish module.

Code

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

  /** @var \Drupal\Core\Entity\EntityFormInterface $form_object */
  $form_object = $form_state
    ->getFormObject();
  if (!$form_object instanceof EntityFormInterface) {
    return;
  }
  $entity = $form_object
    ->getEntity();
  if (!_require_on_publish_entity_is_publishable(get_class($entity))) {
    return;
  }
  foreach ($entity
    ->getFields() as $field) {
    $field_config = $field
      ->getFieldDefinition();
    if (!$field_config instanceof FieldConfigInterface) {
      continue;
    }
    if ($field_config
      ->getThirdPartySetting('require_on_publish', 'require_on_publish', FALSE)) {
      $field_name = $field_config
        ->getName();
      if (!isset($form[$field_name])) {
        continue;
      }
      $form['#attached']['library'][] = 'require_on_publish/require_on_publish';
      require_on_publish_add_indicator($form[$field_name]['widget']);
    }
  }
}