나는 내가 가진 모든 것이 "자식"의 TID 일 때 분류법 용어 (예 : 조부모/부모/자식)에서 계층 적 탐색 경로를 생성하려고합니다. 나는 taxonomy_get_tree()
을 가지고 놀고 있었지만 매우 반복적으로 반복하지 않으면 매우 어려워 보인다. 더 쉬운 방법이 있어야합니다.드루팔 (Drupal : 계층 적 분류 학적 빵 부스러기 흔적
생각하십니까?
감사합니다.
나는 내가 가진 모든 것이 "자식"의 TID 일 때 분류법 용어 (예 : 조부모/부모/자식)에서 계층 적 탐색 경로를 생성하려고합니다. 나는 taxonomy_get_tree()
을 가지고 놀고 있었지만 매우 반복적으로 반복하지 않으면 매우 어려워 보인다. 더 쉬운 방법이 있어야합니다.드루팔 (Drupal : 계층 적 분류 학적 빵 부스러기 흔적
생각하십니까?
감사합니다.
이 내가 할 것입니다.
Taxonomy Breadcrumb이 기능을 제공하는 것으로 보입니다.
모듈을 사용하지 않으려면 코드가 영감을 줄 수 있습니다.
$breadcrumb[] = l(t('Home'), NULL);
if ($parents = taxonomy_get_parents_all($tid)) {
$parents = array_reverse($parents);
foreach ($parents as $p) {
$breadcrumb[] = l($p->name, 'taxonomy/term/'. $p->tid);
}
}
drupal_set_breadcrumb($breadcrumb);
나는 hook_view()
기능 또는 hook_nodeapi($op="view")
기능이 막대기 일반적으로 있습니다 :
Drupal 7을 사용하는 경우 분류학 빵 부스러기가 아직 개발 버전이고 코드를 작성해야합니다.
해결책보다 완벽한 추적 될 수
) (나 taxonomy_get_parents_all 가리키는 위해function YOUR_THEME_NAME_breadcrumb($variables)
{
// init
$breadcrumb = $variables['breadcrumb'];
// taxonomy hierarchy
$hierarchy = array();
if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2)))
{
$tid = (int)arg(2);
$parents = array_reverse(taxonomy_get_parents_all($tid));
foreach($parents as $k=>$v)
{
if($v->tid==$tid) continue;
$breadcrumb[] = l($v->name, 'taxonomy/term/'. $v->tid);;
}
}
// rendering
if (!empty($breadcrumb))
{
$output = '<h2 class="element-invisible">' . t('You are here') . '</h2>';
$output .= '<div class="breadcrumb">' . implode("<span class='separator'>»</span>", $breadcrumb) . '</div>';
return $output;
}
}
function yourthemename_breadcrumb($variables)
{// init
$breadcrumb = $variables['breadcrumb'];
// taxonomy hierarchy
$hierarchy = array();
if (arg(0) == 'taxonomy' && arg(1) == 'term' && is_numeric(arg(2)))
{
$tid = (int)arg(2);
$parents = taxonomy_get_parents_all($tid); dpm($parents);
$parents = array_reverse($parents);dpm($parents);
$breadcrumb = array();
$breadcrumb[] = l('Home', '/');
foreach($parents as $k=>$v)
{
$breadcrumb[] = l($v->name, 'taxonomy/term/'. $v->tid);;
}
}
// rendering
if (!empty($breadcrumb))
{
$output = '<h2 class="element-invisible">' . t('You are here') . '</h2>';
$output .= '<div class="breadcrumb">' . implode("<span class='separator'>»</span>", $breadcrumb) . '</div>';
return $output;
}
}
대답 학점을 (YOUR_THEME_NAME/template.php에서이 기능을 넣어). 감사! –