function forum_breadcrumbs(array $forum_index, $forum_id = 0)
{
$locale = fusion_get_locale("", FORUM_LOCALE);
if (empty($forum_id)) {
$forum_id = isset($_GET['forum_id']) && isnum($_GET['forum_id']) ? $_GET['forum_id'] : 0;
}
/* Make an infinity traverse */
function forum_breadcrumb_arrays($index, $id, &$crumb = false)
{
if (isset($index[get_parent($index, $id)])) {
$_name = dbarray(dbquery("SELECT forum_id, forum_name, forum_cat, forum_branch FROM " . DB_FORUMS . " WHERE forum_id='" . $id . "'"));
$crumb = array('link' => INFUSIONS . "forum/index.php?viewforum&forum_id=" . $_name['forum_id'] . "&parent_id=" . $_name['forum_cat'], 'title' => $_name['forum_name']);
if (isset($index[get_parent($index, $id)])) {
if (get_parent($index, $id) == 0) {
return $crumb;
}
$crumb_1 = forum_breadcrumb_arrays($index, get_parent($index, $id));
$crumb = array_merge_recursive($crumb, $crumb_1);
// convert so can comply to Fusion Tab API.
}
}
return $crumb;
}
// then we make a infinity recursive function to loop/break it out.
$crumb = forum_breadcrumb_arrays($forum_index, $forum_id);
// then we sort in reverse.
if (count($crumb['title']) > 1) {
krsort($crumb['title']);
krsort($crumb['link']);
}
if (count($crumb['title']) > 1) {
foreach ($crumb['title'] as $i => $value) {
add_breadcrumb(array('link' => $crumb['link'][$i], 'title' => $value));
if ($i == count($crumb['title']) - 1) {
add_to_title($locale['global_201'] . $value);
}
}
} elseif (isset($crumb['title'])) {
add_to_title($locale['global_201'] . $crumb['title']);
add_breadcrumb(array('link' => $crumb['link'], 'title' => $crumb['title']));
}
}