function _forum_parent_select in Drupal 5
Same name and namespace in other branches
- 4 modules/forum.module \_forum_parent_select()
- 6 modules/forum/forum.admin.inc \_forum_parent_select()
- 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/ forum.module - Returns a form for adding a container to the forum vocabulary
- forum_form_forum in modules/
forum/ forum.module - Returns a form for adding a forum to the forum vocabulary
File
- modules/
forum/ forum.module, line 609 - 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] = str_repeat(' -- ', $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,
);
}