3 namespace Drupal\content_moderation\Entity\Handler;
5 use Drupal\content_moderation\ModerationInformationInterface;
6 use Drupal\Core\Entity\EntityTypeInterface;
7 use Drupal\Core\Form\FormStateInterface;
8 use Symfony\Component\DependencyInjection\ContainerInterface;
11 * Customizations for node entities.
13 class NodeModerationHandler extends ModerationHandler {
16 * The moderation information service.
18 * @var \Drupal\content_moderation\ModerationInformationInterface
20 protected $moderationInfo;
23 * NodeModerationHandler constructor.
25 * @param \Drupal\content_moderation\ModerationInformationInterface $moderation_info
26 * The moderation information service.
28 public function __construct(ModerationInformationInterface $moderation_info) {
29 $this->moderationInfo = $moderation_info;
35 public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
37 $container->get('content_moderation.moderation_information')
44 public function enforceRevisionsEntityFormAlter(array &$form, FormStateInterface $form_state, $form_id) {
45 $form['revision']['#disabled'] = TRUE;
46 $form['revision']['#default_value'] = TRUE;
47 $form['revision']['#description'] = $this->t('Revisions are required.');
53 public function enforceRevisionsBundleFormAlter(array &$form, FormStateInterface $form_state, $form_id) {
54 /* @var \Drupal\node\Entity\NodeType $entity */
55 $entity = $form_state->getFormObject()->getEntity();
57 if ($this->moderationInfo->getWorkflowForEntity($entity)) {
58 // Force the revision checkbox on.
59 $form['workflow']['options']['#default_value']['revision'] = 'revision';
60 $form['workflow']['options']['revision']['#disabled'] = TRUE;