You are here

public function RemoveUnpublishingDate::doExecute in Scheduler 2.x

Same name and namespace in other branches
  1. 8 scheduler_rules_integration/src/Plugin/RulesAction/RemoveUnpublishingDate.php \Drupal\scheduler_rules_integration\Plugin\RulesAction\RemoveUnpublishingDate::doExecute()

Remove the unpublish_on date from the entity.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity from which to remove the scheduled date.

File

scheduler_rules_integration/src/Plugin/RulesAction/RemoveUnpublishingDate.php, line 23

Class

RemoveUnpublishingDate
Provides a 'Remove date for scheduled unpublishing' action.

Namespace

Drupal\scheduler_rules_integration\Plugin\RulesAction

Code

public function doExecute(EntityInterface $entity) {
  $config = \Drupal::config('scheduler.settings');
  $bundle_field = $entity
    ->getEntityType()
    ->get('entity_keys')['bundle'];
  if ($entity->{$bundle_field}->entity
    ->getThirdPartySetting('scheduler', 'unpublish_enable', $config
    ->get('default_unpublish_enable'))) {
    $entity
      ->set('unpublish_on', NULL);
    scheduler_entity_presave($entity);
  }
  else {

    // The action cannot be executed because the content type is not enabled
    // for scheduled unpublishing.
    $this
      ->notEnabledWarning($entity, 'unpublish');
  }
}