Das Örtchen RSS-Feed
Suchen
Blog
Ähnliche Beiträge
Neueste Kommentare
Neueste Einträge
Populäre Einträge
Tagwolke
addon auswertung barcamp blog bug cms cms made simple datenkrake drupal feed film firefox frickeln friday gewinnspiel hardware how-to individualisierung meinung mmo modul nas php problem rss se7en server sicherheit sicherung software spiel teil theme trailer unterhaltung update windows windows 7 wordpress wow
Monatsarchiv

Drupal: Taxonomy-Theming-Problem nach Modul-Updates

Anfang dieser Woche hatte ich endlich etwas Zeit, um die längst überfälligen Sicherheits-Updates (Drupal-Core und Module) durchzuführen. Im Zuge dessen habe ich dann gleich alles auf einen aktuellen Stand gebracht, was die Aktualisierung von 18 Modulen und Drupal selbst bedeutete. Zunächst schien auch alles problemlos geklappt zu haben, doch dann musste ich ein Problem mit dem Theming meiner Taxonomy-Seiten feststellen.

Das Problem

Ich versuche auf allen Seiten dieses Blogs die Beiträge und Kommentare in abgerundeten Boxen mit wechselnden Hintergrundfarben darzustellen. Dies war nach den Updates auf den Taxonomy-Übersichtsseiten (beispielswiese für das Tag Drupal) plötzlich nicht mehr der Fall.

Leider hatte ich keine Ahnung mehr, wie ich das betreffende Theming umgesetzt habe, weswegen ich zunächst einmal meinen Code analysierte. Die Überprüfung ergab schnell, daß im HTML-Quelltext kein Element mehr vorhanden war, welches mittels CSS zu einer Box formatierbar gewesen wäre. Auf der Suche nach dem hierfür benötigten Hook, befragte ich mal wieder Big G und wurde bei wepopius.com mit nachfolgenden Angaben fündig:

  1. mytheme_taxonomy_term_page()
  2. phptemplate_taxonomy_term_page()
  3. sites/all/themes/custom/mytheme/taxonomy_term_page.tpl.php
  4. theme_taxonomy_term_page()

Nach einem Blick in meine template.php wurde schnell klar, daß ich mich damals für Variante 1 entschieden habe.

function mytheme_taxonomy_term_page($tids, $result) {
    $content = mytheme_taxonomy_render_nodes($result);
    $output = '<div class="node-results">' . $content . '</div>';
    return $output;
}

function mytheme_taxonomy_render_nodes($result) {
    $output = '';
   
    while ($node = db_fetch_object($result)) {
        $tax_zebra = ($tax_zebra == 'odd') ? 'even' : 'odd';
        $content = node_view(node_load($node->nid), 1); 
        $output .= '<div class="' . $tax_zebra . '">' . $content . '</div>';
        $has_rows = TRUE;
    }
    
    if ($has_rows) {
        $output .= theme('pager', array(), variable_get('default_nodes_main', 10), 0);
    } else {
        $output .= '<p>' . t('There are currently no posts in this category.') . '</p>';
    }
    
    return $output;
}

Hierdurch würde die gesamte Ausgabe aller Nodes mit einem div-Tag umschlossen und jeder einzelne Node mit einem weiteren div-Tag. Jedoch tauchte keines der beiden Tags mehr in meinem aktuellen HTML-Quelltext auf.

Die Lösung

Die weitere Recherche mit Big G und dem korrekten Namen des verwendeten Hooks ergab dann schnell eine Lösung für das Taxonomy-Theming-Problem.

Im Code des aktuellen i18n-Updates 6.x-1.7 wird somit nicht mehr der Theming-Hook taxonomy_term_page überschrieben, sondern stattdessen der neue Hook i18ntaxonomy_term_page definiert.

Der alte Hook ist in einem i18n-Umfeld nun komplett ohne Funktion!

Fazit

Eine solche Änderung hätte ich niemals in einem normalen Update erwartet und wäre auch nie auf die Idee gekommen, daß i18n Auswirkungen auf das Theming hat.

Korrekterweise muss ich jedoch zugeben, daß die Änderung durchaus im Changelog der Version 1.6 erwähnt wurde, welche ich jedoch dummerweise komplett übersprungen habe.

Hallo! Bist du neu hier? Dann abonniere doch den RSS-Feed dieses nicht mehr ganz so stillen Örtchens, um über meine geistigen Ergüsse auf dem Laufenden zu bleiben. Alternativ besteht auch die Möglichkeit, sich von FeedBurner per E-Mail über meine Ausscheidungen benachrichtigen zu lassen.

Kommentar hinzufügen

(If you're a human, don't change the following field)
Your first name.
Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Der Inhalt dieses Feldes wird öffentlich zugänglich angezeigt, aber als nofollow markiert.
Hinweis

Kommentare beleben den Blog! Ich freue mich über jeden Kommentar. Du kannst hier offen Deine Meinung zum Artikel sagen, aber bitte beachte die Netiquette und vermeide es andere zu beleidigen.

Bitte unterlasst es die Kommentare zu SEO-Zwecken zu missbrauchen. Kommentare mit Links, die nicht zu Blogs führen (oder zu Blogs mit Grauzonen-Themen) und/oder Keywords als Namen verwenden und/oder Links im Kommentarbereich enthalten, sind nicht erwünscht!

Möchtest Du mir einen Blog-Artikel schmackhaft machen, dann schreib die URL ohne Link-Tag und ohne http(s):// in den Kommentarbereich und ich werde diesen bei Gefallen verlinken.

Die ersten vier Kommentare (mit den gleichen Daten bei Name, E-Mail und Blog) landen vor der Veröffentlichung in meiner Freigabe-Warteschlange und ich behalte mir das Recht vor, Kommentare entsprechend dieser Regeln anzupassen oder zu löschen!

t3n Magazin - Jetzt im Abo bestellen