You are here

function document_change_doc_status in Document 7

Same name and namespace in other branches
  1. 6 document.callback.inc \document_change_doc_status()
  2. 8.x document.callback.inc \document_change_doc_status()
1 string reference to 'document_change_doc_status'
document_menu in ./document.module
Implementation of hook_menu().

File

./document.callback.inc, line 25

Code

function document_change_doc_status() {
  try {
    _document_headers();
    _document_validate_token();
    $ids = $_REQUEST['ids'];
    $status = $_REQUEST['status'];
    if (!isset($ids) || !isset($status)) {
      die(t('Invalid input.'));
    }
    else {
      if ($status != DOCUMENT_STATUS_PUBLISHED && $status != DOCUMENT_STATUS_UNPUBLISHED) {
        die(t('Invalid input.'));
      }
    }
    $ids = explode(',', $ids);
    foreach ($ids as $id) {
      $node = node_load($id, NULL, TRUE);
      $node->status = $status;
      $node->document_publishing = TRUE;
      node_save($node);
      if ($status == DOCUMENT_STATUS_PUBLISHED && variable_get('document_publish_email', TRUE)) {
        $uid = $node->uid;
        $user = user_load($uid);
        if ($user) {
          drupal_mail('document', 'publish', $user->mail, user_preferred_language($user), array(
            'node' => $node,
            'account' => $user,
          ));
        }
      }
    }
    die;
  } catch (Exception $e) {
    die($e
      ->getMessage() + "\n" + $e
      ->getTraceAsString());
  }
}