it-swarm-id.com

Bagaimana cara membuat pohon bersarang dengan istilah & node dengan Views 3?

Saya perlu membuat sesuatu yang mirip seperti ini:

Warna (Kosakata)

  • Merah (istilah)
    • Gelap (istilah)
      • Simpul 1
      • Simpul 2
    • Cahaya (istilah)
      • Simpul 3
      • Simpul 4
  • Biru (istilah)
    • Simpul 5
    • Simpul 6
  • Hijau (istilah)
    • Simpul 7
    • Simpul 8

(Poin peluru adalah indentasi.)
Apakah ada cara untuk melakukan ini dengan Drupal 7 dan tampilan 3? Jika tidak, apakah ada cara lain untuk melakukan ini?

22
iStryker

Berkat refino, saya menemukan solusi yang bagus menggunakan modul-modul berikut:

Di bawah ini Anda menemukan penjelasan:

  1. Pertama buat Taksonomi baru (sebut saja "Folder")
  2. Lalu, buat jenis konten baru (sebut saja "Elemen") dengan bidang referensi istilah ke taksonomi "Map"
  3. Buat Tampilan "Konten" baru (sebut saja "Tampilan Elemen")
  4. Pilih Tampilan Bidang
  5. Tambahkan Filter Kontekstual ke bidang referensi istilah Anda
  6. Buat Tampilan "Taksonomi" baru (sebut saja "Folder Folder")
  7. Tambahkan 2 bidang (istilah nama dan istilah id). Kolom kedua dapat dikecualikan dari tampilan
  8. Dalam Hubungan: tambahkan "istilah induk"
  9. Tambahkan bidang ketiga (istilah id) dan tetapkan ke relasi orang tua Anda. Bidang ini dapat dikecualikan dari tampilan
  10. Pilih Format "Tree (Adjacency model)" dan pilih di parameter: Daftar dipesan + Bidang utama (tid pertama Anda), bidang Induk (tid Anda ditetapkan ke relasi induk). Anda sekarang harus memiliki pohon yang bagus dengan semua persyaratan Anda bersarang
  11. Tambahkan bidang ke-4 "Global: View" (ini datang dengan Tampilan Bidang Tampilan) dan pilih "Tampilan elemen" Anda, tampilkan Master tambahkan [tid] di kolom teks Argumen

Semoga bantuan ini

Bersulang

Sunting oleh iStryker : Inilah yang saya dapat. Satu-satunya hal yang saya ubah adalah membuat Tampilan Elemen tampilan tabel, dan menghapus kelas default (baris & strip).

Image of the final product by iStryker

15
Fred

Saya membuat tiga tampilan di Drupal 7.8 dan Bidang Views 3 + Views, menyatukan satu tampilan ke tampilan lain menggunakan Include View, dan saya mendapatkan hasil seperti itu (terlampir). enter image description here

Langkah-langkah bagaimana melakukannya:

  1. Buat kosakata "Warna" dan isi dengan tag.

  2. Buat tampilan baru dari taksonomi node Warna - Saya menyebutnya "Nodes of Colors"

2.1 Format Tabel, Pengaturan: Pengelompokan bidang: Istilah taksonomi: Nama

2.2 Filter kontekstual Tingkat Lanjut: Istilah taksonomi: Istilah induk

2.3 Hubungan Lanjutan: Istilah taksonomi: Konten menggunakan Warna

2.4 Set Fields: Istilah taksonomi: ID Term, istilah taksonomi: Nama, (field_color) Konten: Judul

2.5 Kriteria filter: Istilah taksonomi: Kosakata (= Warna)

2.6 Jika mau, Anda juga dapat mengatur "Kecualikan dari tampilan" untuk ID Term, istilah Taksonomi: Nama

2.7 Set Path:/node-of-colors /%

2.8 Setel tidak ada perilaku hasil: Global: Area tampilan (kami akan kembali ke sini nanti) 2.9 save

3.Buat tampilan baru warna taksonomi node - Saya menyebutnya "Nodes of Colors 2"

3.1 Format Tabel, Pengaturan: Kolom pengelompokan: tidak ada

3.2 Filter kontekstual Lanjut: Istilah taksonomi: Term ID

3.3 Hubungan Lanjutan: Istilah taksonomi: Konten menggunakan Warna

3.4 Set Fields: Istilah taksonomi: ID Term, istilah taksonomi: Nama, (field_color) Konten: Judul

3.5 Kriteria filter: Istilah taksonomi: Kosakata (= Warna)

3.6 Jika mau, Anda juga dapat mengatur "Kecualikan dari tampilan" untuk Term ID, istilah Taksonomi: Nama

3.7 Set Path:/node-of-colors-2 /%

3.8 Setel tidak ada perilaku hasil: Global: tidak ada

3,9 Simpan

Kembali dan edit "Nodes of Colors" lagi

4.1 pergi ke Setel tidak ada perilaku hasil: Global: Area tampilan

4.2 Atur Tampilan untuk disisipkan: Tampilan: nodes_of_colors2 Tampilan: halaman

4.3 mengatur filter kontekstual bawaan

4.4 simpan

5 Kembali ke Tampilan lagi (Jenis Istilah)

5.1 Buat tampilan baru dari taksonomi node Warna - Saya menyebutnya "Pohon Warna"

