2009-10-28 2 views
2

카테고리 용어 목록 (블록 내에 포함됨)을 만들고 싶습니다. 각 용어 뒤에 그 용어가있는 노드의 수를 셉니다. 예 :드루팔 (Drupal)의 각 카테고리 용어에 대한 노드 수는 어떻게 작성합니까?

Cats (5) 
Dogs (4) 
Elephants (2) 

여러 모듈이 있습니다. 동적으로 이와 같은 전체 목록을 만들지 만, 모두 내 용도로 단점이 있다는 것을 발견했습니다. 나는 문자 그대로 이것과 같은 것을 필요로한다 :

<ul> 
<li><a href="mylink">Cats</a> (<?php ...some code... ?>)</li> 
<li><a href="mylink">Dogs</a> (<?php ...some code... ?>)</li> 
<li><a href="mylink">Elephants</a> (<?php ...some code... ?>)</li> 
</ul> 

Ie. 전체 목록이 아닌 동적 인 수만 있으면됩니다 (조건 자체가 변경되지 않으므로이 값은 유효합니다). Drupal 함수 taxonomy_term_count_nodes()이 유용 할 수 있다고 들었지만 구현과 관련된 간단한 정보를 찾을 수 없습니다.

답변

8

구현과 관련하여 어떤 정보를 원하십니까? The documentation은 꽤 분명해 보입니다 ...

<?php print taxonomy_term_count_nodes($term_id); ?> 
+0

글쎄, 이제는 그렇게 할 수 있다는 것이 확실합니다. 감사! – james6848

3

나는 몇 번했습니다. IMO보기를 사용하여 분류법 용어 만 나열하는 노드보기를 만든 다음 http://drupal.org/project/views_groupby 모듈을 사용하여 용어 옆에 노드 수가 늘어나는 것이 좋습니다. views_groupby documentation의 예는 알아야 할 사항을 알려줍니다.

귀하의 맞춤 모듈은 분명히 약간 융통성이 있지만 궁극적으로 위의 경우는 필요하지 않습니다.

2

설명서에 누락 된 정보가 무엇인지 잘 모르겠습니다. 예를 들어 도움이 될 수 있습니다. 다음은 노드 카운트가 첨부 된 (테스트되지 않았으므로 오타가있을 수 있음) 어휘 내의 모든 용어의 정렬 된 목록을 만듭니다.

// Adjust this to the id of the vocabulary holding your terms 
$vid = 1; 
// Grab all terms in that vocabulary 
$terms = taxonomy_get_tree($vid); 
$items = array(); 
foreach ($terms as $term) { 
    // Get the number of (published) nodes with that term 
    $count = taxonomy_term_count_nodes($term->tid); 
    // Assemble your link text 
    $text = $term->name . ' (' . $count . ')'; 
    // Set this to the path you want to link to (default term views used here) 
    $path = 'taxonomy/term/' . $term->tid; 
    // Turn the above into a rendered link 
    $link = l($text, $path); 
    // Add to items 
    $items[] = $link; 
} 
// Render array as an ordered list 
$list = theme('item_list', $items, NULL, 'ol'); 

print $list; 
0

와 배열 값을 계산 할 수있다 이 함수의 기본값이므로 'FALSE'로 다음과 같이해야합니다.

$data = taxonomy_select_nodes($term_id, FALSE); 
$count = count($data);