You are here

public function BundleModerationConfigurationForm::formBuilderCallback in Workbench Moderation 8

Same name and namespace in other branches
  1. 8.2 src/Form/BundleModerationConfigurationForm.php \Drupal\workbench_moderation\Form\BundleModerationConfigurationForm::formBuilderCallback()

Form builder callback.

@todo I don't know why this needs to be separate from the form() method. It was in the form_alter version but we should see if we can just fold it into the method above.

Parameters

string $entity_type: Entity type.

\Drupal\Core\Config\Entity\ConfigEntityInterface $bundle: Entity bundle.

array $form: Form.

\Drupal\Core\Form\FormStateInterface $form_state: Form state.

File

src/Form/BundleModerationConfigurationForm.php, line 158

Class

BundleModerationConfigurationForm
Form for configuring moderation usage on a given entity bundle.

Namespace

Drupal\workbench_moderation\Form

Code

public function formBuilderCallback($entity_type, ConfigEntityInterface $bundle, array &$form, FormStateInterface $form_state) {

  // @todo write a test for this.
  $bundle
    ->setThirdPartySetting('workbench_moderation', 'enabled', $form_state
    ->getValue('enable_moderation_state'));
  $bundle
    ->setThirdPartySetting('workbench_moderation', 'allowed_moderation_states', array_keys(array_filter($form_state
    ->getValue('allowed_moderation_states_published') + $form_state
    ->getValue('allowed_moderation_states_unpublished'))));
  $bundle
    ->setThirdPartySetting('workbench_moderation', 'default_moderation_state', $form_state
    ->getValue('default_moderation_state'));
}