Ergebnis 1 bis 8 von 8

Thema: Format Datum bei mehrtägigem Event

  1. #1
    Contao-Nutzer Avatar von n!ck
    Registriert seit
    02.04.2010.
    Ort
    Köln
    Beiträge
    73

    Standard Format Datum bei mehrtägigem Event

    Grüße Euch,

    ich möchte gerne das Ausgegebene Format in der Nachrichtenliste im Template "event-upcoming" gerne mit folgenden Bedingungen anpassen:

    Eintägiges Event
    26.06.2016

    Mehrtägiges Event im gleichen Monat
    26. - 28.06.2016

    Mehrtägiges Event bis in den nächsten Monat
    26.06. - 02.07.2016

    Hat das jemand so schon gemacht und kann es mir erklären? Im Forum habe ich leider nichts gefunden.

    Code:
    <div class="event layout_upcoming<?= $this->classUpcoming ?>">
      <time datetime="<?= $this->datetime ?>" class="date"><?= $this->date ?><?php if ($this->time): ?>, <?= $this->time ?><?php endif; ?></time>  <a href="<?= $this->href ?>" title="<?= $this->title ?> (<?php if ($this->day) echo $this->day . ', '; ?><?= $this->date ?><?php if ($this->time) echo ', ' . $this->time;?>)"<?= $this->target ?>><?= $this->link ?></a>
    </div>
    Liebe Grüße, Nick

  2. #2
    Alter Contao-Hase
    Registriert seit
    02.10.2010.
    Ort
    58636 Iserlohn
    Beiträge
    1.084

    Standard

    Hallo Nick,

    die einfachste Lösung wäre, ein kleines PHP-Skript einzufügen, welches die Varianten überprüft und das Ergebnis in eine neue Variable schreibt.

    Gruß
    Thoni
    Meine Extensions: contentmodify, dca_editor

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    So sieht mein Template aus:
    PHP-Code:
    <?php

    // Jahr und Monat ermitteln
    $aktmonat date("Ym",$this->startDate);
    $jahr date("Y",$this->startDate);

    // Starttag und Endetag vergleichen
    if($this->startDate && $this->endDate
    {
      
    $start[0] = date("d",$this->startDate); // Starttag
      
    $start[1] = date("m",$this->startDate); // Startmonat
      
    $start[2] = date("Y",$this->startDate); // Startjahr
      
    $ende[0] = date("d",$this->endDate); // Endetag
      
    $ende[1] = date("m",$this->endDate); // Endemonat
      
    $ende[2] = date("Y",$this->endDate); // Endejahr
      
    if($start[2] == $ende[2]) 
      {
        
    // gleiches Jahr
        
    $temp[0] = "";
        
    $temp[1] = $ende[2];
      }
      else
      {
        
    // unterschiedliches Jahr
        
    $temp[0] = $start[2];
        
    $temp[1] = $ende[2];
      }
      if(
    $start[1] == $ende[1]) 
      {
        
    // gleicher Monat
        
    $temp[1] = $ende[1].".".$temp[1];
      }
      else
      {
        
    // unterschiedlicher Monat
        
    $temp[0] = $start[1].".".$temp[0];
        
    $temp[1] = $ende[1].".".$temp[1];
      }
      if(
    $start[0] == $ende[0]) 
      {
        
    // gleicher Tag
        
    $temp[1] = $ende[0].".".$temp[1];
      }
      else
      {
        
    // unterschiedlicher Tag
        
    $temp[0] = $start[0].".".$temp[0];
        
    $temp[1] = $ende[0].".".$temp[1];
      }
      
    $anzeigetag $temp[0]." - ".$temp[1];
    }
    else
    {
      
    // Endetag ist nicht gesetzt
      
    $anzeigetag date("d.m.Y",$this->startDate);
    }

    ?>

    <?php if ($GLOBALS["dsbterminplanmonat"] != $aktmonat): ?>
    <h3><?php echo $this->month ." "$jahr?></h3>
    <?php endif; ?>

    <ul class="event layout_teaser<?php echo $this->classList?>">

    <li class="time"><?php echo $anzeigetag?></li>

    <li class="title"><a href="<?php echo $this->href?>" 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->link?></a></li>

    <li class="location"><?php echo $this->location ?></li>

    </ul>

    <?php
    // Aktuellen Monat sichern
    $GLOBALS["dsbterminplanmonat"] = $aktmonat;
    ?>
    Das Ganze läßt sich sicher noch eleganter realisieren. Und so sieht das dann im FE aus: http://www.schachbund.de/turnierdatenbank.html
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  4. #4
    Contao-Nutzer Avatar von n!ck
    Registriert seit
    02.04.2010.
    Ort
    Köln
    Beiträge
    73

    Standard

    Hallo Frank,

    das sieht exakt nach dem aus was ich suche. Hatte mich die Tage schon versucht in PHP wieder einzuarbeiten... ich schaue es mir mal an. Denke aber es ist perfekt.

    Vielen lieben Dank!

    Nachtrag: Es ist perfekt! Ob man es besser machen kann, kann ich nicht beurteilen. Das Ergebnis passt jedenfalls
    Geändert von n!ck (25.05.2016 um 22:03 Uhr)
    Liebe Grüße, Nick

  5. #5
    Contao-Nutzer
    Registriert seit
    05.02.2014.
    Beiträge
    54

    Standard

    @54Samson1964
    Vielen Dank für deine Antwort. Mit dem Post und dem Link auf die Seite konnte ich mir meine Eventlist passend konfigurieren!

  6. #6
    Contao-Nutzer
    Registriert seit
    05.02.2014.
    Beiträge
    54

    Standard

    Hallo,

    ich versuche gerade das Template noch ein bisschen anzupassen. Ich würde gern nach jeden Monats-Block einen Absatz/Leerzeile einbauen. Leider klappt das bisher nicht.

    Ich denke in dieser Zeile müsste doch der Umbruch erfolgen bzw. müsste direkt davor erfolgen.
    <h3><?php echo $this->month ." ". $jahr; ?></h3>

    Liege ich da soweit richtig? Oder wie müsste ich das darstellen?

  7. #7
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Ich würde eher einen Abstand mit CSS machen.
    PHP-Code:
    <h3 class="abstand-oben"><?php echo $this->month ." "$jahr?></h3>
    CSS:
    PHP-Code:
    .abstand-oben {
      
    margin-top15px;

    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  8. #8
    Contao-Nutzer
    Registriert seit
    05.02.2014.
    Beiträge
    54

    Standard

    Hallo Frank,

    danke für die schnelle Antwort. Leider klappt das bei mir nicht....

    Wenn ich die Überschrift per css mit einem margin formatiere wird das nur beim "ersten" Monat in der Liste übernommen. Anscheinend habe ich noch irgendwo eine andere Formatierung die das stört....
    Ich gehe dann mal auf die Suche.

    Aber nochmal danke für den Tip, manchmal kommt man einfach nicht auf die einfachsten Möglichkeiten :-)

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
  •