Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Term-Liste mit Einrückungen (entsprechend der Hierarchie)?

Eingetragen von mdatab (47)
am 05.12.2008 - 11:58 Uhr in
  • Views
  • Drupal 6.x

Hallo,

ich habe ein Vokabular mit einigen Begriffen:
A
+ AA
B
C
+ CC

Wenn ich nun einen View erstelle, der mir zu den Taxonomie-Begriffen eine Zusammenfassung, also eine Liste der Terms mit Verlinkung auf die entsprechenden Nodes, anzeigt, so sieht ist diese Liste flach:

  • A
  • AA
  • B
  • C
  • CC

Kann ich irgendwie erreichen, dass mir der View diese Hierarchie widerspiegelt? Sowas hätte ich gerne von dem View:

  • A
    • AA
  • B
  • C
    • CC

Danke und Gruß
mdatab

‹ ALT und TITLE werden bei Imagefield nicht übergeben. CCK-Felder in Revisions integrieren ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Möglichkeit ohne Views

Eingetragen von rener (33)
am 05.12.2008 - 14:45 Uhr

Ich nutze die folgende php Zeilen, um ein solches Ergebnis ohne Views zu erhalten.
Einfach die ID des Vokabulars austauschen und ziemlich weit unten einstellen, ob der Pfad taxonomy/term/xxx oder forum/xxx ausgeben soll.
Zusätzlich gibt diese Funktion die Anzahl der Nodes pro Term aus.

<?php

// Die ID des Taxonomie Vokabulars für gewünschten den Hierarchie Baum
$vid = 6;

function
fill_children_ids_recursive(&$term_rebuilt, &$children_ids) {

    if (
$term_rebuilt["children_count"]>0) {
        for (
$i=0;$i<$term_rebuilt["children_count"];$i++) {
            if (!
in_array($term_rebuilt["children"][$i]["id"], $children_ids)) {
               
$children_ids[]=$term_rebuilt["children"][$i]["id"];
            }
           
fill_children_ids_recursive($term_rebuilt["children"][$i], $children_ids);
        }
    }
}

$tree = taxonomy_get_tree($vid);
$terms = array();

foreach (
$tree as &$term) {
   
$terms[] = array(
               
"id"=>$term->tid,
               
"name"=>$term->name,
               
"parents"=>$term->parents,
               
"depth"=>$term->depth,
               
"children"=>array(),
               
"children_count"=>0,
               
"node_count"=>0,
               
"global_node_count"=>0
   
);
}
foreach (
$terms as $key => &$term_rebuilt) {
    for (
$x=0;$x<sizeof($term_rebuilt["parents"]);$x++) {
       
$parent_tid = $term_rebuilt["parents"][$x];

       
$idx=0;
       
$not_found = true;
        while(
$not_found&&($idx<sizeof($terms))) {
            if (
$terms[$idx]["id"]==$parent_tid) {
               
$terms[$idx]["children"][]=&$term_rebuilt;
               
$terms[$idx]["children_count"]++;
               
$not_found = false;
            }
           
$idx++;
        }
    }

}

print
'<ul class=repos>';

$depth = 0;
foreach(
$terms as $index => &$term_rebuilt) {
   
$children_ids = array();
   
fill_children_ids_recursive($term_rebuilt, $children_ids);

   
$sql_count = "SELECT COUNT(nid) FROM {term_node} WHERE tid = '".$term_rebuilt["id"]."' ";  
    if (
sizeof($children_ids)>0) {
       
//print_r($children_ids);
       
$sql_count .= " OR tid = '";
       
$sql_count .= join("' OR tid = '",$children_ids);
       
$sql_count .= "'";
    }
   
$term_rebuilt["global_node_count"] = db_result(db_query($sql_count));

    if (
$term_rebuilt["depth"] > $depth) {
        print
'<ul>';
       
$depth = $term_rebuilt["depth"];
    }
    if (
$term_rebuilt["depth"] < $depth) {
  
        for (
$i=($depth - $term_rebuilt["depth"]);$i>=1;$i--) {
        print
'</ul></li>';
        }
       
$depth = $term_rebuilt["depth"];
    }
// Wenn Taxonomy Baum ausgegeben werden soll
//    print '<li>' . l($term_rebuilt["name"], 'taxonomy/term/' .$term_rebuilt["id"] .'/all') . " (".$term_rebuilt["global_node_count"].")".'</li>';
// Wenn der Forum Baum ausgegeben werden soll
   
print '<li>' . l($term_rebuilt["name"], 'forum/' .$term_rebuilt["id"]) . " (".$term_rebuilt["global_node_count"].")".'</li>';

}

print
'</ul>';
?>

cu
rener
------------
Wir sind lediglich hier, um Erfahrungen zu sammeln.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 3 Tagen 8 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 1 Stunde
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 17 Stunden
  • melde mich mal wieder, da ich
    vor 9 Wochen 4 Tagen
  • Hey danke
    vor 9 Wochen 5 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 1 Tag
  • In der entsprechenden View
    vor 11 Wochen 1 Tag

Statistik

Beiträge im Forum: 250237
Registrierte User: 20466

Neue User:

  • StevenEness
  • ocvk2810
  • marouane.blel

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 14 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association