1<?php
2
3namespace Drupal\content_moderation\Entity\Handler;
4
5use Drupal\content_moderation\ModerationInformationInterface;
6use Drupal\Core\Entity\EntityTypeInterface;
7use Drupal\Core\Form\FormStateInterface;
8use Symfony\Component\DependencyInjection\ContainerInterface;
9
10/**
11 * Customizations for node entities.
12 *
13 * @internal
14 */
15class NodeModerationHandler extends ModerationHandler {
16
17  /**
18   * The moderation information service.
19   *
20   * @var \Drupal\content_moderation\ModerationInformationInterface
21   */
22  protected $moderationInfo;
23
24  /**
25   * NodeModerationHandler constructor.
26   *
27   * @param \Drupal\content_moderation\ModerationInformationInterface $moderation_info
28   *   The moderation information service.
29   */
30  public function __construct(ModerationInformationInterface $moderation_info) {
31    $this->moderationInfo = $moderation_info;
32  }
33
34  /**
35   * {@inheritdoc}
36   */
37  public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
38    return new static(
39      $container->get('content_moderation.moderation_information')
40    );
41  }
42
43  /**
44   * {@inheritdoc}
45   */
46  public function enforceRevisionsEntityFormAlter(array &$form, FormStateInterface $form_state, $form_id) {
47    $form['revision']['#disabled'] = TRUE;
48    $form['revision']['#default_value'] = TRUE;
49    $form['revision']['#description'] = $this->t('Revisions are required.');
50  }
51
52  /**
53   * {@inheritdoc}
54   */
55  public function enforceRevisionsBundleFormAlter(array &$form, FormStateInterface $form_state, $form_id) {
56    // Force the revision checkbox on.
57    $form['workflow']['options']['revision']['#value'] = 'revision';
58    $form['workflow']['options']['revision']['#disabled'] = TRUE;
59  }
60
61}
62