3 namespace Drupal\content_moderation\Entity\Handler;
5 use Drupal\Core\Entity\ContentEntityInterface;
6 use Drupal\Core\Entity\EntityHandlerInterface;
7 use Drupal\Core\Entity\EntityPublishedInterface;
8 use Drupal\Core\Entity\EntityTypeInterface;
9 use Drupal\Core\Form\FormStateInterface;
10 use Drupal\Core\StringTranslation\StringTranslationTrait;
11 use Symfony\Component\DependencyInjection\ContainerInterface;
14 * Common customizations for most/all entities.
16 * This class is intended primarily as a base class.
20 class ModerationHandler implements ModerationHandlerInterface, EntityHandlerInterface {
22 use StringTranslationTrait;
27 public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
34 public function onPresave(ContentEntityInterface $entity, $default_revision, $published_state) {
35 // This is probably not necessary if configuration is setup correctly.
36 $entity->setNewRevision(TRUE);
37 $entity->isDefaultRevision($default_revision);
39 // Update publishing status if it can be updated and if it needs updating.
40 if (($entity instanceof EntityPublishedInterface) && $entity->isPublished() !== $published_state) {
41 $published_state ? $entity->setPublished() : $entity->setUnpublished();
48 public function enforceRevisionsEntityFormAlter(array &$form, FormStateInterface $form_state, $form_id) {
54 public function enforceRevisionsBundleFormAlter(array &$form, FormStateInterface $form_state, $form_id) {