Görünümler 3 ile terimleri ve düğümleri olan iç içe bir ağacı nasıl oluştururum?


22

Buna benzer bir şey yaratmam gerekiyor:

Renkler (Kelime)

  • Kırmızı (vadeli)
    • Karanlık (dönem)
      • 1. düğüm
      • 2. düğüm
    • Işık (dönem)
      • Düğüm 3
      • 4. düğüm
  • Mavi (vadeli)
    • 5. düğüm
    • 6. düğüm
  • Yeşil (vadeli)
    • Düğüm 7
    • Düğüm 8

(Madde işaretleri girintilerdir.)
Bunu Drupal 7 ve görünüm 3 ile yapmanın bir yolu var mı? Değilse, bunu yapmanın başka bir yolu var mı?


Netleştirmek için - belki de sorunuzu yanlış anladım - böyle bir yapıyı tek sayfada görüntülemek ister misiniz?
Maciej Zgadzaj 21:11

Evet, sadece 1 sayfada
iStryker

Yanıtlar:


15

Refino sayesinde aşağıdaki modülleri kullanarak hoş bir çözüm buldum:

Aşağıda açıklamaları bulabilirsiniz:

  1. İlk önce yeni bir Taksonomi yaratın (hadi buna "Klasör" diyelim)
  2. Ardından, "Klasör" taksonomisine bir terim referans alanı olan yeni bir içerik türü oluşturun ("Öğe" diyelim)
  3. Yeni bir "İçerik" Görünümü oluştur ("Öğe Görünümü" olarak adlandıralım)
  4. Alan Gösterimini Seçin
  5. Terim referans alanınıza bir İçerik Filtresi ekleyin
  6. Yeni bir "Taksonomi" Görünümü oluşturun ("Klasör Ağacı" olarak adlandıralım)
  7. 2 alan ekleyin (terim adı ve terim kimliği). İkinci alan ekrandan hariç tutulabilir
  8. İlişkide: "üst terim" ekleyin
  9. Üçüncü bir alan (terim kimliği) ekleyin ve onu üst ilişkinize atayın. Bu alan ekrandan hariç tutulabilir
  10. "Ağaç (Bitişik model)" biçimini seçin ve şu parametreleri seçin: Sıralı liste + Ana alan (ilk sıranız), Ana alan (ana ilişkiye atanan sıranız). Şimdi tüm terimlerinizin iç içe geçtiği güzel bir ağaç olmalı
  11. "Global: View" dördüncü bir alan ekleyin (bu, Views Field View ile birlikte gelir) ve "Element view" ı seçin, Bağımsız Değişkenler metin alanında Master add [tid] yazın

Umarım bu yardım

Şerefe

İStryker tarafından düzenlenir : Elimde bu var. Değiştirdiğim tek şey, Öğe Görünümü'nü tablo görünümü yapmak ve varsayılan (satır ve şerit) sınıflarını kaldırmaktı.

İStryker tarafından nihai ürünün görüntüsü


Bu yorumdan büyük bir yardım. Sadece küçük bir not: VT ayarlarında açılan menülerde her ikisi de "Terim Kimliği" alanlarının ayırt edilemeyeceğinden alanları yeniden adlandırmak isteyebilirsiniz (Yönetici başlıkları).
Artur

Bu cevap bana% 90'ını getirdi. Her alandaki varsayılan sınıfları kaldırmam gerekiyordu; 'Sınıf Görünümü' görünümünde tablo sınıflarını kaldırın; Tema biraz
iStryker

İçerik görünümünde çiftleri azaltmak için bir adım ekledim. Ayrıca, Global: View'daki "Bağımsız Değişkenler" alanı şimdi "İçeriksel filtreler" olarak etiketlendi ve kullanılacak belirteç "[! Tid]".
makineler

Bunu yapmak mümkün değil mi, Taksonomi yerine Organik Gruplarla mı?
IamOnStage

14

Drupal 7.8 ve Views 3 + Views alanında üç görünüm oluşturdum, View Görünümü kullanarak bir görünümü diğerine yerleştirdim ve böyle bir sonuç elde ettim (ekli). görüntü tanımını buraya girin

Adım adım nasıl yapılır:

  1. Kelime "Renkler" oluşturun ve etiketleri ile doldurun.

  2. Taksonomi düğümleri için yeni bir görünüm oluşturun Renkler - Ben buna "Renk Düğümleri" diyorum.

2.1 Tablo Biçimlendir, Ayarlar: Gruplandırma alanı: Taksonomi terimi: Ad

