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.
18 class ModerationHandler implements ModerationHandlerInterface, EntityHandlerInterface {
20 use StringTranslationTrait;
25 public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
32 public function onPresave(ContentEntityInterface $entity, $default_revision, $published_state) {
33 // This is probably not necessary if configuration is setup correctly.
34 $entity->setNewRevision(TRUE);
35 $entity->isDefaultRevision($default_revision);
37 // Update publishing status if it can be updated and if it needs updating.
38 if (($entity instanceof EntityPublishedInterface) && $entity->isPublished() !== $published_state) {
39 $published_state ? $entity->setPublished() : $entity->setUnpublished();
46 public function enforceRevisionsEntityFormAlter(array &$form, FormStateInterface $form_state, $form_id) {
52 public function enforceRevisionsBundleFormAlter(array &$form, FormStateInterface $form_state, $form_id) {