2012-04-15 14 views
0

Für jede Knotenvorschau möchte ich kleine Flaggensymbole oben haben, die verfügbare Übersetzungen darstellen. Ich habe den Sprachumschaltercode gesehen, aber es gibt immer alle Sprachen aus. Das ist ärgerlich, weil die Leute auf ihre Sprache klicken und dann feststellen, dass die Seite sowieso nur auf Englisch verfügbar ist (ich habe eine Seite mit vielen Artikeln in einer Vielzahl von Sprachen). Ich habe das aber schon gesehen. Ich bin relativ neu in der Programmierung von Drupal. Kann mir jemand einen Zeiger geben?Drupal 6: Zeige Flags für Knotenübersetzungen

Danke!

Antwort

0

Ich habe es selbst herausgefunden, und notiere es hier, weil ich weiß, dass ich nicht der einzige mit diesem Problem bin.

Die Vorlage Ich arbeite aus scaccarium genannt wird, also ging ich zu /themes/scaccarium/template.php und hinzugefügt, um die folgende Funktion:

function scaccarium_preprocess_node(&$vars) { 
    $node = $vars['node']; 
    $translationlinks = array(); 
    // Move translation links into separate variable 
    foreach ($node->links as $key => $value) { 
    if ($value['attributes']['class'] == 'translation-link') { 
     $translationlinks[$key] = $value; 
     // unset($vars['node']->links[$key]); 
    } 
    } 
    $vars['translationlinks'] = theme('links', $translationlinks, array('class' => 'links translationlinks inline')); 
} 

Wenn Sie Ihre Vorlage noch etwas anderes genannt wird, Sie sollten natürlich in einen anderen Ordner wechseln und auch das erste Wort des Funktionsnamens ändern. Und wenn Ihr Thema mit einer vorhandenen Funktion _preprocess_node kommt, ändern Sie es sorgfältig.

Dann ging ich zu meiner Vorlage des node.tpl.php und ich fügte

<?php if ($translationlinks) { 
      print $translationlinks; 
     } ?> 

neben dem Titel.

Dann musste ich den Drupal-Cache (obwohl Caching wurde deaktiviert!) In Performance> Caching löschen, um dies zum Funktionieren zu bringen.

Fertig!

... Um Sprachlinks an der Spitze der vollen Knoten hinzuzufügen, musste ich ein weiteres "print $ translationlinks" an einer anderen Stelle in node.tpl.php hinzufügen, da das h3 Titel Ding nur für Knoten Vorschau. Um die redundanten Sprachlinks am unteren Ende der vollständigen Knoten zu entfernen, habe ich dann die nicht gesetzte Zeile aus template.php auskommentiert. Ich habe festgestellt, dass sie keine Auswirkungen hat, obwohl eine andere Website sie empfohlen hat. dabei wurde mit CSS für diesen Also, was ich am Ende auf, das Hinzufügen des folgenden meine Vorlage CSS-Datei:

.node-links .translation-link { 
    display: none; 
} 

Ich hoffe, dass meine Erfahrung jemanden anderes mit dem gleichen Problem helfen.

Verwandte Themen