2.2 Gelişmiş İçeriksel filtreler: Taksonomi terimi: Ana terim

2.3 İleri İlişkiler: Taksonomi terimi: Renk kullanan içerik

2.4 Küme Alanları: Taksonomi terimi: Terim Kimliği, Taksonomi terimi: Adı, (field_color) İçerik: Başlık

2.5 Filtre kriterleri: Taksonomi terimi: Kelime (= Renkler)

2.6 İsterseniz, Terim Kimliği, Taksonomi terimi için "Ekrandan hariç tut" seçeneğini de belirleyebilirsiniz.

2.7 Yolu Ayarla: / / of-of-colors /%

2.8 Sonuç yok davranışını ayarlayın: Global: Alanı göster (daha sonra geri döneceğiz) 2.9 kaydet

3. Taksonomi düğümlerinin yeni bir görüntüsünü oluşturun Renkler - Ben buna "Renklerin Düğümleri 2" diyorum.

3.1 Tabloyu Biçimlendir, Ayarlar: Gruplama alanı: yok

3.2 Gelişmiş İçeriksel filtreler: Taksonomi terimi: Terim ID

3.3 İleri İlişkiler: Taksonomi terimi: Renk kullanan içerik

3.4 Alanların Ayarlanması: Taksonomi terimi: Terim Kimliği, Taksonomi terimi: İsim, (field_color) İçerik: Başlık

3.5 Filtre kriterleri: Taksonomi terimi: Kelime (= Renkler)

3.6 İsterseniz, Terim Kimliği, Taksonomi terimi için "Ekrandan hariç tut" seçeneğini de belirleyebilirsiniz.

3.7 Küme Yolu: / / of-of-colors-2 /%

3.8 Sonuç yok davranışını ayarlayın: Genel: yok

3.9 Kaydet

Geri dön ve tekrar "Nodes of Colors" düzenle

4.1 Sonuç yok davranışını ayarla: Genel: Alanı görüntüle

4.2 Eklemek için Görünümü Ayarla: Görünüm: nodes_of_colors2 Ekran: sayfa

4.3 set İçeriksel filtreleri devralma

4.4 tasarruf

5 Tekrar Görünümlere geri dönün (Tür Terimi)

5.1 Taksonomi düğümlerinin yeni bir görüntüsünü oluşturun Renkler - Buna "Renkler Ağacı" diyorum.

5.1 Tabloyu Biçimlendir, Ayarlar: Gruplama alanı: yok

5.2 Gelişmiş İçeriksel filtreler: yok

5.3 İleri İlişkiler: Taksonomi terimi: Ana dönem

5.4 Alanların Ayarlanması: Taksonomi terimi: Terim Kimliği, Taksonomi terimi: Terim Kimliği, Taksonomi terimi: Adı, Görünümü: Görünümü Dahil Et (Görünümü Dahil Et)

5.5 Filtre kriterleri (1): Taksonomi terimi: Kelime (= Renkler)

5.6 Filtre kriterleri (2): (Ana) Taksonomi terimi: Dönem

5.7 İsterseniz, Terim Kimliği ve Dahil Etme Görünümü etiketi için "Ekrandan hariç tut" seçeneğini de belirleyebilirsiniz.

5.8 Yol Ayarla: / renkler-ağaç

5.9 Sonuç yok davranışını ayarlayın: yok

5.10 tasarruf

... ve sonunda bu olmalı.


"5.4 alanları ayarla ... görünüm: görünümü ekle" ifadesini biraz daha netleştirebilir misiniz? Hiçbir yerde bunun için bir seçenek görmüyorum. Teşekkür
uwe

Üzgünüm yazmadım kullanılmış kullandım Views 7.x-3.0-rc1 + Views Field 7.x-1.0-rc1
Refineo

tamam teşekkürler. Ben de onların yayın kuyruğunda bazı talimatları takip drupal.org/node/1171604
uwe

Vay canına, bu cevap 7 gün içinde çok büyük bir artığa kavuştu. Bunu kimse test etti mi, yoksa @Refineo en ayrıntılı cevabı verdiği için siz / onlar sadece yükseldi mi?
iStryker

Bu adımı tekrar denedim ama işe yaramadı. Sizden bu soruna son veren herkesten nefret ediyorum test etmeden geçen hafta
iStryker 11:12 '


3

URL’den onay almak istiyorsanız, aşağıdaki kodu kullanın.

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

}

Veya aşağıdaki kodu kullanın.

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

