0

Drupal 7 ブロックで、特定のボキャブラリの分類用語を順不同リストにリストし、その分類用語の一部である公開ノードを子として作成しようとしています。

例:

Products というボキャブラリがあり、分類用語 Beer、Wine、および Whisky があるとします。ビールには 2 つのコンテンツ ノード (ギネスとバドワイザー) が接続されているとします。

最終的には次のようになります。

  • ビール (2)
    • ギネス
    • バドワイザー
  • ワイン (2)
    • ピノ・ノワール
    • ホワイトジンファンデル
  • ウイスキー (3)
    • ジャックダニエル
    • メーカーズマーク
    • クラウン ロイヤル

分類用語をカウントとともに「ちょうど」表示する方法を見つけましたが、各用語に関連するすべての公開ノードを印刷する方法がわかりません。これが私が得たものです:

<?php

$vid = 1; //vocabulary id

$query = "SELECT tid, name, count
FROM (
SELECT td.tid AS tid, name, COUNT(td.tid) AS count
FROM taxonomy_term_data AS td
JOIN taxonomy_index AS tn
  ON td.tid = tn.tid
JOIN node AS n
  ON n.nid = tn.nid
WHERE td.vid = ". $vid ."
  AND n.status = 1
GROUP BY td.tid
ORDER BY count DESC
) AS t
ORDER BY name ASC";

$result = db_query($query);

print '<ul>';   
foreach($result as $term) {
if ($term->count > 0) {
  print '<li>';
  echo l($term->name, "taxonomy/term/$term->tid").' ('.$term->count.')';
  print '</li>';
}
}
print '</ul>';    

?>

これにより、次の出力が生成されます。

  • ビール (2)
  • ワイン (2)
  • ウイスキー (3)

しかし、これらの分類用語の子に、その分類用語の一部である公開ノードを表示するにはどうすればよいでしょうか?

何か案は?

ありがとうございました

4

2 に答える 2

0

これは間違いなくビューで行うことができます。「フィールド」タイプのビューを使用します。ノードのタイトルと「すべての分類用語」(語彙でフィルタリング) をフィールドとして追加します。非公開を指定するフィルターと、目的のノード タイプを追加します。ビューのフォーマット設定で、「グループ化フィールド」を分類用語に設定します。必要に応じて並べ替えを指定します。通常、用語で並べ替え、次にノード タイトルで並べ替えます。

于 2012-11-02T21:05:57.433 に答える
0

以下は、ビューを作成するためのスクリーン ショット付きのステップ バイ ステップの手順です。

http://www.brightwebsitedesign.com/how-to-use-views-aggregator-to-create-taxonomy-term-count-block

于 2013-11-15T07:54:13.343 に答える