Ergebnis 1 bis 18 von 18

Thema: [repeatDates] Endzeit ausgeben?

  1. #1
    Contao-Nutzer
    Registriert seit
    13.03.2015.
    Beiträge
    12

    Standard [repeatDates] Endzeit ausgeben?

    Hi,

    besteht die Möglichkeit in den Event Details bei [repeatDates] nebst dem Datum und der Startzeit, auch noch die Endzeit auszugeben?

    Code:
    [repeatDates] => a:18:{i:1476720900;s:16:"17.10.2016 18:00";i:1477325700;s:16:"24.10.2016 14:00";...

    Kann auch eine andere Variable sein. Ziel ist es in der Detailansicht alle Termine mit Wiederholungen eines Event mit Start- und Endzeit aufzulisten, da diese kleine unregelmässigkeiten beinhalten.


    Danke und Gruss
    Dino
    Geändert von Pixi (01.07.2016 um 13:01 Uhr)

  2. #2
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du kannst mal sowas probieren, die Endzeit sollte in $this->endTime drin stehen.
    PHP-Code:
    foreach(deserialize($this->repeatDates) as $timestamp => $dateString)
    {
      
    // Original Date-String und Endzeit angehangen
      
    echo '<p>v1 - '.$dateString.' - '.\Date::parse('H:i'$this->endTime).'</p>'
      
    // v1 - 02.05.2016 09:45 - 12:00

      // Date-String mit eigenem Format und Endzeit angehangen
      
    echo '<p>v2 - '.\Date::parse('D. j. F Y, H:i'$timestamp).' - '.\Date::parse('H:i'$this->endTime).'</p>'
      
    // v2 - Mo. 2. Mai 2016, 09:45 - 12:00

    Ich habe dir mal ne 2. Version gemacht, falls du den String aus repetDates auch formatieren möchtest.
    Geändert von Andreas (02.07.2016 um 00:36 Uhr)
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  3. #3
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Hallo Dino, hallo Andreas,

    die Lösung klappt aber nur, solange keine Ausnahmen im Spiel sind, die andere Uhrzeiten haben.

    Gruß Kester
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  4. #4
    Contao-Nutzer
    Registriert seit
    13.03.2015.
    Beiträge
    12

    Standard

    Hallo Zusammen und vielen Dank für die Antworten .

    @Andreas: Ist es geplant künftig die Endzeit bei den Wiederholungen auch in repeatDates auszugeben?

    Gruss
    Dino

  5. #5
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Da musst du den Entwickler fragen. Schau mal, ob er die Erweiterung auf Github verwaltet, dann kannst du dort ein Feature-Request stellen.
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  6. #6
    Contao-Nutzer
    Registriert seit
    13.03.2015.
    Beiträge
    12

    Standard

    Ups, sollte @kester heissen

  7. #7
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Hallo Dino,

    nein, das ist nicht geplant. Da ich den Array so wie er ist an verschiednen Stellen benutze, müsste ich zu viel umbauen.
    Aber evtl. baue ich dafür mal ein eigenes Feld, muss ich mal sehen.

    Gruß Kester
    Geändert von kmielke (04.07.2016 um 20:12 Uhr)
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  8. #8
    Contao-Nutzer
    Registriert seit
    13.03.2015.
    Beiträge
    12

    Standard

    Hi Kester,

    Danke für deine Antwort.

    Das mit dem eigenen Feld wäre prima . Soll ich ein Feature Request auf Github eingeben?

    Gruss
    Dino

  9. #9
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Hallo Pixi,

    in den nächsten Tagen kommt eine neue Version der Erweiterung, in der das dann drin ist. Es gibt ein neues Feld.
    PHP-Code:
        [allRecurrences] => Array
            (
                [
    1468242000] => Array
                    (
                        [
    int_start] => 1468242000
                        
    [int_end] => 1468249200
                        
    [str_start] => 11.07.2016 15:00
                        
    [str_end] => 11.07.2016 17:00
                    
    )

                [
    1470056400] => Array
                    (
                        [
    int_start] => 1470056400
                        
    [int_end] => 1470063600
                        
    [str_start] => 01.08.2016 15:00
                        
    [str_end] => 01.08.2016 17:00
                    
    )

                [
    1473080400] => Array
                    (
                        [
    int_start] => 1473076800
                        
    [int_end] => 1473084000
                        
    [str_start] => 05.09.2016 14:00
                        
    [str_end] => 05.09.2016 16:00
                    
    )

                [
    1475308800] => Array
                    (
                        [
    int_start] => 1475308800
                        
    [int_end] => 1475316000
                        
    [str_start] => 01.10.2016 10:00
                        
    [str_end] => 01.10.2016 12:00
                    
    )

                [
    1475499600] => Array
                    (
                        [
    int_start] => 1475499600
                        
    [int_end] => 1475506800
                        
    [str_start] => 03.10.2016 15:00
                        
    [str_end] => 03.10.2016 17:00
                    
    )

            ) 
    Die INT Werte enthalten den Timestamp, um eigene Formatierungen vornehmen zu können. Die STR Werte im Format \Date:arse($GLOBALS['TL_CONFIG']['datimFormat'], $date).

    Beispiel für's Template:
    PHP-Code:
        <?php if ($this->allRecurrences): ?>
            <p class="allRecurrences">
            <?php foreach ($this->allRecurrences as $recurrence): ?>
                <p>
                    <?= $recurrence['str_start'?>
                    <?= $recurrence['str_end'?>
                </p>
            <?php endforeach; ?>
            </p>
        <?php endif; ?>
    Gruß Kester
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  10. #10
    Contao-Nutzer
    Registriert seit
    13.03.2015.
    Beiträge
    12

    Beitrag

    Hi Kester, tolle Nachricht! *daumenhoch

    Viiiiielen Dank an dich, deine Erweiterung und deine Arbeitsmoral. Echt supi vorbildlich! Kann grad nicht aufhören zu schwärmen . Danke!

    Grüessli
    Dino

  11. #11
    Contao-Nutzer
    Registriert seit
    13.03.2015.
    Beiträge
    12

    Standard

    Hi Kester,

    Extension Update ausgeführt. Bei Ausnahmen wird die neue Zeit im Array ausgegeben, aber das Datum bleibt. Übersehe ich da was?

    Gruss
    Dino

  12. #12
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Hallo Pixi,

    ich weiss nicht was du meinst. Es wird so ausgegeben, wie oben kommentiert. Am Ende ist inkl. Ausnahmen alles drin.

    Gruß Kester
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  13. #13
    Contao-Nutzer
    Registriert seit
    21.08.2016.
    Beiträge
    11

    Frage

    Erstmal ein großes Lob für die tolle Erweiterung! Respekt für die ganze Arbeit!

    Da meine Frage repeateDates betrifft, hänge ich mich mal an den Thread ran.

    @kmielke, ich versuche gerade eine Event-Exportfunktion basierend auf deiner Erweiterung zu schreiben und dabei ist mir aufgefallen, dass das Feld "allRecurrences" in der Datenbank als TEXT gespeichert wird.
    Bei den Datenmengen die ich verarbeite ist das leider zu klein . Dabei komme ich öfters an die Grenze von 65536 Zeichen. Damit lässt sich bei mir auch nicht mehr das Array deserialisieren und die Wiederholungen auslesen.

    Setzte ich das Feld auf Longtext passt wieder alles.

    Was mich zu meinen zwei Fragen bringt:
    Wäre es möglich den Datentyp auf Longtext zu setzen?
    Und unterscheidet sich das Feld "allRecurrences" in irgendeinerweise von "repeatDates". Sprich werden in repeatDates die Ausnahmen für Wiederholgen genauso beachtet wir in allRecurrences? Dann könnte ich auch erstmal auf repeatDates zurückgreifen und mein Problem hätte sich so sehr schnell erledigt .

    Viele Grüße
    WiPhi

  14. #14
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Moin WiPhi, Danke Danke...

    Nimm repeatDates. Damit bist du auf der sicheren Seite. Die Existenzberechtigung von allRecurences fällt mir gerade nicht im Detail ein. [emoji6]
    Gruß Kester
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  15. #15
    Contao-Nutzer
    Registriert seit
    21.08.2016.
    Beiträge
    11

    Standard

    Dann mach ich das so

    Danke dir!

  16. #16
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.173

    Standard

    Hallo WiPhi,

    jetzt, wo ich diesen Thread noch mal lese, fällt mir ein, wofür allRecurrences war. Da ich nicht bereit war repeatDates zu ändern, habe ich allRecurrences ins leben gerufen. repeatDates enthält also keine Endzeit der Events. Wenn du die brauchst, dann brauchst du allRecurrences. Ändere es einfach auf blob null. Ich werde es anpassen, damit es in der nächsten Version fix drin ist. repeatDates ist aber auch text null.

    Gruß Kester

    Habe alle text null in blob null geändert. Sicher ist sicher...
    Geändert von kmielke (17.10.2016 um 16:38 Uhr)
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  17. #17
    Contao-Nutzer
    Registriert seit
    21.08.2016.
    Beiträge
    11

    Standard

    Ok, super, dann kann ich das ja dann intern wieder umstellen sobald das Update da ist Ich glaube aber dann werden alle berechneten Werte aus dem dem Feld gekillt, oder? Zumindest war das dann immer bei mir so. Das Event neu abspeichern und die Werte waren dann wieder da, nur als Hinweis, nicht dass sich dann jemand wundert

    Noch eine kurze Frage zu folgenden Zeilen in deiner tl_calender_events.php (686ff.):
    PHP-Code:
    while ($next <= $end) {
        
    $timetoadd '+ ' $arrRange['value'] . ' ' $unit;

        
    // Check if we are at the end
        
    if (!strtotime($timetoadd$next)) {
            break;
        }

        
    $strtotime strtotime($timetoadd$next);
        
    $next $strtotime;
        
    $weekday date('w'$next);

        
    //check if we are at the end
        
    if ($next >= $end) {
            break;
        }

        
    $store true;
        if (
    $dc->activeRecord->hideOnWeekend) {
            if (
    $weekday == || $weekday == 6) {
                
    $store false;
            }
        }

    ... 
    Bei
    PHP-Code:
    //check if we are at the end
    if ($next >= $end) {
         break;

    Müsste es dabei nicht
    PHP-Code:
    if ($next $end) { 
    lauten?

    Wenn man bspw. in ein Event eine Wiederholung von einer Woche einträgt, berechnet das System unter "Ende der Wiederholungen" das Ende nach genau einer Woche. Nur genau dieses wird durch die Abfrage nicht unter repeateDates / allRecurrences gespeichert. Es speichert nur die erste Wiederholung, also sozusagen das Startdatum. Vielleicht kannst du das auch nochmal prüfen

    Vielen Dank schon mal!

    Viele Grüße,
    WiPhi
    Geändert von WiPhi (18.10.2016 um 22:14 Uhr) Grund: Formatierung

  18. #18
    Contao-Nutzer
    Registriert seit
    13.03.2015.
    Beiträge
    12

    Standard

    kmielke

    Hallo Pixi,

    ich weiss nicht was du meinst. Es wird so ausgegeben, wie oben kommentiert. Am Ende ist inkl. Ausnahmen alles drin.

    Gruß Kester
    Hallo Kester,

    Entschuldige meine Abwesenheit, das Projekt ist etwas ins stocken geraten... :/

    Leider wird das Datum bei Ausnahmen nicht geändert.

    Beispiel:
    Event findet am 17.12.2016 13:00-17:00 statt und wiederholt sich nach 2 Wochen. Ausnahme nach Datum: 31.12.2016 10:00-14:00 wird um +2Tage verschoben, Zeit auch geändert. In [allRecurrences] bleibt das Datum 31.12.2016, die Zeit wird wie eingegeben geändert ausgegeben.

    Code:
     [allRecurrences] => a:2:{i:1481976000;a:4:{s:9:"int_start";i:1481976000;s:7:"int_end";i:1481990400;s:9:"str_start";s:16:"17.12.2016 13:00";s:7:"str_end";s:16:"17.12.2016 17:00";}i:1483185600;a:4:{s:9:"int_start";i:1483174800;s:7:"int_end";i:1483182000;s:9:"str_start";s:16:"31.12.2016 10:00";s:7:"str_end";s:16:"31.12.2016 14:00";}}
    Check in [exceptionList], da wird es erkannt, die 2 days sind bei "new_exception" drin:
    Code:
    [exceptionList] => a:1:{i:1483185600;a:8:{s:9:"exception";s:10:"1483185600";s:9:"new_start";s:5:"10:00";s:7:"new_end";s:5:"14:00";s:6:"action";s:4:"move";s:13:"new_exception";s:6:"2 days";s:8:"cssclass";s:0:"";s:6:"reason";s:0:"";s:14:"exception_date";s:16:"31.12.2016 13:00";}}
    Gruss
    Dino
    Geändert von Pixi (21.11.2016 um 08:06 Uhr)

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
  •