Views - Mehrere Felder beim ersten View anzeigen bei den restlichen nur den Titel
am 13.06.2012 - 15:20 Uhr in
Hallo zusammen,
ich hab gerade mit Views ein Problem der mich in den Wahnsinn treibt, vielleicht könnt ihr mir helfen.
Ich hab mehrere Vokabeln in meine Taxonomie
wie z.B.
Fussball
Handball
Tennis
Tischtennis
....
Und ich möchte das ganze so Anzeigen, dass beim ersten Node in der Kategorie das Bild und mehrere Felder angezeigt werden u bei den restlichen nur der Titel.
Also so:
Fussball:
- BILD - TITEL - BODY
- TITEL
- TITEL
Handball:
- BILD - TITEL - BODY
- TITLE
- TITLE
usw.
um jeweils die gewünschte Menge von jeder Kategorie anzuzeigen benutze ich den Views Grouping Row Limit Modul.
Mein Problem ist, dass ich es nicht schaffe nur die Titel anzuzeigen für alle Nodes die in der Kategorie nach dem neusten kommen.
Ich hab das mit Views Attachment ausprobiert, aber die ergebnisse erscheinen dann jeweils unter bzw. über meinem eigentlichen View.
Dann habe ich es noch mit Views Field View versucht, damit klappt es aber die Performance ist total miserabel, da dauert es manchmal 20sek. bis die Ergebnisse angezeigt werden.
Habt ihr vielleicht einen tipp für mich?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich würde das so machen
am 13.06.2012 - 22:36 Uhr
1. Eine Templatedatei für den View anlegen.
2. Mittels PHP eine Logik bauen die mir das gewünschte Resultat liefert.
Zum Einstieg ins Formatieren von Feldern in Views hat mir dieser Beitrag von Bob geholfen.
http://mustardseedmedia.com/podcast/episode30
Gruss
abc123
Views - Mehrere Felder beim ersten View anzeigen
am 14.06.2012 - 08:48 Uhr
Hallo,
also ich würde eine zweite View als Anhang definieren, diese dann vor die "Hauptview" anhängen und mit den Filtern bzw. dem Offset arbeiten.
„Nichts geschieht ohne Risiko, aber ohne Risiko geschieht auch nichts.“
jD schrieb Hallo, also ich
am 14.06.2012 - 13:03 Uhr
Hallo,
also ich würde eine zweite View als Anhang definieren, diese dann vor die "Hauptview" anhängen und mit den Filtern bzw. dem Offset arbeiten.
Das Problem ist, dass der Anhang immer vor oder nach der eigentliche View kommt. Bei mir müsste er es aber nach jede Runde einfügen. Hab jetzt länger damit rum gespielt aber es nicht geschafft.
1. Eine Templatedatei für den View anlegen.
2. Mittels PHP eine Logik bauen die mir das gewünschte Resultat liefert.
Zum Einstieg ins Formatieren von Feldern in Views hat mir dieser Beitrag von Bob geholfen.
http://mustardseedmedia.com/podcast/episode30
Gruss
abc123
Danke für den tipp, werde ich wohl so machen müssen. Hab gehofft das ich das mit View eigenen mittel schaffe. Das ist ja eigentlich ein Anwendungsszenario was bestimmt öfter auftritt.
Genau
am 14.06.2012 - 23:02 Uhr
und wenn du einmal mit den Overrides angefangen hast kannst du eigentlich alles machen. Von Taxonomytermpages über Strings und Arrays zerlegen bis hin zu beliebig verschachtelten Views mit Argumenten usw. Es lohnt sich auf jeden Fall in das Thema einzuarbeiten. Wenn das einmal sitzt machst du bald nichts anderes mehr.
Gruss
abc123
nochmal Hallo, ich hab
am 16.07.2012 - 10:28 Uhr
Nochmal Hallo, ich hab endlich Zeit gefunden mich wieder mit der Seite zu beschäftigen.
Ich versuch das ganze jetzt mit Overrides zu lösen, mein Problem ist, dass ich keine Variable von einem übergeordneten Template an einem unteren übergeben kann.
Bzw. anderes ausgedrückt:
Mein View heißt einfach "start"
ich hab ein Template "views-limit-grouping--start.tpl.php" in dem ich eine Variable $is_first_element deklarieren möchte, im darauf folgenden Temlplate
"views-view-fields--start.tpl.php" möchte ich darauf zugreifen.
Ich hab das per normale Variablen deklaration gemacht, global, add_variable aber die Variable wird immer als nicht deklariert angezeigt.
Hast du da einen tipp für mich?
Du kannst aber Argumente übergeben
am 16.07.2012 - 17:53 Uhr
die den zweiten View aufrufen:
print views_embed_view('start', 'block_2', $args);
Und in $args kann dann der Taxonomy-Term des aufrufenden Views stehen.
Also:
Fussbal, Handball, Tennis usw. sind Taxonomy-Terms. Die rufst du auf und möchtest die einzelnen Nodes dieses Terms anzeigen. Dafür eignet sich eine eigene Taxonomy-Term-Page.
Du legst einen View an mit zwei Displays (block_1 und block_2):
Eines für den ersten Eintrag mit Titel, Bild und Text (block_1).
Das zweite Display nur mit den Titeln und Links der restlichen Beiträge (block_2).
Dann eine Datei erstellen mit dem Namen:
taxonomy_term_page.tpl.php
und dem Inhalt:
<?php
$view = views_get_view('start');
$display = $view->execute_display('block_1', $tids);
print $display['content'];
?>
In der Overridedatei für start/block_1
views-view-fields--start--block-1.tpl.php
den aktuellen Term auslesen und als Argument an den zweiten View übergeben:
$args = $fields['tid_1']->content;
print views_embed_view('start', 'block_2', $args);
Gruss
abc123