[gelöst] Felder von Views in ein Fieldset, bzw. DIV-Container einbetten
Eingetragen von idle (202)
am 30.08.2010 - 15:40 Uhr in
am 30.08.2010 - 15:40 Uhr in
Wie kann ich in einem View mehrere Felder in ein Fieldset, bzw. einen Div-Container einbetten?
Views gibt mir:
<div class="1">Inhalt-Feld-1</div>
<div class="2">Inhalt-Feld-2</div>
<div class="3">Inhalt-Feld-3</div>
<div class="4">Inhalt-Feld-4</div>
Ich möchte:
<div class="1">Inhalt-Feld-1</div>
<div class="mein-div">
<div class="2">Inhalt-Feld-2</div>
<div class="3">Inhalt-Feld-3</div>
</div>
<div class="4">Inhalt-Feld-4</div>
- Anmelden oder Registrieren um Kommentare zu schreiben
Zwei Möglichkeiten
am 30.08.2010 - 16:57 Uhr
Mir fallen dazu zwei Möglichkeiten ein.
1. Du baust dir eine eigene views-view--meine-view.tpl.php. hier kannst du deine Felder einzelnd ausgeben, musst allerdings die genauen Feldnamen wissen. Ist Umständlich und setzt eine menge Wissen voraus.
2. Du nutzt das Views-Field Global-Custom-Text. Dies setzt du zwei mal zwischen deine regulären Felder. Einmal mit dem Inhalt
<div class="mein-div">
und einmal</div>
. Diese Variante ist wohl die bessere für dich.Gruß Carsten | |
Obwohl Variante 1 aufwendiger
am 30.08.2010 - 17:09 Uhr
Obwohl Variante 1 aufwendiger ist, würde ich mich gern dafür entscheiden, denn die Ausgabe der Felder soll noch mit ein paar Bedingungen versehen werden. Ich habe auch schon eine eigene view.tpl.php angelegt. Allerdings stehe ich auf dem Schlauch, weil darin ein foreach-Loop ist, und ich nicht weiß, wie ich meine Felder darin zusammenfassen kann.
Kann ich statt eines foreach-Loops nicht auch die Felder einzeln ansprechen? Quasi:
<div id="container">
print views-feld["Name-des-ersten-Feldes"];
<hr>
print views-feld["Name-des-zweiten-Feldes"];
print views-feld["Name-des-dritten-Feldes"];
</div>
PS: meine Vorlage ist
views-view-fields.tpl.php
Problem gelöst? Dann [gelöst] im Titel des Beitrags ergänzen.
Hmm..
am 30.08.2010 - 17:46 Uhr
Sind diese Bedingungen unbedingt notwendig? Ich Frage deshalb, da diese View dadurch sehr schwer administrierbar/skalierbar wird, da jedesmal, wenn du die View veränderst auch der Code geändert werden muss.
Ansonsten ist der oben genannte Ansatz richtig. Ich glaub da ist die views-view-unformatted.tpl.php die richtige. Jetzt muss ich mir nur noch über die Syntax im klaren werden. Was ich da mal gemacht hab hab ich zu Hause liegen. Kann ich dir leider erst morgen schreiben.
Gruß Carsten | |
Nächster Tag
am 31.08.2010 - 09:39 Uhr
Also:
Deine Bedingungen, also ob ein Feld angezeigt wird oder nicht, kannst du im Template views-view-field-mein-feld.tpl.php(ohne 's') schreiben. Die Ausgabe des Feldes geschied mit:
<?php print $field_mein_feld[$schlüssel]['view'] ?>
Um mehrere Felder in ein Div-Kontainer zu stecken, solltest du evtl. auf Variante 2. zurückgreifen.
Evtl. kannst du amber in der views-view-fields-meine-felder.tpl.php (mit 's') einzelne Felder in etwa so ausgeben:
<?php print $field[$schlüssel]->content ?>
Desweiteren ist es auch möglich die Ausgabe von Felder über ein Pre-Prozess zu steueren. Ist wohl die eleganteste Lösung, entzieht sich aber meinem Skill-Level. (welcher wohl bereits hier überschritten wurde.)
Gruß Carsten | |
$fields['field_name_value']->content
am 31.08.2010 - 10:05 Uhr
Ich habe es mit
$fields['field_name_value']->content
gelöst. Wihtig ist, dass man die ID des Feldes verwendet, also mit_value
am Ende. Diese Bedingung wird nirgendwo explizit erwähnt.Bspw.:
<?php if ($logged_in) : ?>
<div class="xy">
<div class="views-label-custom">Top-Produkte</div>
<ul>
<?php print (!empty($fields['field_herst_value']->content)) ? '<li>'.$fields['field_herst_value']->content.'</li>' : ''; ?>
<?php print (!empty($fields['field_herst_2_value']->content)) ? '<li>'.$fields['field_herst_2_value']->content.'</li>' : ''; ?>
</ul>
</div>
<?php endif; ?>
Problem gelöst? Dann [gelöst] im Titel des Beitrags ergänzen.
[gelöst] Typ: Datei
am 13.01.2011 - 11:50 Uhr
Hallo,
dieser Thread hat mir schon sehr weitergeholfen, habe meine Startseite so angepasst.
Problem dabei ist, dass ich auch ein Bild hochlade und dass der Feldtyp Datei ist.
Jetzt bekomm ich an dieser Stelle keine Ausgabe.
Habe in der Ansicht als Format „Pfad zur Datei“ gewählt und wollte dann in die image-source einfach den Pfad schreiben.
Leider bleibt die src aber leer, muss ich beim Typ Datei irgendwie anders vorgehen?
EDIT: hab mich jetzt durch die var_dump ausgabe gewühlt und so funktioniert's jetzt:
print $fields['field_mein_feld_fid']->content;