You are here

function nodehierarchy_nodehierarchy_node_form in Node Hierarchy 6.2

Same name and namespace in other branches
  1. 6.3 nodehierarchy.module \nodehierarchy_nodehierarchy_node_form()
  2. 7.4 nodehierarchy.module \nodehierarchy_nodehierarchy_node_form()
  3. 7.2 nodehierarchy.module \nodehierarchy_nodehierarchy_node_form()

Get the node edit form for nodehierarchy.

File

./nodehierarchy.module, line 481
A module to make nodes hierarchical.

Code

function nodehierarchy_nodehierarchy_node_form($node) {
  global $user;
  $form = array();

  // If this node type can be a child.
  if (nodehierarchy_node_can_be_child($node) || nodehierarchy_node_can_be_parent($node)) {

    // Save the old value of the node's parent.
    if ($node->nodehierarchy_old_menu_links) {
      $form['nodehierarchy_old_menu_links'] = array(
        '#type' => 'value',
        '#value' => $node->nodehierarchy_old_menu_links,
      );
    }

    // if the current user can edit the current node's hierarchy settings (or create new children)
    $can_set_parent = user_access('edit all node parents') || $node->nid == NULL && user_access('create child nodes') || $node->uid == $user->uid && user_access('edit own node parents');
    if ($can_set_parent) {
      drupal_add_js(drupal_get_path("module", "nodehierarchy") . '/nodehierarchy.js');
      $form['nodehierarchy_menu_links'] = array(
        '#tree' => TRUE,
      );
      $multiple = variable_get('nh_multiple_' . $node->type, 0);
      $count = 2;
      foreach ((array) @$node->nodehierarchy_menu_links as $key => $menu_link) {
        $form['nodehierarchy_menu_links'][$key] = _nodehierarchy_node_parent_form_items($node, $key, $menu_link);
        if ($multiple && $key == 0) {
          $form['nodehierarchy_menu_links'][$key]['#title'] = t('Primary Parent');
          $form['nodehierarchy_menu_links'][$key]['#description'] = t('The primary parent is the one which will appear in this node\'s breadcrumb trail and whose menu item will be expanded for this node.');
        }
        elseif ($multiple) {
          $form['nodehierarchy_menu_links'][$key]['#title'] = t('Parent !num', array(
            '!num' => $count++,
          ));
        }
      }
      if ($multiple) {
        $form['nodehierarchy_menu_links'][$key + 1] = _nodehierarchy_node_parent_form_items($node, $key + 1, _nodehierarchy_default_menu_link($node->nid));
        $form['nodehierarchy_menu_links'][$key + 1]['#title'] = t('Add a parent');
        $form['nodehierarchy_menu_links'][$key + 1]['#collapsible'] = $form['nodehierarchy_menu_links'][$key + 1]['#collapsed'] = TRUE;
        $form['nodehierarchy_menu_links'][$key + 1]['add_another'] = array(
          '#type' => 'submit',
          '#value' => t('Add'),
          '#weight' => 10,
          '#submit' => array(
            'nodehierarchy_node_form_add_parent',
          ),
        );
        unset($form['nodehierarchy_menu_links'][$key + 1]['remove']);
      }
    }
  }
  return $form;
}