You are here

function theme_nodehierarchy_menu_overview_form in Node Hierarchy 6.3

Same name and namespace in other branches
  1. 6.2 nodehierarchy.module \theme_nodehierarchy_menu_overview_form()
  2. 7.4 nodehierarchy_menu/nodehierarchy_menu.module \theme_nodehierarchy_menu_overview_form()
  3. 7.2 nodehierarchy.module \theme_nodehierarchy_menu_overview_form()

Theme the menu overview form into a table respecting the node hierarchy rules.

File

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

Code

function theme_nodehierarchy_menu_overview_form($form) {
  drupal_add_js(drupal_get_path("module", "nodehierarchy") . '/nodehierarchy.tabledrag.js');
  drupal_add_css(drupal_get_path('module', 'nodehierarchy') . '/nodehierarchy.css');

  // Show a notice if items have been omitted.
  if (!empty($form['hidden']['#value'])) {
    $msg = t('@hidden disabled menu items generated by Node Hierarchy have been omitted from this list.', array(
      '@hidden' => $form['hidden']['#value'],
    ));
    $msg .= ' ' . l('Click here to show all items', $_GET['q'], array(
      'query' => 'all',
    )) . '.';
    if (user_access('administer site configuration')) {
      $msg .= ' ' . t('To permanently show all items, edit your !settings.', array(
        '!settings' => l(t('Node Hierarchy settings'), 'admin/settings/nodehierarchy'),
      ));
    }
    drupal_set_message($msg, 'warning');
  }
  $js_settings = array();
  $rows = array();
  foreach (element_children($form) as $mlid) {
    if (isset($form[$mlid]['hidden'])) {
      $element =& $form[$mlid];
      if ($element['#item']['module'] == 'nodehierarchy') {
        list(, $nid) = explode('/', $element['#item']['link_path']);
        $node = node_load($nid);
        $js_settings['nodehierarchyMenuDrag']['allowed-parents'][$node->type] = nodehierarchy_get_allowed_parent_types($node->type);

        // Add special classes to be used for nodehierarchy.js.
        $element['#attributes']['class'] .= ' nodehierarchy-menu-item node-type-' . $node->type;
        $element['#attributes']['id'] = 'mlid-' . $element['#item']['mlid'];
      }
    }
  }
  drupal_add_js($js_settings, 'setting');
  return theme_menu_overview_form($form);
}