You are here

function workbench_scheduler_save_node_schedule in Workbench Scheduler 7.2

Same name and namespace in other branches
  1. 7 workbench_scheduler.module \workbench_scheduler_save_node_schedule()

Saves the schedule data for a given node revision.

Parameters

int $nid: The node id.

int $vid: The node revision id.

array $schedule_data: Array of schedule data to set/update.

Return value

bool Boolean TRUE/TRUE on success of query.

4 calls to workbench_scheduler_save_node_schedule()
workbench_scheduler_admin_edit_revision_schedule_submit in ./workbench_scheduler.admin.inc
Submit function for editing the schedule applied to a node's revision.
workbench_scheduler_node_form_submit in ./workbench_scheduler.module
Submit function for editing a scheduled node.
workbench_scheduler_node_update in ./workbench_scheduler.module
Implements hook_node_update().
workbench_scheduler_update_7200 in ./workbench_scheduler.install
Update from 7.x-1.x version to 7.x-2.0 version.

File

./workbench_scheduler.module, line 917
Content scheduling for Workbench.

Code

function workbench_scheduler_save_node_schedule($nid, $vid, $schedule_data) {

  // Need to have the sid and start date  or end date data.
  // Do no save already completed schedules.
  if (isset($schedule_data['sid']) && $schedule_data['date'] && empty($schedule_data['completed'])) {

    // Run a merge query to insert or update the row.
    $merge = db_merge('workbench_scheduler_nodes')
      ->key(array(
      'nid' => $nid,
      'vid' => $vid,
      'sid' => $schedule_data['sid'],
    ))
      ->fields(array(
      'sid' => $schedule_data['sid'],
      // Start date if it was passed.
      'date' => $schedule_data['date'] ? $schedule_data['date'] : 0,
    ))
      ->execute();

    // Was the merge successful?
    if ($merge) {

      // Apply update hooks.
      module_invoke_all('workbench_scheduler_post_save_node_schedule', $nid, $vid, $schedule_data);

      // Clear the cache to ensure the node edit form is accurate.
      entity_get_controller('node')
        ->resetCache(array(
        $nid,
      ));
      return TRUE;
    }
  }

  // Return boolean false if missing fields or failed query.
  return FALSE;
}