因為每個商品屬於很多分類,所以希望在商品頁面可以有個
「這個商品屬於」
然後希望能用層級的方式列出,像是奶粉的產品頁,希望列出:
貓用>飼料>奶粉
貓用>營養品>奶類
花了很多時間,結果寫這樣<?php if ($node->taxonomy) { ?>
-
<?php foreach($node->category as $key => $term)
- ';
$all_parents=taxonomy_get_parents_all($key);
sort($all_parents);
foreach($all_parents as $pkey => $all_parent){
//print '';print_r($all_parent);print '
';
print '>' . l($all_parent->name, 'node/' . $all_parent->tid);
}
print '
//註:因為我安裝category,所以是$node->category
{
print '
';
} ?>
<?php } ?>
像這樣,會顯示
>點心及營養品>營養品>奶粉
>飼料主食>奶粉/牛奶
有幾個問題
1.該如何把最前面的>刪掉呢?
2.我希望他按照順序排出來,但用php的sort好像沒用?
要如何請他按照$key的數字,倒著排出來呢?
print_r出的是這樣(他會依照0~3排出來,我希望依照3~0>"<)Array
(
[0] => stdClass Object
(
[tid] => 162
[vid] => 152
[name] => 點心及營養品
[description] =>
[weight] => 0
)
[1] => stdClass Object
(
[tid] => 164
[vid] => 152
[name] => 營養品
[description] =>
[weight] => 0
)
[2] => stdClass Object
(
[tid] => 165
[vid] => 152
[name] => 奶粉
[description] =>
[weight] => 0
)
[3] => stdClass Object
(
[tid] => 166
[vid] => 152
[name] => 貓咪頻道
[description] =>
[weight] => 0
)
)
Re: 依照層級列出分類
http://www.php.net/array_reverse
Re:
<?php if ($node->taxonomy) { ?>
<?php foreach($node->category as $key => $term)- ';
//註:因為我安裝category,所以是$node->category
{
print '
$all_parents = taxonomy_get_parents_all($key);
//sort($all_parents);
$items = array();
foreach($all_parents as $pkey => $all_parent){
//print '
';
//print '>' . l($all_parent->name, 'node/' . $all_parent->tid);
array_unshift($items, l($all_parent->name, 'node/' . $all_parent->tid)); //把新的項目加到陣列的開頭
}
print join('>', $items); //將陣列中的的每個項目以>作為分隔字元連接起來成為一個字串
print '
';
} ?>
<?php } ?>
Re:
嗚嗚!太完美了!