Ergebnis 1 bis 15 von 15

Thema: event_full mit Zeit/Datum im Titel

  1. #1
    Contao-Fan
    Registriert seit
    01.07.2009.
    Beiträge
    348

    Standard event_full mit Zeit/Datum im Titel

    Hallo zusammen

    Kurze Frage an die Parse-Profis:
    Mein event_full beginnt mit
    Code:
      <h1>
      <?php  
      echo $this->endDate == '' ? $this->parseDate('l, j. F Y', $this->startDate) : $this->parseDate('l, j. F', $this->startDate) . ' - ' . $this->parseDate('l, j. F Y', $this->endDate) ; 
      echo $this->start == $this->end ? ', ' . $this->parseDate('H.i', $this->start) : ', ' . $this->parseDate('H:i', $this->start) . ' – ' . $this->parseDate('H:i', $this->end) ;  
    ?> Uhr
    <br />
      <?php echo $this->title; ?></h1>
    Das ist nicht grundsätzlich falsch. Ein Problem entsteht erst, wenn sich ein Event über mehrere Tage erstreckt, dafür keine Start- und Endzeit hat. Das Template gibt bei Events ohne Zeit immer 00:00 - 23.59 aus.

    Ich möchte die Zeit erst, wenn eine definiert wurde.
    Und Start- bis Enddatum, falls ein Enddatum definiert wurde.

    Wie kann ich das korrigieren?

    Grüsse
    Chris
    Geändert von ChrisT (05.12.2014 um 10:28 Uhr)

  2. #2
    Contao-Fan
    Registriert seit
    01.07.2009.
    Beiträge
    348

    Standard

    Ich dachte eigentlich, das Thema sei nicht allzu exotisch - hat niemand eine Ahnung?

  3. #3
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    exotisch ist es nicht, eher nicht so einfach. Um das zu bewerkstelligen bedarf es ein paar if wenn dann Abfragen die wohl die meistens in dieser Konstellation nicht so einfach runtertippen.

  4. #4
    Contao-Fan
    Registriert seit
    01.07.2009.
    Beiträge
    348

    Standard

    Schade - wurde schon einmal überlegt oder diskutiert, eine Art «Library» für solche Templates anzufertigen? Meiner Erfahrung nach, ist das Gebiet fast unerschöpflich, weshalb nicht einmal zusammentragen, was bereits vorhanden ist und vorgedacht wurde?

  5. #5
    Administratorin Avatar von lucina
    Registriert seit
    19.06.2009.
    Ort
    Kiel (DE)
    Beiträge
    7.337
    Partner-ID
    152
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Es steht ja jedem frei, seine "Snippets" auch ins Wiki einzutragen. Dazu gibt es dort einen Extrabereich ... ;-)

  6. #6
    Contao-Urgestein
    Registriert seit
    30.01.2011.
    Ort
    Stuttgart
    Beiträge
    4.138

    Standard

    der eine oder andere Code Snippet ist auch hier zu finden

  7. #7
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Standard

    Ich hab' sowas mal umgesetzt, was gut funktioniert:

    PHP-Code:
    <p class="date">
        <?php if ($this->span): ?>
            <?php echo $this->span?><?php if ($this->firstDay): ?> <span class="day">(<?php echo $this->firstDay?>)</span><?php endif; ?>
        <?php else: ?>
          <?php echo $this->firstDate?><?php if ($this->firstDay): ?> <span class="day">(<?php echo $this->firstDay?>)</span><?php endif; ?>
        <?php endif; ?>
    </p>

    <?php if ($this->time): ?>
      <p class="time"><?php echo $this->time?></p>
    <?php endif; ?>

    <?php if ($this->location): ?>
      <p class="location"><?php echo $this->location?></p>
    <?php endif; ?>
    Ergibt z.B.
    14. Dezember 2014 (Sonntag)
    12:45 Uhr - 13:15 Uhr
    Zürich


    Gruss
    Marco

  8. #8
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    837

    Standard

    Ich scheitere auch gerade an so etwas .
    Die Ausgabe 12:45 Uhr - 13:15 Uhr soll in 12:45 - 13:15 Uhr geändert werden, das habe ich so gelöst (stand hier auch mal im Forum)
    PHP-Code:
    <span class="time">(<?php echo ($this->parseDate("H:i"$this->startTime)) ?>
     <?php if ($this->endTime $this->startTime): ?>
    <?php 
    echo " - ".$this->parseDate("H:i"$this->endTime); endif;  ?> Uhr)</span>
    soweit kein Problem aber bei einem Termin der einen Zeitraum umfasst wird mir dann dieser im event_teaser template nicht mehr angezeigt (z.B. Weihnachtsmarkt 01.12.2014 -24.12.2014)
    und bei fehlender Start und Endzeit gibt er immer 00:00 - 23:59 Uhr - also genau so wie im ersten Post beschrieben.
    Ich weiß das dass mit der "Uhr Anzeige" schon mal thematisiert wurde, aber so ganz optimal hab ich es nie hinbekommen als "Nicht PHPler"

  9. #9
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Standard

    Hallo Bennie

    Das müsste funktionieren:

    PHP-Code:
    <span class="time">
    <?php 
        
    if($this->addTime){
            if(
    $this->endTime $this->startTime){
                echo 
    $this->parseDate("H:i"$this->startTime).' - '.$this->parseDate("H:i"$this->endTime).' Uhr';
            }
            else {
                echo 
    $this->parseDate("H:i"$this->startTime).' Uhr';
            }
        }
    ?>
    </span>
    Gruss
    Marco

  10. #10
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    837

    Standard

    Danke Marco,

    das klappt soweit einwandfrei, aber wie setze ich jetzt den Datum-Zeitraum wieder ein?
    Also ein Termin der ein Anfangs - und Endatum hat. Das geht vermutlich ähnlich wie mit der Uhrzeit.
    Es geht ja immer um den Teil
    PHP-Code:
     <?php if ($this->time || $this->span): ?>
        <p class="time"><?php echo $this->time $this->span?></p>
      <?php endif; ?>
    der "aufgeteilt" werden muss in Datum und Zeit. Muss man (ich) nur mal verstehen

  11. #11
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Standard

    Ja eigentlich genau gleich, einfach die Spalte Date verwenden
    PHP-Code:
    <span class="date">
    <?php
       
    if($this->endDate $this->startDate){
            echo 
    $this->parseDate("d.m.Y"$this->startDate).' - '.$this->parseDate("d.m.Y"$this->endDate);
        }
        else {
            echo 
    $this->parseDate("d.m.Y"$this->startDate);
        }
    ?>
    </span>

    <span class="time">
    <?php 
        
    if($this->addTime){
            if(
    $this->endTime $this->startTime){
                echo 
    $this->parseDate("H:i"$this->startTime).' - '.$this->parseDate("H:i"$this->endTime).' Uhr';
            }
            else {
                echo 
    $this->parseDate("H:i"$this->startTime).' Uhr';
            }
        }
    ?>
    </span>

    Gruss
    Marco

  12. #12
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    837

    Standard

    Konnte dem Threadersteller denn geholfen werden? Durch meine Zwischenfrage ist das jetzt ein wenig untergegangen.

    @Marco
    Beim Einsetzen Deines Codes bin ich auf ein Problem gestoßen was ich bisher nie beachtet hatte. Gibt man einen Datumzeitraum an wird im event_teaser template immer das aktuelle Datum und das Enddatum angezeigt.
    Im event_full wird dann das tatsächliche Startdatum und Enddatum angezeigt. Finde ich eher verwirrend.

    Grüße
    Bennie
    Geändert von Bennie (15.12.2014 um 10:22 Uhr)

  13. #13
    Contao-Fan Avatar von marcos
    Registriert seit
    09.02.2011.
    Ort
    Schweiz
    Beiträge
    575
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Bennie Beitrag anzeigen
    @Marco
    Beim Einsetzen Deines Codes bin ich auf ein Problem gestoßen was ich bisher nie beachtet hatte. Gibt man einen Datumzeitraum an wird im event_teaser template immer das aktuelle Datum und das Enddatum angezeigt.
    Im event_full wird dann das tatsächliche Startdatum und Enddatum angezeigt. Finde ich eher verwirrend.
    Hallo Bennie

    Diesen "Fehler" kann ich nicht nachvollziehen. Wenn ich ein Start- und Enddatum eingebe und das Template "event_teaser" nicht bearbeite, erhalte ich folgende Ausgabe:
    01.12.2014 - 18.12.2014

    Mit meinem Code oben in "event_teaser" sieht es dann so aus:
    01.12.2014 - 18.12.2014 14:00 - 20:00 Uhr


    Getestet habe ich mit Contao 3.4.0


    Gruss
    Marco

  14. #14
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    837

    Standard

    Das hatte ich auch mit dem Original Template ausprobiert, aber kann sein, dass da noch andere Einstellungen vorgenommen wurden u.a. ist das calender_extended Modul eingebaut .
    Habe die Seite nur übernommen und suche noch nach allen Details

  15. #15
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    837

    Standard

    @Marco

    es liegt daran, dass im Event list - Modul nur zukünftige Events eingestellt waren.
    Dann wird bei Zeiträumen bei denen das Startdatum bereits in der Vergangenheit liegt, immer das aktuelle und das Endatum angezeigt.
    Außerdem war die Kurzansicht eingestellt, damit der Termin nur einmal dargestellt wird.
    Setzte ich Deinen Code ein wird das so geändert, dass der tatsächliche Zeitraum eines Events im Teaser dargestellt wird. Deshalb fiel es mir auf.
    Für den Besucher einer Seite vermutlich logischer, besonders dann wenn es nur einen Teaser gibt und keinen weiteren Inhalt.

    Grüße
    Bennie

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •