function workbench_scheduler_save_node_schedule in Workbench Scheduler 7
Same name and namespace in other branches
- 7.2 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_insert in ./
workbench_scheduler.module - Implements hook_node_insert().
- workbench_scheduler_node_update in ./
workbench_scheduler.module - Implements hook_node_update().
File
- ./
workbench_scheduler.module, line 736 - 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.
if (isset($schedule_data['sid']) && ($schedule_data['sid'] == 0 || $schedule_data['start_date'] || $schedule_data['end_date'])) {
if ($schedule_data['sid'] != 0) {
// Run a merge query to insert or update the row.
$merge = db_merge('workbench_scheduler_nodes')
->key(array(
'nid' => $nid,
'vid' => $vid,
))
->fields(array(
'sid' => $schedule_data['sid'],
// Start date if it was passed.
'start_date' => $schedule_data['start_date'] ? $schedule_data['start_date'] : 0,
// End if it was passed.
'end_date' => $schedule_data['end_date'] ? $schedule_data['end_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);
return TRUE;
}
}
elseif ($schedule_data['sid'] == 0) {
// Make sure the this revision has no schedule.
workbench_scheduler_delete_node_schedule($nid, $vid);
// Schedule_data removed.
return TRUE;
}
}
// Return boolean false if missing fields or failed query.
return FALSE;
}