function publishcontent_toggle_status in Publish Content 7
Same name and namespace in other branches
- 5.2 publishcontent.module \publishcontent_toggle_status()
 - 5 publishcontent.module \publishcontent_toggle_status()
 - 6 publishcontent.module \publishcontent_toggle_status()
 
Menu callback for publish / unpublish content actions.
Parameters
node $node: A node object.
1 call to publishcontent_toggle_status()
- publishcontent_toggle_status_form_submit in ./
publishcontent.module  - Submit handler for Publish/Unpublish confirmation form
 
File
- ./
publishcontent.module, line 321  - Add link to publish or unpublish a node, with access control based on the node type
 
Code
function publishcontent_toggle_status($node) {
  // XOR the current status with 1 to get the opposite value.
  $node->status = $node->status ^ 1;
  // If this content type specifies that a new revision should be created on
  // editing, then make sure to respect this option.
  $node_options = variable_get('node_options_' . $node->type, array());
  if (in_array('revision', $node_options)) {
    $node->revision = 1;
  }
  // Save the status we want to set.
  $status = $node->status;
  // Try to update the node.
  node_save($node);
  // Validate the status has changed.
  if ($status == $node->status) {
    // Everything went well.
    drupal_set_message(_publishcontent_get_message($node->nid, $node->title, $node->status));
  }
  else {
    // Prevent the user something went wrong.
    drupal_set_message(t('The status of the node could not be updated.'), 'error');
  }
  // Clear the page and block caches.
  cache_clear_all();
  drupal_goto('node/' . $node->nid);
}