PHPFusion\Forums\ForumServer::forum_breadcrumbs PHP Метод

forum_breadcrumbs() публичный Метод

Forum Breadcrumbs Generator
public forum_breadcrumbs ( array $forum_index, integer $forum_id )
$forum_index array - requires a dbquery_tree() output
$forum_id integer
    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']));
        }
    }