function _hierarchical_select_process_render_db_visible in Hierarchical Select 5.3
Same name and namespace in other branches
- 6.3 hierarchical_select.module \_hierarchical_select_process_render_db_visible()
Render the visible part of the dropbox.
Parameters
$hsid: A hierarchical select id.
$dropbox: A dropbox object.
Return value
A structured array for use in the Forms API.
1 call to _hierarchical_select_process_render_db_visible()
- hierarchical_select_process in ./
hierarchical_select.module - Hierarchical select form element type #process callback.
File
- ./
hierarchical_select.module, line 1046 - This module defines the "hierarchical_select" form element, which is a greatly enhanced way for letting the user select items in a hierarchy.
Code
function _hierarchical_select_process_render_db_visible($hsid, $dropbox) {
$element['#tree'] = TRUE;
$element['#theme'] = 'hierarchical_select_dropbox_table';
// This information is necessary for the #theme callback.
$element['title'] = array(
'#type' => 'value',
'#value' => t($dropbox->title),
);
$element['separator'] = array(
'#type' => 'value',
'#value' => '›',
);
$element['is_empty'] = array(
'#type' => 'value',
'#value' => empty($dropbox->lineages),
);
if (!empty($dropbox->lineages)) {
foreach ($dropbox->lineages as $x => $lineage) {
// Store position information for the lineage. This will be used in the
// #theme callback.
$element['lineages'][$x] = array(
'#zebra' => ($x + 1) % 2 == 0 ? 'even' : 'odd',
'#first' => $x == 0 ? 'first' : '',
'#last' => $x == count($dropbox->lineages) - 1 ? 'last' : '',
);
// Create a 'markup' element for each item in the lineage.
foreach ($lineage as $depth => $item) {
// The item is selected when save_lineage is enabled (i.e. each item
// will be selected), or when the item is the last item in the current
// lineage.
$is_selected = $dropbox->save_lineage || $depth == count($lineage) - 1;
$element['lineages'][$x][$depth] = array(
'#value' => $item['label'],
'#prefix' => '<span class="dropbox-item' . ($is_selected ? ' dropbox-selected-item' : '') . '">',
'#suffix' => '</span>',
);
}
// Finally, create a "Remove" checkbox for the lineage.
$element['lineages'][$x]['remove'] = array(
'#type' => 'checkbox',
'#title' => t('Remove'),
);
}
}
return $element;
}