您在這裡

根據 term depth 來決定套用的 panel page

ilay's 的頭像
ilay 在 2011-06-24 (週五) 18:08 發表

一直在想這個問題..不得其解..
在下有一分類結構,目前想每個不同層級的分類頁面都給與不同的版面配置,但如果直接用 views 或 panel page 來設的話,
通常是路徑為 taxonomy/term/% 的路徑全給一致蓋掉了,就算在 views 裡設個過濾器,也是無效。
如此要作個稍有變化性的商品目錄之類的,實在很困擾,不知各位先輩們有什麼方法可以參考呢,感激不盡 :)

抱歉又來發問了~
針對這個問題,我想到一個思考方向:
如果要設定為現瀏覽term的parent的parent為某term或是說沒有parent term,他的 parent就是Vocabulary的話
這又該怎麼弄呢?
對 panels 的 context 還不是了解的很透,還請多包含orz

你問的是關於 Breadcrumb 還是 Taxonomy 本身的階層關係?
Panles 本身對 Breadcrumb 的支援不足,你得用其他模組幫忙,如果你指的是 Taxonomy 本身的階層關係,我記得可以利用某些模組在寫入 Node 時把整串階層都記錄下來。
當然要如何處理這些資料就要寫點程式啦~

發現沒有內建的解決方式,於是寫了 code,也給有需要的人吧^^

$rule_depth=2;//設定要過濾的term層級,符合設定數值則回傳 true,其他則 false.

function get_depth($tid) {
$limit = 99;
$depth = 1;
while ($parent = db_result(db_query("SELECT parent FROM term_hierarchy WHERE tid=%d", $tid))) {
$depth++;
$tid = $parent;
if ($depth > $limit) {
break;
}
}
return $depth;
}

if (get_depth($contexts[argument_terms_1]->data->tid)==$rule_depth) {
return true;
} else {
return false;
}

在 rule 新增一個 php code,填入即可。