首頁 › Code | 依照層級列出分類
Code | 依照層級列出分類
Drupal的分類功能(Taxonomy)很讚,但很可惜就是分類的顯示方式非常陽春,無論是文章分類、標籤等等,顯示方式都是在node頁面的link下面,假設分類有階層(A分類底下的B),他也只會把B顯示出來而已。
本篇的code是可以讓文章頁面顯示依照階層來顯示,像是這樣:
貓>飼料>奶粉
狗>營養品>奶類
下方Code為Drupal5或6都適用
<?php if ($node->taxonomy): ?> <ul class="product_cate_list"> <?php foreach($node->taxonomy as $key => $term) { print '<li>'; $all_parents = taxonomy_get_parents_all($key); $items = array(); foreach($all_parents as $pkey => $all_parent){ array_unshift($items, l($all_parent->name, 'node/' . $all_parent->tid)); //把新的項目加到陣列的開頭 } print join('>', $items); //將陣列中的的每個項目以>作為分隔字元連接起來成為一個字串 print '</li>'; } ?> </ul> <?php endif; ?>
如果只想想是某種分類(Vocabulary)的層級,則服用以下:
(記得修改$vid變數)
<?php if ($node->taxonomy): ?> <ul class="product_cate_list"> <?php foreach($node->taxonomy as $key => $term){ $vid = '4'; //只顯示Vocabulary 是4的分類 print '<li>'; $all_parents = taxonomy_get_parents_all($key); $tkey = taxonomy_get_term($all_parents['0']->tid); $items = array(); if($tkey->vid == $vid){ //print kprint_r($tkey); foreach($all_parents as $pkey => $all_parent){ array_unshift($items, l($all_parent->name, 'node/' . $all_parent->tid)); //把新的項目加到陣列的開頭 } } print join('>', $items); //將陣列中的的每個項目以>作為分隔字元連接起來成為一個字串 print '</li>'; } ?> </ul> <?php endif; ?>
- 人氣(6652)
Recent Comments
熱門內容
- Drupal | 用hook_menu_alter來修改tab項目 (192,698)
- 第一次玩弄Drupal就不上手 (183,796)
- 六個網站測速工具 (103,105)
- Drupal 的 Eye Candy? (71,118)
- Introduction to Drupal 簡報分享 (35,916)
找我聊聊
敲我MSN吧!
若我MSN下班,搞不好在這
或是在這













回應
這個層級列出分類的修改code真是實用,這 樣就方便多了^^
fm5wdH demjtzexeljt, [url=http://mypgcvxwexxr.com/]mypgcvxwexxr[/url], [link=http://yyurubjhxdut.com/]yyurubjhxdut[/link], http://iejkawhplyng.com/
發表新回應