私はこのようなものを作成する必要があります:
色(語彙)
(弾丸ポイントはインデントです。)
Drupal 7とビュー3でこれを行う方法はありますか?そうでない場合、これを行う別の方法はありますか?
Refinoのおかげで、次のモジュールを使用した素敵なソリューションを見つけました。
以下に説明があります:
この助けを願っています
乾杯
iStrykerによる編集:これは私が入手したものです。私が変更したのは、Element Viewをテーブルビューにして、デフォルトの(行とストリップ)クラスを削除したことだけです。
Drupal 7.8とビュー3 +ビューフィールド)で3つのビューを作成し、インクルードビューを使用して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パスの設定:/ 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 Set Path:/ colors-tree
5.9結果の動作を設定しない:なし
5.10保存
...そして、これでようやくこれができるはずです。
私はこれのD6またはD7バージョンを自分で試したことがありませんが、あなたが探しているものである場合は、それを言及するつもりだと思いました: Views Tree Module-D7 progress
Edit:D7バージョンがあります。モジュールのホームページをチェックアウトしてください Views Tree
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" : "";
}
Taxonomy men モジュールを使用できます。これについての引用は次のとおりです(モジュールのプロジェクトページから):
分類語彙を簡単にメニューに変換します!
特徴:
- 語彙ごとのカスタムメニュー
- デフォルトの分類用語パスまたはカスタムパスを使用します
- ビューと統合する
- Pathautoと統合:URL /パスエイリアスを使用
- 他のメニューモジュールを妨害しない
もちろんあります:
contextual filterを使用して、そのコンテンツタイプからノードを一覧表示するビューを作成します。
または「コンテンツ:分類用語ID(深さあり)があります」-特定の用語とその子用語に割り当てられたノードを一覧表示する場合。
この場合、フィルター構成では、深さを設定する必要があります。このフィルターを機能させるには、そのレベルの下(または上)のレベル数を指定します。
次に、ビューのURLが http://mysite.com/myview であり、 'Red' tid = 1であるとすると、 http://mysite.com/myview/1にアクセスした場合 これは、「赤」、「暗」、「明」のいずれかの用語に割り当てられたすべてのノードを一覧表示します。
私はこの問題を解決するためのさらに別の方法を見つけたと思います、そしてそれは他の解決策よりも簡単だと思います。追加のモジュールは含まれておらず、必要なビューは1つだけです。
2レベル階層ボキャブラリ(色)と、そのボキャブへの用語参照を持つコンテンツタイプを作成したと仮定して、次の手順を実行します。
Taxonomy term: Content using Color
および(2)Taxonomy term: Parent term
Title
(field_color
in "Relationship" そしてこの関係が必要)、(2)Taxonomy term name
(関係を使用せず、表示から除外します)(3)Taxonomy term name
(はい、今回もParent
を選択して関係を表示し、表示から除外します)。(Parent) Taxonomy term: Name
、(2)Taxonomy term: Name
できました。 3つ以上のレベルがある場合は、関係の関係として親を使用して、別の親の関係を追加します。
編集:あなたが関係を必要としないならば、あなたはだまされてしまうでしょう。親は、ノードによって参照される子用語がある場合、2回リストされます。したがって、これは、トップレベルの用語で回答を少し制限します。これは、それを参照するノードがないと表示されません。また、おそらく並べ替えが重要であるため、最上位の用語を参照するコンテンツがあると、表示のニーズによっては問題が発生する可能性があります。
私は同じことを達成しようとしていますが、D7で利用できるものはあまり見つかりませんでした。 分類ブロック モジュールはビューではなくブロックでそれを行います。