function _search_autocomplete_get_ordered_list in Search Autocomplete 7.3
Same name and namespace in other branches
- 6.4 search_autocomplete.form.treelist.inc \_search_autocomplete_get_ordered_list()
- 6.2 search_autocomplete.form.treelist.inc \_search_autocomplete_get_ordered_list()
- 7.4 search_autocomplete.form.treelist.inc \_search_autocomplete_get_ordered_list()
- 7.2 search_autocomplete.form.treelist.inc \_search_autocomplete_get_ordered_list()
HELPER: Returns a tree list of all items in the $items array that are children of the supplied parent, ordered appropriately
Return value
the ordered tree
1 call to _search_autocomplete_get_ordered_list()
- _search_autocomplete_get_items in ./
search_autocomplete.form.treelist.inc - Helper function: get the forms from database and render them hierarchically return the items sorted
File
- ./
search_autocomplete.form.treelist.inc, line 205 - Search Autocomplete Display the list of form to autocomplete and themis it as a draggable table.
Code
function _search_autocomplete_get_ordered_list($parent, $items, $depth = 0) {
$remnant = array();
$children = array();
// Insert direct children in $children
// and remaining in $remnant
foreach ($items as $item) {
if ($item->parent_fid == $parent) {
$item->depth = $depth;
$children[] = $item;
}
else {
$remnant[] = $item;
}
}
// Sort the direct children by weight
usort($children, '_search_autocomplete_sort_by_weight');
$ancestors = array();
foreach ($children as $child) {
// Order the child ancestors iteratively
$child_children = _search_autocomplete_get_ordered_list($child->fid, $remnant, $depth + 1);
// Push the results into the main array below the child
$ancestors[] = $child;
// Merge it if needed
if (count($child_children)) {
$ancestors = array_merge($ancestors, $child_children);
}
}
return $ancestors;
}