You are here

function book_copy_book_process_book_copy in Book Copy 7

Same name and namespace in other branches
  1. 7.2 book_copy.module \book_copy_book_process_book_copy()

Callback for book_copy ajax call from outline designer.

1 string reference to 'book_copy_book_process_book_copy'
book_copy_outline_designer_operations_alter in ./book_copy.module
Implements hook_outline_designer_operations_alter().

File

./book_copy.module, line 352

Code

function book_copy_book_process_book_copy($nid, $clone_title) {

  // TODO: this needs to implement the internal book duplication functions
  global $user;

  // need to account for the 3 weird characters in URLs
  $clone_title = str_replace("@2@F@", '/', $clone_title);
  $clone_title = str_replace("@2@3@", '#', $clone_title);
  $clone_title = str_replace("@2@B@", '+', $clone_title);
  $node = node_load($nid);
  $orig_node = $node;
  $node->nid = NULL;
  $node->vid = NULL;
  if (isset($node->uuid)) {
    $node->uuid = NULL;
  }
  $node->created = NULL;
  $node->book['mlid'] = NULL;
  $node->book['has_children'] = 0;
  $node->uid = $user->uid;

  // swap out the title
  $new_title = str_replace('@title', $node->title, $clone_title);
  $node->title = $new_title;
  if (node_access('create', $node) && node_access('view', $orig_node)) {
    node_save($node);
    drupal_set_message(t('Content copied from %title (%nid).', array(
      '%title' => $node->title,
      '%nid' => $nid,
    )));
    return 1;
  }
  else {
    drupal_set_message(t('Outline copy denied because of permissions.'));
    return 0;
  }
}