function _forum_parent_select in Drupal 7
Same name and namespace in other branches
- 4 modules/forum.module \_forum_parent_select()
- 5 modules/forum/forum.module \_forum_parent_select()
- 6 modules/forum/forum.admin.inc \_forum_parent_select()
Returns a select box for available parent terms.
Parameters
$tid: ID of the term that is being added or edited.
$title: Title for the select box.
$child_type: Whether the child is a forum or a container.
Return value
A select form element.
2 calls to _forum_parent_select()
- forum_form_container in modules/
forum/ forum.admin.inc - Form constructor for adding and editing forum containers.
- forum_form_forum in modules/
forum/ forum.admin.inc - Form constructor for adding and editing a forum.
File
- modules/
forum/ forum.admin.inc, line 315 - Administrative page callbacks for the Forum module.
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;
}
$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,
);
}