VIEWS 2. Tabellenansicht. An Stelle der E-Mail eine mailto Grafik anzeigen
am 10.03.2009 - 16:47 Uhr in
Hallo,
ich beschäftige mich seit einigen Tagen mit CCK und VIEWS 2. Ich bin dabei eine Intranetseite hochzuziehen. Hier sollen alle Mitglieder bestimmter Rollen als Tabellenansicht gezeigt werden. Neben den Feldern Profil:Nachname, Profil:Vorname auch User:E-Mail Adresse.
Da die E-Mail Adressen unterschiedlich lang sind und auch optisch nicht so toll aussehen, würde ich gerne an Stelle des mailto: Links eine Grafik anzeigen lassen.
Also an Stelle von
<a href="mailto:name@test.de"></a>
<a href="mailto:name@test.de"><img src="http://www.meineseite.de/sites/default/files/images/mail.png" width="16" height="16" alt="Per E-Mail kontaktieren"></a>
Ist das möglich? Wenn ja welche Dateien muss ich wie editieren?
Gruß
Piet
- Anmelden oder Registrieren um Kommentare zu schreiben
views template
am 11.03.2009 - 16:03 Uhr
Moin!
Wenn Du den View bearbeitest, siehst Du unter Anderem "Theme Information". Wenn Du da draufklickst, bekommst Du alle möglichen Vorschläge von Template-Dateien, die Du für bestimmte Bereiche des Views verwenden kannst (z.B. "views-views--VIEWNAME.tpl.php").
Wenn Du Dir jetzt also speziell für Dein Email-Feld so ein Template anlegst (die Basistemplates liegen in /sites/all/modules/views/theme und können von dort in Dein Themeverzeichnis kopiert werden), kannst Du dort ganz einfach anstelle des gewöhnlichen Links eine Grafik anzeigen lassen.
In den Basistemplates ist auch erklärt, welche Variablen zur Verfügung stehen.
Den Inhalt dieser Variablen kannst Du Dir dann mit
<?php
drupal_set_message('<pre>'. print_r($variablenname, 1) .'</pre>');
?>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
views-view-field-mail.tpl.php
am 13.03.2009 - 11:49 Uhr
Hallo Stefan,
erstmal vielen Dank für Deine ausführliche Antwort.
Nach Deinen Angaben habe ich die Datei views-view-field.tpl.php kopiert und in views-view-field-mail.tpl.php umbenannt. Die zur Verfügung stehenden Variablen sind
* - $view: The view object
* - $field: The field handler object that can process the input
* - $row: The raw SQL result that can be used
* - $output: The processed output that will normally be used.
Folgender php Code ist in dieser Datei aufgeführt
<?php print $output; ?>
Ich bin in PHP leider nicht so fit, bin aber lernfähig :-)
Wie kann ich jetzt ganz einfach anstelle des gewöhnlichen Links einen Grafiklink anzeigen lassen.
Danke für Deine Hilfe
**********************************************
Skating away on the thin ice of a new day ...
Skating away on the thin ice of a new day ...
l()
am 13.03.2009 - 11:56 Uhr
Wie kann ich jetzt ganz einfach anstelle des gewöhnlichen Links einen Grafiklink anzeigen lassen.
Lass Dir mal den Inhalt der Variablen
$field
ausgeben. Mit diesen Informationen und der Funktion l() kannst Du dann den entsprechenden Link erzeugen.<?php
print l('', $field->mailto, array('attributes' => array('class' => 'mailto')));
?>
Und dann im CSS entsprechende Anweisungen geben, dass ein Link mit dieser Klasse das Bild bekommt.
$field->mailto
habe ich jetzt nur geraten, muss also nicht richtig sein.Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Ich muss mich mal in die
am 14.03.2009 - 20:11 Uhr
Ich muss mich mal in die Frage reinhängen ;)
Ich habe nun ebenfalls eine neue *.tpl Datei erzeugt. Muss ich diese nun in den Hauptordner meines Themes packen oder aber in den views/theme Ordner?
Edit: Es scheint so, als ob man es in seinen eigenen Theme-Ordner packen muss!
Und wie/wo lasse ich mir dann den Inhalt des Feldes (hier im Bsp $field) anzeigen? Und wieso bringt er mir sofort eine Fehlermeldung :/ (von wegen Memory Größe reicht nicht aus; sicherlich weil durch die Datei ein Fehler verursacht wird)
http//www.media-planet.org
Handbuch
am 15.03.2009 - 12:21 Uhr
Nur mal schnell ein paar Seiten, die Du lesen solltest:
http://www.drupalcenter.de/handbuch/4217
http://drupal.org/node/173880
Den Inhalt des Feldes lässt Du Dir natürlich innerhalb der von Dir im Template festgelegten HTML-Struktur ausgeben. Genau dafür ist nämlich so ein Template gedacht :-)
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Rewrite Field output
am 24.03.2009 - 07:57 Uhr
Ich habe erstmal die internen Einstellmöglichkeiten von VIEWS ausprobiert und hier gibt es tatsächlich eine einfache Möglichkeit den E-Mail Text gegen eine Graphik einzutauschen.
Einfach bei den Einstellungen des Feldes " Rewrite the output of this field" ankreuzen und den Graphiklink einfügen
<a href="mailto:[value]"><img src="http://www.meineseite.de/sites/default/files/images/mail.png" </a>
Deinen Vorschlag möchte ich aber dennoch mal noch ausprobieren
Skating away on the thin ice of a new day ...
Skating away on the thin ice of a new day ...