_forum_parent_select

Versions
4.6
_forum_parent_select($tid, $title, $name)
4.7 – 7
_forum_parent_select($tid, $title, $child_type)

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 functions call _forum_parent_select()

forum_form_container in modules/forum/forum.admin.inc
Returns a form for adding a container to the forum vocabulary
forum_form_forum in modules/forum/forum.admin.inc
Returns a form for adding a forum to the forum vocabulary

Code

modules/forum/forum.admin.inc, line 269

<?php
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;
  }

  $vid = variable_get('forum_nav_vocabulary', '');
  $children = taxonomy_get_tree($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($vid);
  $options[0] = '<' . t('root') . '>';
  if ($tree) {
    foreach ($tree as $term) {
      if (!in_array($term->tid, $exclude)) {
        $options[$term->tid] = str_repeat(' -- ', $term->depth) . $term->name;
      }
    }
  }
  if ($child_type == 'container') {
    $description = t('Containers are usually placed at the top (root) level, but may also be placed inside another container or forum.');
  }
  elseif ($child_type == 'forum') {
    $description = t('Forums may be placed at the top (root) level, or inside another container or forum.');
  }

  return array('#type' => 'select', '#title' => $title, '#default_value' => $parent, '#options' => $options, '#description' => $description, '#required' => TRUE);
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.