5.1 Format Tabel, Pengaturan: Kolom pengelompokan: tidak ada

5.2 Filter kontekstual Tingkat Lanjut: tidak ada

5.3 Hubungan Lanjutan: Istilah taksonomi: Istilah orang tua

5.4 Set Fields: Istilah taksonomi: ID Term, istilah taksonomi: ID Term, istilah taksonomi: Nama, Lihat: Sertakan Tampilan (Sertakan Tampilan)

5.5 Kriteria filter (1): Istilah taksonomi: Kosakata (= Warna)

5.6 Kriteria filter (2): (Induk) Istilah taksonomi: Term

5.7 Jika mau, Anda juga dapat mengatur "Kecualikan dari tampilan" untuk Term ID dan label Include View

5.8 Set Path:/colors-tree

5.9 Tetapkan tidak ada perilaku hasil: tidak ada

5,10 Hemat

... dan ini seharusnya, akhirnya.

14
Refineo

Saya belum pernah mencoba versi D6 atau D7 ini sendiri tetapi saya pikir saya akan menyebutkannya kalau-kalau itu yang Anda cari: Modul Tampilan Pohon - Kemajuan D7

Edit : Sekarang ada versi D7, checkout homepage modul Views Tree

4
nmc

Jika Anda ingin mendapatkan vid dari URL kemudian gunakan kode berikut.

$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;

}

Atau gunakan kode berikut.

$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" : "";
  }
3
Ahmad

Anda dapat menggunakan modul menu Taksonomi . Berikut ini adalah kutipan tentang hal itu (dari halaman proyek modul):

Ubah kosakata taksonomi Anda menjadi menu dengan mudah!

Fitur:

  • Menu Kustom per kosakata
  • Menggunakan jalur istilah taksonomi default atau jalur khusus
  • Integrasikan dengan Tampilan
  • Integrasikan dengan Pathauto: gunakan alias URL/path
  • Tidak mengganggu modul menu lainnya
2
dilari

Tentu saja ada:

  1. Atur kosakata hierarki Anda,
  2. Tambahkan ke jenis konten apa pun yang dipilih,
  3. Buat tampilan daftar node dari tipe konten itu, dengan filter kontekstual :

    • "Konten: Memiliki ID istilah taksonomi" - jika Anda ingin mendaftar hanya node yang ditetapkan untuk istilah tertentu,
    • atau "Konten: Memiliki ID istilah taksonomi (dengan kedalaman)" - jika Anda ingin membuat daftar node yang ditetapkan untuk istilah tertentu dan juga istilah turunannya.

      Dalam hal ini, dalam konfigurasi filter Anda perlu mengatur kedalaman - berapa banyak level di bawah (atau di atas) yang Anda inginkan agar filter ini berfungsi.

Kemudian, dengan asumsi URL tampilan Anda adalah http://mysite.com/myview dan 'Red' tid = 1, jika Anda membuka http://mysite.com/myview/1 itu akan mencantumkan Anda semua node yang ditugaskan ke salah satu dari istilah 'merah', 'gelap' dan/atau 'terang'.

2
Maciej Zgadzaj

Saya percaya saya telah menemukan cara lain untuk menyelesaikan masalah ini, dan saya pikir ini lebih sederhana daripada solusi lainnya. Itu tidak melibatkan modul tambahan dan Anda hanya perlu satu tampilan.

Dengan asumsi Anda telah membuat dua tingkat kosakata hierarkis (Warna) dan jenis konten dengan referensi istilah untuk vocab itu, lakukan hal berikut:

  1. Buat tampilan baru dan filter dengan "Kosa kata taksonomi: Nama mesin (= Warna)"
  2. Tambahkan hubungan: (1) Taxonomy term: Content using Color dan (2) Taxonomy term: Parent term
  3. Tambahkan bidang ke tampilan: (1) Title (pilih field_color dalam "Hubungan" dan memerlukan hubungan ini), (2) Taxonomy term name (jangan gunakan hubungan dan kecualikan dari tampilan) (3) Taxonomy term name (ya, sekali lagi, kali ini pilih Parent untuk hubungan dan kecualikan dari tampilan).
  4. Sekarang kelompokkan dengan mengklik Pengaturan Format: (1) pengelompokan 1: (Parent) Taxonomy term: Name, (2) Taxonomy term: Name

Selesai Jika Anda memiliki lebih dari dua level, tambahkan saja Relationship of Parent menggunakan Parent sebagai hubungan relationship.

EDIT: jika Anda tidak memerlukan hubungan Anda akan berakhir dengan dupes. Orang tua akan terdaftar dua kali jika mereka memiliki istilah anak yang dirujuk oleh node. Jadi ini membatasi jawaban sedikit dalam istilah tingkat atas tanpa simpul yang referensi itu tidak akan ditampilkan. Juga, karena penyortiran mungkin penting, memiliki konten apa pun yang merujuk istilah tingkat atas berpotensi menyebabkan masalah bagi Anda tergantung pada kebutuhan tampilan.

0
cdmo

Saya mencoba untuk mencapai hal yang sama tetapi belum menemukan banyak tersedia di D7. Blok Taksonomi modul melakukannya dalam sebuah blok - bukan tampilan.

0
uwe