Andreas: Serientermine

Hallo,
habe ein Terminkalender in PHP und möchte eine Serientermin-Funktion dazu realisieren ähnlich Outlook.

Die ganzen automatisch ergänzten Termine bis zum St. Nimmerleinstag in die Tabelle Einzutragen ist ja nicht der beste Weg.
Also die Terminvorgaben in einer extra Tabelle speichern - aber wie?
Ich denk mir dass diese Termine dann erst beim Anzeigen des Kalenders in diesen eingefügt werden. Aber das scheint mir doch eine recht komplexe Sache zu sein.

Gibts zu diesem Thema schon Scripte oder was? Habe jedenfalls nichts gefunden.

Gruß Andreas

  1. Hello,

    habe ein Terminkalender in PHP und möchte eine Serientermin-Funktion dazu realisieren ähnlich Outlook.

    Kenne ich nicht [*]

    Die ganzen automatisch ergänzten Termine bis zum St. Nimmerleinstag in die Tabelle Einzutragen ist ja nicht der beste Weg.

    Wie ist es denn im wahren Leben?
    Könnte man da 'was abgucken?

    [*] Wenn es um neue Lösungswerge geht ...

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. Hallo...

    habe ein Terminkalender in PHP und möchte eine Serientermin-Funktion dazu realisieren ähnlich Outlook.

    Die ganzen automatisch ergänzten Termine bis zum St. Nimmerleinstag in die Tabelle Einzutragen ist ja nicht der beste Weg.
    Also die Terminvorgaben in einer extra Tabelle speichern - aber wie?

    Eventuell so:
    Startdatum - Intervall(e) - optionaler Enddatum

    Also wenn am 4. November 2007 etwas beginnt und es alle 7 Tage stattfinden soll bis zum 4. November 2008 solange den Intervall dazu addieren bis der Enddatum erreicht ist, ansonsten immer

    Grüße Helmut

  3. Hallo,

    es ist nicht notwendig jeden Termin in die Datenbank einzutragen, das währen auch ein paar zuviel :-)

    Am einfachsten ist es, wenn du bestimmte Regeln erstellst und diese dann mit PHP umsetzt.

    Mögliche Regeln währen z.B.

    Jeden Donnerstag.
    Alle 2 Wochen immer Montag und Donnerstag.

    Das ganze kann recht umfangreich werden, je nachdem wie genau die die Regeln erstellen möchtest.

    Weiters ist noch zu überlegen, wie du Termine handhabst, die sich verschieben oder ausfallen.

    Leider ist mir auch kein Script bekannt, mit dem es möglich ist.

    Wenn du aber halbwegs gut PHP kannst wird das Problem in ein paar Tagen zu lösen sein. Das schwierigste ist sich zu überlegen wie man die Regeln strukturiert, um diese dann auch weiterzuverarbeiten. Dafür ist es notwendig einen kleinen Parser zu programmieren.

    Beispiele:
    Syntax: serie(wochentage; wochen; anfangsdatum; enddatum; [ausnahmen])

    serie(do;1;2007-11-01;2008-04-01)
    Jeden Donnerstag vom 1. November 2007 bis 1. April 2008

    serie(mo,mi,fr;2;2007-11-01;2008-04-01)
    Jden Montag, Mittwoch, Freitag alle 2 Wochen vom 1. November 2007 bis 1. April 2008

    serie(do;1;2007-11-01;2008-04-01;2007-11-22,2007-11-29)
    Jeden Donnerstag ausser am 22. und 29. November 2007

    Das ganze gehört noch um Uhrzeit und Ganztags ergänzt. Für den Anfang sollte dir das aber genug Ideen für dein Programm liefern.

    Das ganze kannst du dann leicht mit den Arrayfunktionen von PHP "parsen" und in deinem Programm umsetzen.

    mfg Gerhard

    1. Hello,

      Am einfachsten ist es, wenn du bestimmte Regeln erstellst und diese dann mit PHP umsetzt.

      Mögliche Regeln währen z.B.

      Jeden Donnerstag.
      Alle 2 Wochen immer Montag und Donnerstag.

      Derartige Vorgehensweise hat dann aber auch Einfluss auf sämtliche Abfragemethoden die es gibt:

      Wieviele Termien hat Herr Müller?
      Wer ist wann in welchem Raum?
      Wann brauche ich das Auto?

      Usw.

      Je nachdem, wie der Kalender abgefragt werden soll und was er sonst noch enthält, kommen betroffene Methoden hinzu oder fallen weg.

      Eine linearisierte Verwaltung ist daher wesentlich einfacher. Und auf die paar Bytes für die Termin-ID kommt es doch auch nicht mehr an

      Terminart     Termin           Kalender

      ID_ART        ID_Termin        ID_Eintrag
      Einzel        ID_Art           ID_Termin
      Serie         Subject          ID_Person
      ...                            Beginn
                                     Dauer

      Es können sich ja auch durchaus termin in der Vormerkung überschneiden.
      Das ergibt sich nachher erst bei der Auswertung, welcher dann effektiv werden soll

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

      1. Hallo
        die Termine sind nicht personalisiert - ist Terminkalender des Vereins.
        Die Serientypen sind ja bekannt, also z.B. bestimmter Wochentag oder bestimmte Position eines Wochentags im Monat (z.B. letzter Freitag im Monat)

        Die Tabelle würde dann so aussehen:

        Position    Wochentag    Bezug    Start      Ende(Dauer)
        jeden       Dienstag     Woche    10.11.07   09.11.08
        erster      Freitag      Monat    10.11.07   09.05.08
        zweiter        "           "         "           "
        dritter        "           "         "           "
        letzter        "           "         "           "

        Bzw. halt die ID der Werte in Detailtabellen statt Klartext.
        Was meint ihr, würde das so funktionieren?

        Gruß Andreas