回答:
refinoのおかげで、次のモジュールを使用して素晴らしい解決策を見つけました。
以下に説明があります。
この助けを願っています
乾杯
iStrykerによる編集:これは私が得たものです。変更したのは、エレメントビューをテーブルビューにし、デフォルト(行とストリップ)クラスを削除することだけでした。
Drupal 7.8およびViews 3 + Views Fieldで3つのビューを作成し、Include Viewを使用して1つのビューを別のビューにネストすると、そのような結果が得られました(添付)。
ステップバイステップの方法:
ボキャブラリー「色」を作成し、タグで埋めます。
分類ノードの色の新しいビューを作成します-私はそれを「色のノード」と呼びます
2.1フォーマット表、設定:グループ化フィールド:分類用語:名前
2.2高度なコンテキストフィルター:分類用語:親用語
2.3高度な関係:分類用語:色を使用したコンテンツ
2.4フィールドの設定:分類用語:用語ID、分類用語:名前、(field_color)コンテンツ:タイトル
2.5フィルター基準:分類用語:語彙(=色)
2.6必要に応じて、用語ID、分類用語に「表示から除外」を設定することもできます:名前
2.7パスの設定:/ nodes-of-colors /%
2.8結果なしの動作を設定:グローバル:表示領域(後でこれに戻ります)2.9保存
3.分類ノードの色の新しいビューを作成します-私はそれを「色2のノード」と呼びます
3.1フォーマット表、設定:グループ化フィールド:なし
3.2高度なコンテキストフィルター:分類用語:用語ID
3.3高度な関係:分類用語:色を使用したコンテンツ
3.4フィールドの設定:分類用語:用語ID、分類用語:名前、(field_color)コンテンツ:タイトル
3.5フィルター基準:分類用語:語彙(=色)
3.6必要に応じて、用語ID、分類用語に「表示から除外」を設定することもできます:名前
3.7 Set Path:/ nodes-of-colors-2 /%
3.8結果なしの動作の設定:グローバル:なし
3.9保存
戻って「色のノード」をもう一度編集します
4.1結果なしの動作を設定する:グローバル:ビューエリアに進みます
4.2挿入するビューの設定:ビュー:nodes_of_colors2表示:ページ
4.3継承コンテキストフィルターの設定
4.4保存
5もう一度ビューに戻る(タイプ用語)
5.1分類ノードの色の新しいビューを作成-私はそれを「色ツリー」と呼びます
5.1フォーマット表、設定:グループ化フィールド:なし
5.2高度なコンテキストフィルター:なし
5.3高度な関係:分類用語:親用語
5.4フィールドの設定:分類用語:用語ID、分類用語:用語ID、分類用語:名前、ビュー:ビューを含む(ビューを含む)
5.5フィルター基準(1):分類用語:語彙(=色)
5.6フィルター基準(2):(親)分類用語:用語
5.7必要に応じて、用語IDに「表示から除外」および「ビューを含める」のラベルを設定することもできます
5.8パスの設定:/ colors-tree
5.9結果なしの動作の設定:なし
5.10保存
...そしてこれが最後になります。
私はこれのD6またはD7バージョンを自分で試したことはありませんが、あなたが探しているものであればそれを言及すると思いました:Views Tree Module-D7 progress
編集:D7バージョンがあります。モジュールホームページビューツリーをチェックアウトしてください
URLからvidを取得するには、次のコードを使用します。
$vid = $_GET['vid'];
$tid = 0;
$level = 0;
print taxonomy_tree($vid, $tid, $level);
function taxonomy_tree($vid, $tid = 0, $level) {
$children = taxonomy_get_children($tid, $vid);
$output = '';
if ($children) {
$output .= '<ul>';
foreach ($children as $child) {
$level++;
$output .= '<li class="taxonomy-tree-lvl' . $level . ' ">';
print $level;
$output .= l($child->name, 'taxonomy/term/'. $child->tid) . '(' . taxonomy_term_count_nodes($child->tid) . ')';
$output .= taxonomy_tree($vid, $child->tid, $level);
$output .= '</li>';
$level--;
}
$output .= '</ul>';
}
return $output;
}
または、次のコードを使用します。
$vocabulary = taxonomy_vocabulary_load(2);//Here pass the vid
print $vocabulary->name;
$vid1 = $_GET['vid'];
if(!$vid1) {
$vid1 = 2;
print 'empty';
}
$vid = 2;
$parent = 0;
print get_child_terms($parent, $vid1);
function get_child_terms($parent, $vid) {
$sql = "SELECT td.tid, td.vid, td.name"
. " FROM {term_data} td"
. " JOIN {term_hierarchy} th on th.tid = td.tid"
. " WHERE th.parent = %d"
. " AND td.vid = %d"
. " ORDER BY td.weight, td.name";
$terms = db_query($sql, $parent, $vid);
$output = "";
while ($aterm = db_fetch_object($terms)) {
$output .= "<li>";
$output .= l("$aterm->name", "taxonomy/term/$aterm->tid/all") . " ("
. taxonomy_term_count_nodes($aterm->tid) . ")</li>\n"
. get_child_terms($aterm->tid, $vid);
}
return ($output != "") ? "<ul style='list-style-type: none;
margin: 0px 0px 0px 20px;
padding: 0px;'>\n". $output ."</ul>\n" : "";
}
もちろんあります:
コンテキストフィルターを使用して、そのコンテンツタイプからノードをリストするビューを作成します。
または「コンテンツ:分類用語ID(深さあり)」-特定の用語とその子用語に割り当てられたノードを一覧表示する場合。
この場合、フィルター構成では、深さを設定する必要があります-このフィルターを動作させるレベルの数(下)(または上)。
次に、あなたのビューのURLを仮定することはありhttp://mysite.com/myviewと「赤」TID = 1、あなたがに行く場合http://mysite.com/myview/1それはあなたのいずれかに割り当てられたすべてのノードが一覧表示されます「赤」、「暗い」、および/または「明るい」という用語。
Taxonomyメニューモジュールを使用できます。モジュールのプロジェクトページからの引用です:
分類法の語彙をメニューに簡単に変換します!
特徴:
- 語彙ごとのカスタムメニュー
- デフォルトの分類用語パスまたはカスタムパスを使用します
- ビューと統合する
- Pathautoと統合:URL /パスエイリアスを使用
- 他のメニューモジュールに干渉しない
この問題を解決する別の方法を見つけたと思いますが、他の解決策よりも簡単だと思います。追加のモジュールは一切含まれず、必要なビューは1つだけです。
2レベルの階層語彙(色)とその語彙への用語参照を含むコンテンツタイプを作成したと仮定して、次の手順を実行します。
Taxonomy term: Content using Color
および(2)Taxonomy term: Parent term
Title
(field_color
「リレーションシップ」で選択し、このリレーションシップを必要とします)、(2)Taxonomy term name
(リレーションシップを使用せず、表示から除外します)(3)Taxonomy term name
(はい、今回Parent
はリレーションシップを選択して除外しますディスプレイから)。(Parent) Taxonomy term: Name
、(2)Taxonomy term: Name
できた 3つ以上のレベルがある場合は、リレーションシップの関係として親を使用して、別の親の関係を追加するだけです。
編集:関係を必要としない場合は、だまされてしまいます。ノードが参照する子用語がある場合、親は2回リストされます。そのため、トップレベルの用語では、参照するノードが表示されないため、回答が少し制限されます。また、ソートはおそらく重要であるため、最上位の用語を参照するコンテンツがあると、ディスプレイのニーズに応じて問題が発生する可能性があります。