You are here

function scheduler_api_test_scheduler_nid_list_alter in Scheduler 8

Implements hook_scheduler_nid_list_alter().

File

tests/modules/scheduler_api_test/scheduler_api_test.module, line 41
Hook implementations of the Scheduler API Test module.

Code

function scheduler_api_test_scheduler_nid_list_alter(&$nids, $action) {
  $query = \Drupal::entityQuery('node');
  $nodes = Node::loadMultiple($query
    ->execute());
  $request_time = \Drupal::time()
    ->getRequestTime();
  foreach ($nodes as $nid => $node) {
    if ($action == 'publish' && $node->title->value == 'API TEST nid_list_alter do not publish me') {

      // Remove the node id.
      $nids = array_diff($nids, [
        $nid,
      ]);
    }
    if ($action == 'publish' && $node->title->value == 'API TEST nid_list_alter publish me') {

      // Set a publish_on date and add the node id.
      $node
        ->set('publish_on', $request_time)
        ->save();
      $nids[] = $nid;
    }
    if ($action == 'unpublish' && $node->title->value == 'API TEST nid_list_alter do not unpublish me') {

      // Remove the node id.
      $nids = array_diff($nids, [
        $nid,
      ]);
    }
    if ($action == 'unpublish' && $node->title->value == 'API TEST nid_list_alter unpublish me') {

      // Set an unpublish_on date and add the node id.
      $node
        ->set('unpublish_on', $request_time)
        ->save();
      $nids[] = $nid;
    }
  }
  return $nids;
}