Не могу показать Breadcrumb с помощью рекурсивной функции PHP - PullRequest
1 голос
/ 25 августа 2011

Если кто-то может помочь мне с отображением хлебных крошек, используя метод рекурсивной функции в PHP.

Я получил этот код:

function getCategoryTreeIDs($qs_type_id) {
        $crumbsql = "SELECT parent_id FROM lists WHERE id=$qs_type_id";
        $crumbresult = tep_db_query($crumbsql);
        $crumbrow = tep_db_fetch_array($crumbresult);
        $path = array();
        if (!$crumbrow['parent_id'] == '') {
            $path[] = $crumbrow['parent_id'];
            $path = array_merge($this->getCategoryTreeIDs($crumbrow['parent_id']), $path);
        }
        return $path;
}
function showCatBreadCrumb($qs_type_id) {
        $array = $this->getCategoryTreeIDs($qs_type_id);
        $numItems = count($array);
        for ($i = 0; $i<=$numItems-1; $i++) {
            echo $this->getNameLink($array[$i]) . ' &raquo; ';
        }
}

Но, когда я нажимаю на любые ссылки (категории),хлебная крошка не появилась.Если есть какая-либо ошибка в показе кода хлебной крошки?

Любая помощь будет признательна.Я уже искал подсказку за последние пару месяцев.

Большое спасибо!

EDIT : код для отображения, не использующий команду "for".

   function getCategorytTreeIDs($qs_type_id) {
    global $lists;
    $crumbsql = "SELECT * FROM lists WHERE id=$qs_type_id";
    $crumbresult = mysql_query($crumbsql);
    $crumbrow = mysql_fetch_array($crumbresult);
    if($crumbrow['parent_id'] == 0) {
        $crumbprob = $crumbrow['problem'];
        return "<a href='index.php'>Home</a> > <a href='index.php?q=id/$qs_type_id'>".$crumbprob."</a> > ";
    } else {
        $crumbprob = $crumbrow['problem'];  
        return getCategoryTreeIDs($crumbrow['parent_id']). "<a href='index.php?q=id/$qs_type_id'>".$crumbprob."</a> >";
    }
}

Чтобы показать хлебные крошки, я должен вручную ввести функцию и номер идентификатора.Например:

echo getCategoryTreeIDs(20);

Мой вопрос: как я могу автоматически отображать хлебные крошки, когда некоторые пользователи нажимают на идентификатор категории?

Спасибо.

1 Ответ

0 голосов
/ 29 августа 2011

Чтобы динамически отображать хлебные крошки для запрошенных страниц, вам нужно проверить параметр q GET.

list($qName, $qID) = explode('/', $_GET['q']); // for categories qName will be 
                                               // 'id' and qID will the be id
if($qName == 'id') {
    echo getCategoryTreeIDs($qID); //Outputs breadcrumbs for category pages
}
...