• Ich habe eine kleine Kalenderklasse geschrieben, die ein Kalenderblatt zu einem Monat als HTML-Tabelle erzeugt.
    Wochenenden und Termin die man einfügen kann, können hervorgehoben werden, die entsprechenden Zellen haben eigene Id's für CSS-Definitionen.
    Ich habe es mir so geschrieben, dass es von den verschiedenen Id's jeweils noch zwei Varianten gibt, einmal mit vorangestelltem "thumb" im Id-Namen, einmal oben.
    In der thumb-Variante werden Bemerkungen zu eingetragenen Termin in ein title-Tag der Tabellenzelle für den entsprechenden Tag geschrieben.
    In der non-thumb-Variante werden diese Bemerkungen direkt in die Zelle unter den Tag geschrieben.

    Ganz glücklich bin ich mit der Sache noch nicht, für konstruktive Kritik, Anregungen, Verbesserungsvorschläge bin ich dankbar. Besonders bei der Methode getCalendar() bin ich mir noch absolut nicht sicher ob das so optimal umgesetzt ist.

    Benötigte CSS-Definitionen:
    table#Calendar
    table#thumbCalendar
    td#CalWe
    td#thumbCalWe
    td#CalEvent
    td#thumbCalEvent
    div#event (in der non-thumb-Version für die Ausgabe der Termindescriptions)

    Methoden:
    __construct($month=false,$year=false)
    $month und $year sind optional, defaultwerte sind der aktuelle Monat des aktuellen Jahres.

    setMonth($month)

    getMonth()

    setYear($year)

    getYear()

    setWe($we)
    Mögliche Parameter 1 oder 2. Legt fest Ob nur der Sonntag (=1) als Wochenendtag dargestetllt wird, oder Samstag und Sonntag (=2).

    getWe()

    addDate($timestamp,$descr)
    Erwartet den Unixtimestamp für den Tag (aus mktime(0,0,0,$monat,$tag,$jahr)) und eine Beschreibung des Termins.
    Mehrere Termine für einen Tag sind möglich.

    getCalendar($thumb=true)
    Gibt die HTML-Tabelle für das Kalenderblatt zurück. Default wird die thumbversion geliefert, die nonthumbversion gibts mit getCalendar(false).

    class.calendar.php :

    beispiel.php :

    beispiel.css :

    Wie gesagt, Erweiterungs- und/oder Verbesserungsvorschläge sind gern gesehen.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    Einmal editiert, zuletzt von SinnlosS (20. Mai 2009 um 16:04)

  • Yo, ich wollte die Klasse halt möglichst abstrakt und universell nutzbar machen, die Einbindung einer db-nutzung ist ja dann abhängig von den tabellen aus denen die termine gezogen werden.
    Dafür werde ich aber auch noch eine Tochterklasse schreiben, als Terminkalender mit vorgefertigter Tabellenstruktur.
    Momentan werden da Termine noch gar nicht gespeichert, die können halt über addDate() aus beliebigen Quellen eingefügt werden.

    Das bisherige ist halt was was ich jetzt mehr oder weniger schnelle eben runtergeschrieben habe, daher auch die Frage nach weiteren Vorschlägen. Vernünftiges Error-Handling will ich da auch noch implementieren.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

    Einmal editiert, zuletzt von SinnlosS (20. Mai 2009 um 14:41)

  • Warum nimmst du keinen Timestamp?
    Damit kann man viel einfacher rechnen und Computer wollen rechnen. :D


    Wo meinst du jetzt? Die Daten werden ja als timestamp übergeben.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Ich weiß nicht, inwiefern das mit der Ausgabe richtig möglich ist, aber wenn du statt Jahr und Monat einfach Anfangs- und Endtimestamp speicherst, bist du flexibler und brauchst bei addDate nur per <-Operator zu prüfen.

  • Ja bei diesen "Feinheiten" bin ich momentan noch am rumprobieren.
    Bei der Tochterklasse terminKalender, an der ich noch am feilen bin, gibt es funktionen zur Erstellung eines Kalenderblattes für einen Monat oder für ein Jahr.
    Ich bin noch am überlegen inwieweit es vllt. auch nötig/sinnvoll wäre, ein Start- und Enddatum für den Kalender anzugeben.
    Naja, und noch ein paar andere Kleinigkeiten.

    Ich werd vermutlich am WE erstmal eine lauffähige Version für einen Terminkalender posten und dann gegebenenfalls auf Anregungen hin noch anpassen. Die bisher gepostete calendar-Klasse wurde in Kleinigkeiten auch noch überarbeitet.

    Die terminKalender-Klasse wird vorerst nutzbar sein mit mysql oder mysqli.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • was ich hier gut finde: dein erster teil ist bereits funktionsfähig und deine weiterentwicklungen haben von dir vorgegebene termine...
    sollten sich einige hier im scriptarchiv ne scheibe von abschneiden.. weiter so!

  • Ist leider doch noch nicht fertig geworden, Schwesterchen war über Pfingsten zu Besuch und ich war die meiste Zeit unterwegs.
    Wird aber im Laufe dieser Woche auf jedenfall was.

    Ich poste grad mal den aktuellen Zwischenstand, vielleicht fallen jemandem beim rüberschauen Anregungen ein.
    Die Klasse eventCalendar ist noch nicht komplett durchgetestet, wenn die vorerst endgültige Version kommt werde ich das hier auch wieder rauseditieren. Beschreibung der Methoden kommt auch dann.

    class.calendar.php

    class.eventCalendar.php

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook