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