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;
}