You are here

function _forum_parent_select in Drupal 4

Same name and namespace in other branches
  1. 5 modules/forum/forum.module \_forum_parent_select()
  2. 6 modules/forum/forum.admin.inc \_forum_parent_select()
  3. 7 modules/forum/forum.admin.inc \_forum_parent_select()

Returns a select box for available parent terms

Parameters

$tid ID of the term which is being added or edited:

$title Title to display the select box with:

$child_type Whether the child is forum or container:

2 calls to _forum_parent_select()
forum_form_container in modules/forum.module
Returns a form for adding a container to the forum vocabulary
forum_form_forum in modules/forum.module
Returns a form for adding a forum to the forum vocabulary

File

modules/forum.module, line 603
Enable threaded discussions about general topics.

Code

function _forum_parent_select($tid, $title, $child_type) {
  $parents = taxonomy_get_parents($tid);
  if ($parents) {
    $parent = array_shift($parents);
    $parent = $parent->tid;
  }
  else {
    $parent = 0;
  }
  $children = taxonomy_get_tree(_forum_get_vid(), $tid);

  // A term can't be the child of itself, nor of its children.
  foreach ($children as $child) {
    $exclude[] = $child->tid;
  }
  $exclude[] = $tid;
  $tree = taxonomy_get_tree(_forum_get_vid());
  $options[0] = '<' . t('root') . '>';
  if ($tree) {
    foreach ($tree as $term) {
      if (!in_array($term->tid, $exclude)) {
        $options[$term->tid] = _taxonomy_depth($term->depth) . $term->name;
      }
    }
  }
  if ($child_type == 'container') {
    $description = t('Containers are usually placed at the top (root) level of your forum but you can also place a container inside a parent container or forum.');
  }
  else {
    if ($child_type == 'forum') {
      $description = t('You may place your forum inside a parent container or forum, or at the top (root) level of your forum.');
    }
  }
  return array(
    '#type' => 'select',
    '#title' => $title,
    '#default_value' => $parent,
    '#options' => $options,
    '#description' => $description,
    '#required' => TRUE,
  );
}