You are here

function node_patterns_prepare in Patterns 7.2

Same name and namespace in other branches
  1. 7 patterns_components/components/node.inc \node_patterns_prepare()

File

patterns_components/components/node.inc, line 86

Code

function node_patterns_prepare($action, $tag, &$data) {
  if ($tag == 'content_type') {
    if ($action === PATTERNS_CREATE or $action === PATTERNS_MODIFY) {
      if (isset($data['node_options']) and $data['node_options']) {
        $data['node_options'] = array_values($data['node_options']);
      }
      else {
        $data['node_options'] = array(
          'status',
          'promote',
        );

        // TODO: proper defaults?
      }
    }

    // TODO: check if the name and type fields are unique when creating
    //       and existing when we are modifying or deleting
  }
  elseif ($tag == 'node') {
    global $user;

    // Use 'nid' instead of 'id'.
    if (empty($data['nid']) && !empty($data['id'])) {
      $data['nid'] = $data['id'];
    }
    unset($data['id']);

    // TODO: are these needed?
    if (empty($data['name']) && !empty($data['author'])) {
      $data['name'] = $data['author'];
    }
    unset($data['author']);
    if (empty($data['uid'])) {
      $data['uid'] = $user->uid;
    }
    if (empty($data['name'])) {
      $data['name'] = $user->name;
    }
    if ($action == PATTERNS_CREATE) {
      unset($data['nid']);
      unset($data['vid']);
      $data['node'] = (object) $data;
      $data['update'] = FALSE;
    }
    elseif ($action == PATTERNS_MODIFY) {
      $data['update'] = TRUE;
    }
    elseif ($action == PATTERNS_DELETE) {
      $data['update'] = FALSE;
    }
  }
  return patterns_results();
}