function bat_type_revisioning_rules_action_publish_latest in Booking and Availability Management Tools for Drupal 7
Action: publish most recent pending revision.
File
- modules/
bat_unit/ bat_unit.rules.inc, line 140
Code
function bat_type_revisioning_rules_action_publish_latest($type) {
// Get the latest pending revision.
$pending_revisions = bat_type_get_pending_revisions($type->type_id);
$latest_pending = array_shift($pending_revisions);
if ($latest_pending) {
$type_revision = bat_type_load_revision($latest_pending->revision_id);
bat_type_revisioning_event('pre publish', $type_revision);
$type_revision->default_revision = TRUE;
$type_revision
->save();
bat_type_revisioning_event('post publish', $type_revision);
return TRUE;
}
// If there is no pending revision, take the current revision, provided it is
// NOT published.
if (!$type->status) {
if (!isset($type->is_current)) {
$type->current_revision_id = bat_type_get_current_type_revision_id($type->type_id);
$type->is_current = revisioning_revision_is_current($type);
}
if ($type->is_current) {
bat_type_revisioning_event('pre publish', $type_revision);
$type_revision->default_revision = TRUE;
$type_revision
->save();
bat_type_revisioning_event('post publish', $type_revision);
return TRUE;
}
}
return FALSE;
}