Version 1
[yaffs-website] / web / core / modules / content_moderation / src / Entity / Handler / NodeModerationHandler.php
1 <?php
2
3 namespace Drupal\content_moderation\Entity\Handler;
4
5 use Drupal\content_moderation\ModerationInformationInterface;
6 use Drupal\Core\Entity\EntityTypeInterface;
7 use Drupal\Core\Form\FormStateInterface;
8 use Symfony\Component\DependencyInjection\ContainerInterface;
9
10 /**
11  * Customizations for node entities.
12  */
13 class NodeModerationHandler extends ModerationHandler {
14
15   /**
16    * The moderation information service.
17    *
18    * @var \Drupal\content_moderation\ModerationInformationInterface
19    */
20   protected $moderationInfo;
21
22   /**
23    * NodeModerationHandler constructor.
24    *
25    * @param \Drupal\content_moderation\ModerationInformationInterface $moderation_info
26    *   The moderation information service.
27    */
28   public function __construct(ModerationInformationInterface $moderation_info) {
29     $this->moderationInfo = $moderation_info;
30   }
31
32   /**
33    * {@inheritdoc}
34    */
35   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
36     return new static(
37       $container->get('content_moderation.moderation_information')
38     );
39   }
40
41   /**
42    * {@inheritdoc}
43    */
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.');
48   }
49
50   /**
51    * {@inheritdoc}
52    */
53   public function enforceRevisionsBundleFormAlter(array &$form, FormStateInterface $form_state, $form_id) {
54     /* @var \Drupal\node\Entity\NodeType $entity */
55     $entity = $form_state->getFormObject()->getEntity();
56
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;
61     }
62   }
63
64 }