2

Elbette var:

  1. Hiyerarşik kelime bilginizi ayarlayın,
  2. Seçilen herhangi bir içerik türüne ekleyin,
  3. İçerik filtresi ile o içerik türünden düğümleri listeleyen bir görünüm oluşturun :

    • "İçerik: Taksonomi kimliğine sahiptir" - yalnızca belirli bir terime atanan düğümleri listelemek istiyorsanız,
    • veya "İçerik: Taksonomi kimliği var (derinliği olan)" - belirli bir terime atanan düğümleri ve alt terimlerini listelemek istiyorsanız.

      Bu durumda, filtre yapılandırmasında derinliği ayarlamanız gerekir - bu filtrenin kaç seviyenin altında (veya üstünde) çalışmasını istiyorsunuz.

Ardından, görünümün URL'sini varsayarak olduğunu http://mysite.com/myview sen gidersen ve 'Kırmızı' tid = 1, http://mysite.com/myview/1 size iki birine atanan tüm düğümleri listeler 'kırmızı', 'karanlık' ve / veya 'ışık' terimleridir.


Belirli bir terime cevap aramıyorum. Kelime hazinesi için bir görünüm arıyorum
iStryker 11:12

Ve tam olarak bunu tarif ettim.
Maciej Zgadzaj 14:12

2

Taksonomi menü modülünü kullanabilirsiniz . İşte bunun hakkında bir alıntı (modülün proje sayfasından):

Taksonomi kelime hazinelerinizi kolayca menülere dönüştürür!

Özellikler:

  • Kelime başına Özel Menü
  • Varsayılan taksonomi terim yolunu veya özel yolları kullanır
  • Görünümlerle Bütünleş
  • Pathauto ile entegrasyon: URL / yol takma adını kullanın
  • Diğer menü modülleriyle etkileşime girmez

Drupal SE'ye Hoşgeldiniz! taxonomy_menu harika bir proje ve bunu güzel bir şekilde yapabilir. OP olsa Görünümler'de yapmak istiyor.
AyeshK

0

Aynı şeyi başarmaya çalışıyorum ama D7'de pek bir şey bulamadım. Taksonomi Blokları modülü bunu bir blok halinde yapar - görünümlerde değildir.


0

Bu sorunu çözmenin başka bir yolunu bulduğuma inanıyorum ve bu çözümlerin geri kalanından daha basit olduğunu düşünüyorum. Herhangi bir ekstra modül içermez ve sadece bir manzaraya ihtiyacınız vardır.

Bir yarattık varsayarsak iki seviyeli aşağıdakileri yapın hiyerarşik kelime (Renkler) ve bu vocab bir terim referansla bir içerik türü:

  1. "Taksonomi kelime: Makine adı (= Renkler)" ile yeni bir görünüm oluşturun ve filtreleyin
  2. İlişki ekle: (1) Taxonomy term: Content using Colorve (2)Taxonomy term: Parent term
  3. Görünüm alanları ekleyin: (1) Title(seçmek field_color"İlişkileri" ve bu ilişkiyi gerektirir , (2)) Taxonomy term name(ilişki kullanabilir ve ekrana gelen dışlamayın) (3) Taxonomy term name(evet, yine bu kez seçim Parentilişki için ve dışlamak ekrandan).
  4. Şimdi Biçimlendirme Ayarları: (1) gruplama 1:, (Parent) Taxonomy term: Name(2) üzerine tıklayarak gruplayın.Taxonomy term: Name

Bitti. İkiden fazla seviyeniz varsa, ilişkinin ilişkisi olarak Ebeveyn'i kullanarak başka bir Ebeveyn İlişkisi ekleyin.

DÜZENLEME: İlişkiye gerek duymuyorsanız, dupes olur. Düğümler tarafından başvurulan alt terimler varsa, ebeveynler iki kez listelenir. Bu yüzden, cevabı, referans göstermeyeceği düğümleri olmayan en üst seviye terimlerle biraz sınırlar. Ayrıca, sıralama muhtemelen önemli olduğu için, üst seviye bir terimi referans alan herhangi bir içeriğe sahip olmak, ekran gereksinimlerine bağlı olarak sizin için sorunlara neden olabilir.


İlişki eklenene kadar "Taksonomi kelime bilgisi: Makine adı (= Renkler)" filtresi yok. Sanırım ilk adım ikinci olacak. Ayrıca "İlişki" de field_color seçerken alanın nasıl eklendiğini anlayamadım.
Dimetry
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.