You are here

function _scheduler_rules_integration_dispatch_cron_event in Scheduler 8

Same name and namespace in other branches
  1. 2.x scheduler_rules_integration/scheduler_rules_integration.module \_scheduler_rules_integration_dispatch_cron_event()

Trigger Rules events during cron.

This function is called from the main Scheduler module publish() and unpublish() functions in the SchedulerManager class.

2 calls to _scheduler_rules_integration_dispatch_cron_event()
SchedulerManager::publish in src/SchedulerManager.php
Publish scheduled nodes.
SchedulerManager::unpublish in src/SchedulerManager.php
Unpublish scheduled nodes.

File

scheduler_rules_integration/scheduler_rules_integration.module, line 60
Scheduler Rules Integration.

Code

function _scheduler_rules_integration_dispatch_cron_event(EntityInterface $node, $event_type) {
  $scheduler_manager = \Drupal::service('scheduler.manager');
  if ($event_type == 'publish') {

    // Invoke the event to tell Rules that Scheduler has published this node.
    // @todo 2nd param $publish_on may be needed as the date will no longer be on the node
    $event = new SchedulerHasPublishedThisNodeEvent($node);
    $scheduler_manager
      ->dispatch($event, SchedulerHasPublishedThisNodeEvent::EVENT_NAME);
  }
  elseif ($event_type == 'unpublish') {

    // Invoke the event to tell Rules that Scheduler has unpublished this node.
    // @todo 2nd param $publish_on may be needed as the date will no longer be on the node
    $event = new SchedulerHasUnpublishedThisNodeEvent($node);
    $scheduler_manager
      ->dispatch($event, SchedulerHasUnpublishedThisNodeEvent::EVENT_NAME);
  }
}