@christian
Ich gebe dir vollkommen Recht
Die Listenansicht bündelt halt die Termine eines Tages. Im Sinne von...
In der Demo sind ja im FE auch alle Datums enthalten. Pro Tag als Überschrift und noch mal im title-Attribut des Links. Es ist also kein Bug. chr.flader sagte allerdings es würde ihm bei einem Event kein Datum gerendert werden. Zu der Logik: Der Satz: 'Wenn die Events am gleichen Tag beginnen, wird dieser nur einmal ausgegeben.' Hat in meinem Hirn mal wieder Panik ausgelöst, wahrscheinlich liegt das an meiner eingebauten Logik , ich kann damit echt nichts anfangen. ' Für alle Events die am gleichen Tag beginnen, wird eine gemeinsame Überschrift mit dem Datum generiert.' Das hätte ich z.B. verstanden.
@chr.flader
Ich hatte mir das diese Nacht nochmal genauestens angesehen, war aber zu spät um noch zu posten. Hier also mein Ergebnis und der Weg zur Lösung für dich:
Der erste Teil des Templates event_list.tpl generiert pro Tag eine Überschrift, hast du mehrere Events an einem Tag, dann werden sie alle unterhalb dieser Überschrift angezeigt.
PHP-Code:
<?php if ($this->header): ?>
<div class="header<?php echo $this->classHeader; ?>">
<span class="date"><?php echo $this->firstDate; ?></span><?php if ($this->firstDay): ?> <span class="day">(<?php echo $this->firstDay; ?>)</span><?php endif; ?>
</div>
<?php endif; ?>
Mit dem unteren Teil des Templates
PHP-Code:
<div class="event<?php echo $this->classList; ?>">
<h2><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></h2>
<?php if ($this->time || $this->span): ?>
<p class="time"><?php echo $this->time . $this->span; ?></p>
<?php endif; ?>
<div class="ce_text">
<?php echo $this->details; ?>
</div>
</div>
Werden die einzelnen Events gerendert. Das title-Attribut enthält übrigens das Datum, welches du als Mouseovertext angezeigt bekommst.
PHP-Code:
(<?php if ($this->day): echo $this->day; ?>
, <?php endif; echo $this->date; if ($this->time): ?>
, <?php echo $this->time; endif; ?>)
Im unteren Teil ist auch der Part enthalten, welcher die Zeitspanne für mehrtägige Events generiert
PHP-Code:
<?php if ($this->time || $this->span): ?>
<p class="time"><?php echo $this->time . $this->span; ?></p>
<?php endif; ?>
Diese Zeitspanne wird aber nur dann generiert, wenn du im Modul Eventlist 'Verkürzte Darstellung' anhakst. Wenn das angehakt ist, dann wird ein mehrtägiger Event nur einmal angezeigt und zwar am ersten Event-Tag. Weil die Events an den darauffolgenden Tagen ja nicht mehr in der Liste erscheinen, deswegen wird beim ersten dann die Zeitspanne generiert.
Hast du 'Verkürzte Darstellung' nicht angehakt, dann wird die Zeitspanne auch nicht generiert, weil dann ja dieser mehrtägige Event an all seinen Tagen in der Liste erscheint.
Möchtest du nun deine Ausgabe in irgendeine Richtung vom Standard abändern, dann schau dir mit
PHP-Code:
<?php echo "<pre>\n"; $this->showTemplateVars(); echo "\n</pre>"; ?>
im Template die Variablen an, welche das Template ausgibt. Mit etwas Geschick müsstest du es hinbekommen, dass die Zeitspanne auch dann angezeigt wird, wenn 'Verkürzte Darstellung' nicht angehakt ist, falls es das ist, was du möchtest. PHP-Kenntnisse sind dazu allerdings nötig, und die TL-Methode parseDate() sollte dir auch nicht fremd sein.
Solltest du es nicht hinbekommen kannst du einen Pro fragen, ob er dir ein Template nach deinen Wünschen erstellt.
@barz
Mein erwähnter Workaround umfasst nur eine FE-Modifizierung im Template event_full.tpl. In allen anderen Templates wird lediglich ein GET-Parameter an die Links angehängt, welche event_full.tpl aufrufen. Schau dir meinen Thread bitte nochmal genau an.
Lesezeichen