[gelöst] 2 Views Listen mit unterschiedlicher Ausgabe
am 22.02.2011 - 09:33 Uhr in
Hi Leute,
ich habe ein dringendes Problem, dafür muss ich etwas ausholen ... ich hoffe ich kann mich verständlich ausdrücken. ;-)
Ich habe einen Inhaltstypen (Reisen), welche ich mir zwei mal per Views als Liste ausgeben lasse.
- Eine "genaue" Ansicht (Seite)
- Eine "reduzierte" Ansicht (Block)
In meinem Inhaltstyp habe ich auch mehrere CCK-Felder - u.a. "verfügbare Plätze". Das ist wichtig, weil auf Grund dieser Zahl werden zwei Link ausgegeben.
verfügbare Plätze >= 1 = Link "buchen"
verfügbare Plätze = 0 = Link "Warteliste"
Mit diesen Links übergebe ich die entsprechende Reise-Node ID in ein Formular.
Für die "genaue Liste" habe ich die Template Datei "node-reise.tpl.php" angepasst. Diese Reise-Nodes werden nur per Views ausgegeben. Und das Funktioniert auch soweit und passt, wie ich es will. :-)
==========
So jetzt zu meinem Problem:
Die "reduzierte Liste" wird per Taxonomie Begriffe gefiltert und der Inhalt wird beispielsweise nicht angezeigt. Da ich meine "node-reise.tpl.php" schon bei der ersten Liste verbraucht habe, habe ich es hier mit den "views-view-field-feldname.tpl.php" Template Dateien gemacht. Hier ist nur das Problem, dass die CCK-Felder per
<?php
print $output;
?>
Das heißt mir fehlt im verfügbare Plätze Template die entsprechende Node ID oder im Beitrags ID Template der Wert für die verfügbaren Plätze um meine Weiterleitung zum Formular zu bauen.
==========
Meine Lösungsansätze:
- Könnte ich hier Werte von einer "views-view-field-feldname.tpl.php" in eine zweite Datei übergeben?
- Könnte ich eine extra "node-reise.tpl.php" für die zweite Liste anlegen?
- Könnte ich in einer "views-view-field-feldname.tpl.php" auf die entsprechende Reise-Node zugreifen? Oder über die entsprechende Beitrags ID auf ein CCK Feld?
Ich hoffe ihr konntet mich verstehen. :-) Wenn nicht bitte fragen.
Vielen vielen Dank schon mal!
Monsi
- Anmelden oder Registrieren um Kommentare zu schreiben
Templates
am 22.02.2011 - 09:46 Uhr
Hallo.
Klick mal beim Bearbeiten eines Displays auf "Theme Information". Dann erhälst Du eine Liste mit allen für dieses Display möglichen Templates.
Für das Block-Display kannst Du also ein eigenes Template anlegen, in dem Du dann die "Berechnung" vornimmst.
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Hallo Stefan, danke für die
am 22.02.2011 - 10:16 Uhr
Hallo Stefan,
danke für die Antwort! :-)
Das mache ich im prinzip schon, indem ich die Ausgabe der "Feld Inhalte" (Feld Inhalt: verfügbare Plätze (field_seat) (ID: field_seat_value)) verändere.
Die Ausgabe dieser Felder wird gemacht per:
<?php
print $output;
?>
Ich hätte dann noch "Ausgabe des Zeilendesign: views-view-fields.tpl.php".
Das sieht vielversprechend aus ... aber wie bekomme ich da meine Felder rein?
<?php foreach ($fields as $id => $field): ?>
<?php if (!empty($field->separator)): ?>
<?php print $field->separator; ?>
<?php endif; ?>
<<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>">
<?php if ($field->label): ?>
<label class="views-label-<?php print $field->class; ?>">
<?php print $field->label; ?>:
</label>
<?php endif; ?>
<?php
// $field->element_type is either SPAN or DIV depending upon whether or not
// the field is a 'block' element type or 'inline' element type.
?>
<<?php print $field->element_type; ?> class="field-content"><?php print $field->content; ?></<?php print $field->element_type; ?>>
</<?php print $field->inline_html;?>>
<?php endforeach; ?>
Template
am 22.02.2011 - 10:22 Uhr
Ich hätte dann noch "Ausgabe des Zeilendesign: views-view-fields.tpl.php".
Genau dieses Template benötigst Du (dann allerdings mit spezifischerem Namen).
Die Variable
$fields
in diesem Template beinhaltet alle Deine Felder. Installieren Dir mal [do:devel Devel] und füge in das Template einfach mal<?php dsm($fields); ?>
ein. Dann erhälst Du eine Auflistung der Felder inklusive der Struktur jedes einzelnen Feldes.So kannst Du die Feldinhalte dann "per Hand" im Template ausgeben.
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Sorry, ist wahrscheinlich
am 22.02.2011 - 11:17 Uhr
Sorry, ist wahrscheinlich jetzt eine dumme Frage ...
Ich hab das jetzt mal in einem Test System versucht, aber irgendwie bekomme ich keine Ausgabe...
<?php
print $fields->field_department_value['raw'];
?>
Hab auch schon andere Eingaben versucht ... aber keines funktioniert. :-(
Ich hab mal die Ausgabe vom dsm mit angehängt.
Danke!
Monsi
Objekte und Arrays
am 22.02.2011 - 11:44 Uhr
aber irgendwie bekomme ich keine Ausgabe...
Du müsstest bei dem verwendeten Codefragment zumindest Fehler von PHP um die Ohren geschmissen bekommen. Wenn nicht, hast Du Deine Fehlerbehandlung nicht korrekt eingestellt.
$fields
ist ein Array, somit greifst Du auf das Feld mittels<?php $fields['field_department_value'] ?>
zu.Das Feld ansich ist jedoch ein Objekt (siehe Ausgabe von Devel). Also lautet der korrekte Aufruf:
<?php
print $fields['field_department_value']->raw;
?>
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Aaah ... Super! Damit sollte
am 22.02.2011 - 11:57 Uhr
Aaah ... Super!
Damit sollte ich das jetzt hingebekommen! :-)
Vielen, vielen Dank für die schnelle Hilfe!
Einfach klasse hier im Forum!!
Simon