Eventliste in Tabelle ausgeben
Hallo,
mal wieder ich :)
Ich habe auf einer Seite eine Eventliste, diese würde ich aber gerne in einer HTML-Tabelle ausgeben.
Als Template für die Eventliste verwende ich event_upcoming.tpl
Dieses Template fängt mit <div class="event was ja bei einer Tabelle eigentlich dem <tr> entsprechen würde, hier kann ich also nicht die Tabelle beginnen, sonst bekomme ich pro ausgegebenem Event ja eine eigene Tabelle.
Wo muss ich denn die Tabelle dann definieren?
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Sebastian,
mod_eventlist.tpl werde ich mir mal anschauen, danke.
Bisher habe ich nur eine Eventliste, aber da kommen sicher noch mehrere dazu (multidomain), aber das mit der Modulabfrage mache ich erst dann wenn es wirklich mehrere werden.
Hmmm, tabellarischer Inhalt, ich würde sagen ja.
Anhang 873
Oder siehst du das anders?
Template für aktuellere Contao-Versionen
Zitat:
Zitat von
Russe
Momentan habe ich es so gelöst:
Code:
<?php if ($this->cssID == ' id="next_events"'): ?>
<table border="1" summary="Auflistung der kommenden Veranstaltungen.">
<tr>
<th>Datum</th>
<th>Uhrzeit</th>
<th>Veranstaltung</th>
</tr>
<?php endif; ?>
<?php echo $this->events; ?>
<?php if ($this->cssID == ' id="next_events"'): ?>
</table>
<?php endif; ?>
Vielen Dank, sehr hilfreich.
Bei neueren Contao-Versionen muss das Template allerdings etwas anders aufgebaut sein:
mod_eventlist.tpl
HTML-Code:
<!-- indexer::stop -->
<div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
<?php if ($this->headline): ?>
<<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
<?php endif; ?>
<table border="1" summary="Auflistung der kommenden Veranstaltungen.">
<tr>
<th>Datum</th>
<th>Uhrzeit</th>
<th>Veranstaltung</th>
</tr>
<?php echo $this->events; ?>
<?php echo $this->pagination; ?>
</table>
</div>
<!-- indexer::continue -->
event_upcoming_table.tpl
HTML-Code:
<tr class="event<?php echo $this->classUpcoming; ?>">
<td class="date"><?php echo $this->date; ?></td>
<td class="time"><?php if ($this->time): ?><?php echo $this->time; ?><?php endif; ?></td>
<td class="title"><a href="<?php echo $this->link; ?>" title="<?php echo $this->title; ?> (<?php if ($this->day): echo $this->day; ?>, <?php endif; echo $this->date; if ($this->time): ?>, <?php echo $this->time; endif;?>)"<?php echo $this->target; ?>><?php echo $this->title; ?></a></td>
</tr>
Funktioniert einwandfrei. Vielleicht kann ja jemand etwas damit anfangen.
Viele Grüße
JaiBee
eventlist zeigt keinen Titel bei fehlender Uhrzeit
Ich habe ein funktionierends Template versehentlich "abgeschossen" und keinen Zugriff mehr darauf. Nun suche ich nach einer gleichartigen Lösung, und zwar Datum bzw. Anfangs- und Enddatum (01.01.2013 - 04.01.2013), Uhrzeit und Titel-Link. Es liegen keine PHP-Kenntnisse vor und meine HTML- und CSS-Kenntnisse sind aus Eurer Sicht minimal, weshalb ich mich selten traue, hier anzufragen.
In diesem Zuge habe ich JaiBee's Muster ausprobiert, d.h. kopiert und wie folgt ergänzt:
HTML-Code:
<div class="event<?php echo $this->classUpcoming; ?>">
<table>
<tr class="event<?php echo $this->classUpcoming; ?>">
<td class="date"><?php echo $this->date; ?></td>
<td class="time"><?php if ($this->time): ?><?php echo $this->time; ?><?php endif; ?></td>
<td class="title"><a href="<?php echo $this->link; ?>" title="<?php echo $this->title; ?> (<?php if ($this->day): echo $this->day; ?>, <?php endif; echo $this->date; if ($this->time): ?>, <?php echo $this->time; endif;?>)"<?php echo $this->target; ?>><?php echo $this->title; ?></a></td>
</tr>
<?php echo $this->events; ?>
</table>
<?php endif; ?>
</div>
Wenn das Event keine Uhrzeit beinhaltet, wird auch der Titel nicht angezeigt. Leider habe ich das gleiche Problem bei event_upcoming.tpl (siehe www.tc-asberg.de).
eventlist zeigt keinen Titel bei fehlender Uhrzeit
Hallo JaiBee,
zunächst einmal vielen Dank für Deine schnelle Hilfe, die ich leider erst spät bemerkt habe.
Um Dir die wenigen Kenntnisse einmal klar zu machen, wenn Du schreibst:
Zitat:
Ich hab gerade die genauen Variablen nicht im Kopf, aber mit folgendem Schnippsel kannst du dir sie im Frontend ausgeben und die passenden heraussuchen: ....
, dann weiß ich schon nicht, wo ich diesen Code einfügen muss, um ihn auslesen zu können. Ich habe seit mindestens 1 Jahr nur noch die Inhalte bearbeitet und schon wieder größtenteils vergessen, was ich mir mühevoll angelesen und auf DVD's angesehen habe.
Allerdings habe ich mittlerweile Deinen neuen Code:
Zitat:
Probier's mal mit folgendem; ist eigentlich das gleiche, nur ist der Code etwas kompakter...
versucht.
Ich habe ihn kopiert,
in das Template "event_upcoming_table" anstelle Deines vorherigen Codes eingefügt und gespeichert,
das Modul, das die Eventlist in meine Seite einfügt, auf dieses Template umgestellt (bis zur Lösung des Problems nehme ich immer wieder event_upcoming, damit überhaupt etwas an dieser Stelle steht).
Das Ergebnis:
Die Seite wurde komplett leergefegt (keine Kopfzeile, nichts), ein erneuter Aufruf meldet, dass sie nicht angezeigt werden kann. Darum habe ich schnell wieder auf event_upcoming gewechselt.
Mir war bislang nicht bewußt, dass ein Modul, das nicht korrekt angezeigt werden kann, die ganze Seite außer Kraft setzt.
eventlist zeigt keinen Titel bei fehlender Uhrzeit - Problem gelöst
Hallo JaiBee,
vielen Dank für Deine erfolgreiche Hilfe!!
Ich habe es nicht auf Anhieb verstanden, zumal ich ursprünglich gar keine Spaltenüberschriften einsetzen wollte. Nun ist mir aber einiges klarer geworden. Jedenfalls habe ich den Aufbau nun wieder mit
PHP-Code:
<table>
<tr class="event<?php echo $this->classUpcoming; ?>">
<td class="date"><?php echo $this->date; ?></td>
<td class="time"><?php if ($this->time): ?><?php echo $this->time; ?> Uhr<?php endif; ?></td >
<td class="title"><a href="<?php echo $this->link; ?>" title="<?php echo $this->title; ?> (<?php if ($this->day): echo $this->day; ?>, <?php endif; echo $this->date; if ($this->time): ?>, <?php echo $this->time; endif;?>)"<?php echo $this->target; ?>><?php echo $this->title; ?></a></td>
</tr>
</table>
wie gewünscht erhalten und werde jetzt vesuchen, die verschieden Eventlisten unterschiedlich mit CSS zu formatieren. Damit begann mein Problem. Ich hatte einen Artikel mit dem Eventmodul die ID "jahresuebersicht" gegeben (nachdem andere Versuche, wie bei Russe, nicht funktionierten), konnte die ID in Firebug auch an der richtigen Stelle sehen, aber meine CSS-Anweisungen griffen nicht.
Viele Grüße
eventlist in Tabelle ausgeben
Hallo,
ich bin nicht sicher, ob diese Anfrage noch unter dieses Thema gehört. Falls nicht, gebt mir bitte einen Tipp.
Wie bereits erwähnte, hat die Ausgabe der Eventlist in einer Tabelle funktioniert. (Ich habe auch mittlerweile verstanden, dass ich der ganzen Seite eine ID geben muss, anstatt dem Element, in dem das Modul eingefügt wurde, um die verschiedenen Eventlisten, die auf unterschiedlichen Seiten erscheinen, individuell zu formatieren.)
In dem Template "eventlist_upcoming_table.tpl" habe ich hinter time mit " Uhr" das Wort Uhr ausgeben lassen. Auf der Startseite unserer Homepage http://www.tc-asberg.de/index.php/home.html sind die Einträge bündig untereinander. In der Terminübersicht http://www.tc-asberg.de/index.php/terminuebersicht.htm habe ich die Spalte mit der Uhrzeit rechtsbündig ausgerichtet und mit 10 px padding-right versehen. Hier verspringt der Text der darauffolgenden Spalte sowohl innerhalb gleicher Einträge, als auch abweichender Einträge (mit Uhrzeit und ohne Uhrzeit).
Woran liegt das?
Viele Grüße
eventlist in Tabelle ausgeben - Textversprung
Hallo JaiBee,
ich meinte nicht die Startseite, sondern die Seite Terminübersicht. Hier wird bei mir in Firefox und im Internet Explorer der Text der letzten Spalte (Titel) links unterschiedlich eingerückt, so dass er nicht bündig untereinandersteht.
Anfangs dachte ich, es liegt daran, dass nicht jeder Termin über eine Uhrzeit verfügt. Aber wenn man genau hinschaut, ist schon die Aufstellung der Termine mit Uhrzeit nicht bündig.
Viele Grüße
eventlist in Tabelle ausgeben - Textversprung
Hallo magicsepp,
danke für Deinen Tipp, leider hat es nicht geklappt. Wenn ich den Code gegen den ursprünglichen in der Zeile "Time" austausche, wird wieder die ganze Seite abgeschossen.
Die Leerzeichen vor dem schließenden ">" waren ein Versehen, sie sind erst beim Kopieren in dieses Forum entstanden, und wurden von mir gar nicht bemerkt.
Viele Grüße
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Goodwill,
entferne das <table> und </table> aus event_upcoming_*.tpl, wie oben geschildert, da sonst jede Zeile unabhängig von den anderen ist, was zu minimal unterschiedlich breiten Spalten führt (wodurch die Spalten nicht bündig erscheinen). Das Einfügen eines Leerzeichens sollte nicht notwendig sein, schadet aber auch nicht.
Momentan sieht der Quelltext der Website wie folgt aus:
HTML-Code:
<table>
<tr class="event even first cal_4">
<td class="date">08.03.2013</td>
<td class="time">19:30 Uhr</td>
<td class="title"><a href="…" title="…">…</a></td>
</tr>
</table> /* !! */
<table> /* !! */
<tr class="event odd cal_4">
<td class="date">13.03.2013</td>
<td class="time"></td>
<td class="title"><a href="…" title="…">…</a></td>
</tr>
</table>
Nach der Änderung sieht es dann so aus:
HTML-Code:
<table>
<tr class="event even first cal_4">
<td class="date">08.03.2013</td>
<td class="time">19:30 Uhr</td>
<td class="title"><a href="…" title="…">…</a></td>
</tr>
<tr class="event odd cal_4">
<td class="date">13.03.2013</td>
<td class="time"></td>
<td class="title"><a href="…" title="…">…</a></td>
</tr>
</table>
Was zu einer Darstellung wie im Anhang führt (getestet mit Firebug).
Gruß
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo JaiBee,
vielen Dank für Deine Hilfe. Ich bin leider erst heute dazu gekommen, mich wieder mit diesem Thema zu befassen. Deinen ursprünglichen Hinweis, dass <table> und </table> nicht in die event_upcoming_table.tpl gehört, hatte ich überlesen. :( Mir leuchtet die Erklärung auch ein. Wenn ich diesen Eintrag jedoch lösche, erhalte ich folgende fehlerhafte Darstellung:
Anhang 10117
Anhang 10118
Anhang 10119
Hast Du dafür eine Erkärung?
Viele Grüße