Werte aus einem View mit Grafiken ersetzen
am 27.09.2010 - 21:55 Uhr in
hallo, schon wieder ich mit einem neuen Problem....
ein View liefert mir sämtliche Zahl- und String-Werte aus einer Datenbank. Diese werden in einer Tabelle dargestellt.
Ich würde gerne einige von diesen Werten mit passenden Grafiken dynamisch ersetzen.
z.B bei ein nummerisches Feld, falls der Wert 1-10 hat mit einem grünem Punkt ersetzen, wenn 11-15 gelben und >15 mit rotem Punkt ersetzen..
analog dazu, bei einem String Feld, wenn Ausgabe "A" dann Minigrafik "a.jpg", wenn Ausgabe "B", dann Minigrafik "b.jpg" .... laden
Also, ich müsste irgendwie eine IF THEN ELSE Abfrage starten und DB-Ausgaben mit entsprechenden Grafiken austauschen.
Frage ist, wo könnte ich diese Frage einbauen? Im View finde ich dafür keine Möglichkeit...
Gibt es vielleicht ein Modul das schon so etwas erledigen könnte?
- Anmelden oder Registrieren um Kommentare zu schreiben

Na hoffentlich sind die Werte
am 27.09.2010 - 22:28 Uhr
Na hoffentlich sind die Werte nicht unendlich :-)
Eine Vorgehensweise wäre bei Feldausgaben mittels "rewrite the output ..." den Wert mit HTML als Bild ausgeben zu lassen.
z.B.:
<img src="/sites/default/files/images/[nummer-wert].gif">nummer-wert wäre das Ersetzungsmuster und ist natürlich von deiner Feldbezeichnung abhängig.
Du musst dafür dann nur unter /sites/default/files/images ein "Grünes Punkt Bild" unter 1.gif, 2.gif, 3.gif - 10.gif anbieten. Analog ein "Gelber Punkt Bild unter 11.gif, 12.gif ... 15.gif usw.
hallo, hm, ist ein Ansatz,
am 27.09.2010 - 22:50 Uhr
hallo,
hm, ist ein Ansatz, aber nur bei festen Begrifflichkeiten. Ich dies schon mit eine IF-THEN Anfrage überprüfen und ggf. Grafiken dynamisch zuweisen.
Ich überlege mir gerade dafür ein eigenes Modul zu bauen.
Das Problem ist, ich weiß es nicht, mit welcher Hook() kann ich dann Ergebnisse aus meinem Modul wieder auf die Seite liefern. Hast Du mir ein Tipp dafür?
Das Ergebnis sollte als ANHANG zu jedem Node aufgehängt werden (natürlich spezifisch nach der NID)
Zusätzliche Klassen via Theming
am 28.09.2010 - 05:38 Uhr
Wenn Du das mit Theming, also in den Views-tpl.php-Dateien löst, kannst Du auch If-Abfragen mit einbauen, z.B. um Wertebereiche zusammenzufassen.
Definiere Dir eigene Klassen, in die die Outputwerte des entsprechenden Feldes eingehen. Den Rest kannst Du mit CSS regeln, dann ist das Bild halt nicht direkt eingebunden, sondern ein Hintergrundbild, was mir in diesem Fall sowieso eleganter scheint.
Bei Mustardseedmedia gibt es dazu einen schönen Screencast.
hallo, die Anleitung vom
am 28.09.2010 - 15:44 Uhr
hallo,
die Anleitung vom "Bob" ist richtig gut.
Definiere Dir eigene Klassen, in die die Outputwerte des entsprechenden Feldes eingehen.
Wie meinst Du das genau? Wie kann ich mir in eine tmpl-Datei eigene Klassen definieren?
Analog zu Bob's Beispiel mit
am 28.09.2010 - 18:42 Uhr
Analog zu Bob's Beispiel mit den Monaten:
<div class="<?php print $fields['field_myfield_value'] -> content ?>"><?php print $fields['field_myfield_value'] -> content ?></div>(ungetestet)
Wenn Dein Wert 10 ist, erhältst Du dadurch eine
class="10".Um Werte zusammenzufassen, z.B. zu
class="value_1-10", kannst Du beim ersten Ausdruck Deine if-Abfrage einbauen.Das CSS bekommt dann u.a.
.value_1-10 {padding-left: 30px; background: #fff url(img/greendot.jpg) no-repeat left center;}ah, Du meinst Klasse als
am 29.09.2010 - 21:14 Uhr
ah, Du meinst Klasse als CSS-Selektor....
ich habe gedacht, ich sollte eine PHP-Klasse in die tmpl.php-Datei einbauen.
Danke für die Mühe,
ich werde es auch so machen.