function _hierarchical_select_render in Hierarchical Select 5
Render the hierarchical select.
2 calls to _hierarchical_select_render()
- hierarchical_select_ahah in ./
hierarchical_select.module - Menu callback; AHAH callback: generates and outputs the appropriate HTML.
- hierarchical_select_process in ./
hierarchical_select.module - Hierarchical select form element processing function.
File
- ./
hierarchical_select.module, line 178 - This module defines the "hierarchical_select" form element, which is a greatly enhanced way for letting the user select an option in a hierarchy. Out of the box, this module supports the taxonomy and content_taxonomy modules, but that…
Code
function _hierarchical_select_render($hsid, $module, $selection, $store_lineage = FALSE, $enforce_deepest = TRUE, $required = FALSE, $params = array()) {
// DEBUG
// $params['vid'] = 1;
// $selection = 8
if (!$selection) {
$selection = $store_lineage ? array() : -1;
}
if (!module_invoke($module, 'hierarchical_select_valid_item', $selection, $params)) {
$selection = -1;
}
// Build the hierarchy.
$hierarchy = new StdClass();
if (!$store_lineage) {
$depth = 0;
// Get the root level.
$hierarchy->levels[$depth] = module_invoke($module, 'hierarchical_select_root_level', $params);
$depth++;
// Build the lineage
$hierarchy->lineage = module_invoke($module, 'hierarchical_select_lineage', $selection);
if ($enforce_deepest) {
$hierarchy->lineage = _hierarchial_select_enforce_deepest_selection($hierarchy->lineage, $hierarchy->levels[0], $module, $params);
}
// Build the rest of the hierarchy, based on the lineage.
while ($depth < count($hierarchy->lineage)) {
$hierarchy->levels[$depth] = module_invoke($module, 'hierarchical_select_children', $hierarchy->lineage[$depth - 1], $params);
$depth++;
}
}
else {
// todo
$hierarchy->lineage = $selection;
// $selection should be an array of selected stuff now.
}
// DEBUG
// dpr($hierarchy);
// print _hierarchical_select_render_selects($hsid, $hierarchy);
// exit;
// END DEBUG
return _hierarchical_select_render_selects($hsid, $hierarchy);
}