[TYPO3-UG-Muenster] Cal-Extension: Bericht vom NRW-Treffen am 25. Oktober 2008

bernd pier bernd.pier at gmx.de
Sun Oct 26 12:00:16 CET 2008


Danke Martin nicht nur für deine leckere Marmelade, sondern auch für 
deine schöne Zusammenfassung. Hatte auf sowas gehofft ;-).
ich hab noch eine Ergänzung, die Extension dmc_hooklist 
(http://typo3.org/extensions/repository/view/dmc_hooklist/current/)
zeigt alle im Code enthaltenen Hooks an. Das freut.
cu
Bernd

Martin Bless schrieb:
> Letzter Samstag im Monat: Da läutet die Glocke für das regelmäßige
> Treffen der TYPO3 Usergroup NRW. Diesmal mit einem ganz besonderen
> Event: Mario Matzulla ist da und lässt sein Baby, die CAL-Extension
> leben. Das ist nun wirklich Grund genug, endlich einmal den Sprung von
> Münster nach Düsseldorf zu machen. Und, das Beste kommt nicht nur zum
> Schluss, sondern steht gerne auch mal am Anfang: Es hat sich gelohnt!
> Da konnte auch WDR2 nichts dran ändern, der uns Nebel angedroht hatte,
> der dann noch nicht einmal da war. Sehr schöne Räumlichkeiten in der
> Marketing-Factory, das macht Spaß. Und gut dass ich da instinktiv noch
> Marmelade mitgebracht habe: Sehe jetzt erst, dass es dazu ja auch noch
> einen Aufruf gab.
> 
> Thema hatten wir "nur" eins: Die CAL-Extension.
> 
> Die Beschäftigung mit Zeitphänomenen ist sicher ein uraltes "Hobby"
> der Menschheit und auch eng mit astronomischen Gegebenheiten
> verknüpft. Man denke einmal an die Himmelsscheibe von Nebra:
>    http://de.wikipedia.org/wiki/Himmelsscheibe_von_Nebra
>    
> Vielleicht nicht nur "Hobby", sondern schnell auch eine Notwendigkeit,
> und so sind auf der Welt viele Kalender entstanden. Die Schwierigkeit
> der Kalenderrechnung ergibt sich daraus, dass Erdumlaufbahn,
> Erddrehung und Mondumlauf in eine brauchbare Beziehung gesetzt werden
> müssen. Und die Zahlen teilen sich nunmal nicht glatt und sind zudem
> noch nichtmal konstant. Wer sich über die verschiedenen
> Kalenderrechnungen informieren will, wird hier umfassend "bedient":
>    http://emr.cs.iit.edu/home/reingold/calendar-book/third-edition/
> 
> Das ist ein starkes Werk. Besonders gut gefällt mir ja der Kalender,
> der zum Teil noch in Agypten gilt: Das Jahr hat immer 12 mal 30 Tage,
> und dann macht man einfach noch 5 oder 6 Feiertage.
> 
> Nun zu CAL, DER TYPO3-Kalenderextension. Alles, was ich hier schreibe,
> entstammt meinen privaten Notizen. Für das, was richtig ist, geht das
> Lob an die Autoren und Vortragenden. Die Fehler gehören mir und dürfen
> gerne korrigiert werden. Der Vortrag stand unter dem Motto "Cooking
> with Maria" und Chefköche sind:
> 
> - Mario Matzulla mit live Vortrag
> - Jeff Segars per Video
> - Steffen Kamper mit live Demo von Bespielen
> - Franz Koch.
> 
> Natürlich sind wir neugierig, und damit auch ja nichts untergeht,
> gleich hier:
>    http://www.matzullas.de/mario.0.html
>    http://jeffsegars.com/
>    http://www.sk-typo3.de/
> 
> Bei der Ein- und Wertschätzung hilft vielleicht die Info, dass die
> Entwicklungszeit im Dezember 2008 bereits drei Jahre beträgt.
> 
> Ein Dreh- und Angelpunkt ist:
> 
>    http://typo3-calendar.org/
> 
> Reingucken!
> 
> CAL hat historische Wurzeln in früheren Kalender-Extensions und
> PHP-Anwendungen, ist nun aber gründlich durchdacht und vom alten Code
> ist praktisch nichts mehr geblieben. Insbesondere das Fundament ist
> solide. Architektonisch spielen Model-View-Controller-Überlegungen
> wohl eine starke Rolle:
>    http://de.wikipedia.org/wiki/MVC
>    
> Für CAL gibt's hier ein imposantes Schaubild (PDF, SVG):
>    http://typo3-calendar.org/1639.0.html 
> 
> Was mich besonders begeistert ist, dass die vier CAL-Miraculixe nicht
> einen proprietären Datensaft nach eigenem Rezept kochen, sondern
> versuchen, sich möglichst an den iCalendar-Standard zu halten:
>    http://de.wikipedia.org/wiki/ICalendar
> 
> Das Regelwerk hierzu findet sich in den "Aufrufen zur Stellungnahme",
> den RFCs:
>    http://tools.ietf.org/html/rfc2445
> 
> "ical", "ics", "icalendar" sind wichtige Stichworte hierzu, die man
> sich merken sollte. Sie beschreiben Austauschformate von
> Kalenderdaten, MIME-Type "text/calendar".
> 
> "CAL kann das Standardformat exportieren und importieren." Das ist
> eine Aussage, die man gar nicht hoch genug schäzten kann.
> 
> Wenn man CAL verwenden will, benötigt man die Extension 
>    http://typo3.org/extensions/repository/view/cal/current/
> 
> und den den ein und anderen Sysordner. Zuerst legt man immer eine
> Kalender an und kann hier unterscheiden zwischen privatem und
> öffentlichem Kalender. Private werden nur von bestimmten FeUsern und
> -gruppen gesehen. Optionale kann man Kalenderkategorien anlegen. Das
> eigentliche "Fleisch", also das Datenmaterial für diese "Knochen" sind
> dann die Events, die immer zu (mindestens?) einem Kalender gehören. 
> 
> Preisfrage: Was kennzeichnet einen Event? Er hat jedenfalls IMMER ein
> Anfangsdatum und eine Dauer bzw. Endedatum. "Meeting 10 Uhr" ist also
> KEIN Event! Events können auch im Backend eingegeben werden. In den
> Feldern "HeaderStyle" und "BodyStyle" kann man etwas eintragen. Sie
> werden später ausgewertet und in CSS-Klassen umgesetzt, so dass man
> Events z. B. farblich unterlegen kann. Es gibt auch (ca.) sechs
> vorbereitete, wie red, green, blue usw. sowie "default". Genaue Namen
> bitte nachgucken.
> 
> Bei der Vorstellung der Basics haben wir unmittelbar kleinere Ausflüge
> zu den Tipps und Tricks und "Was man wissen muss" usw. gemacht. Die
> Details sprengen hier den Rahmen, aber dafür gibt es ja auch mehr als
> 150 Seiten Doku:
> 
> http://typo3.org/documentation/document-library/extension-manuals/cal/1.1.0/view/
>    
> Deshalb hier vielleicht eher die Hinweise auf einige Prinzipien, Tipps
> und Fallgruben ("pitfalls"):
> 
> - Listenauswahl im Kalenderdatensatztyp: Hier ist der erste Punkt oft
> der, der als Default zum Tragen kommt.
> 
> - FAQ: Wie mache ich ne Listenansicht für XXX? Per Template! (=
> Text-Template-File).
> 
> - Wichtig ist es natürlich immer, die Startingpoints richtig zu
> setzen.
> 
> - Wenn man Links zB auf die Detail-Ansicht haben will, muss man im
> Flexform auch die Seite eintragen, auf der die Detailansicht
> erscheinen soll. Wie soll sonst der Link generiert werden?
> 
> - TYPO3 v4.3 bringt nächsten eine neue Funktion mit, die den Aufbau
> der PIDList (also das Auswerten der Startingpoints) erheblich
> beschleunigt.
> 
> - Es gibt ein Typoscript-Feld im Plugin, mit dem auch User, die sonst
> nicht an die TS-Einstellungen kommen, letzte Einstellungen machen
> können. Andererseits kann der Admin dies nun auch wieder disablen.
> Schöne gute Konfigwelt!
> 
> - Die Kalendermaschine in CAL kann mit JEDER Art von Event umgehen.
> Allerdings muss der Event selbst wissen, wie er sich gerne darstellen
> möchte. (Objektorientierung)
> 
> - Für ALLE Events wird die Ausgabe der Events im Event-Template
> (Text-Datei) definiert. Genau dort und auch NUR dort. Alle anderen
> Templates enthalten nur Referenzen auf diese Definitionen.
> 
> - Will man ICS-Daten importieren, so legt man einen Kalender vom
> entsprechenden Typ an. Der zeigt dann alle Daten an, ist aber
> ReadOnly. Aber, ta ta ta taaa, da kann ein Trick doch nützlich werden:
> Ändert man tx_cal_event.isTemp=1 in 0, so ist der Kalender editierbar.
> Use at your own risk! Aber, der Nutzen: Vielleicht kann man Kalender
> so einfach exportieren, an anderer Stelle wieder importieren und dann
> einfach normal nutzen?
> 
> Tipp:
> Gelobt wurde die "Gabriel-Extension". Auch wenn man nur einen Cronjob
> anlegt, kann man damit direkt aus TYPO3 heraus verschiedene Aufgaben
> verwalten. ZB um Kalender, die auf einem ICS-Feed basieren, regelmäßig
> zu aktualisieren.
> http://typo3.org/extensions/repository/view/gabriel/current/
> http://typo3.org/extensions/repository/view/ml_tut_gabriel/current/
> 
> - CAL unterstützt als Ausgabe auch
>    einen ICS-Feed, Standardseitentyp 150
>    einen RSS-Feed, Standardseitentyp 151
> 
> - Kalenderseiten werden ggf. durchaus in TYPO3 gecached. Allerdings
> bringt CAL eine eigene Funktion mit, die dafür sorgt, dass nicht auch
> noch gigantischerweise Zwischenschritte gecached werden, wenn sie bei
> den Subpart- und Markern (evt. nur minimal) etwas geändert hat.
> Kalender, die editierbar sind, werden nicht gecached.
> 
> - Das Typoscript, dass bei CAL zum Einsatz kommt, ist SEHR SEHR lang.
> Und kann auf den ersten Blick verwirrend aussehen. Es folgt jedoch
> weitgehend diesem prinzipiellen Aufbau:
> plugin.tx_cal_controller {
> 	((view)).((object)).((property))
> 	# Beispiel:
> 	month.event.title.crop=5
> }
> WICHTIG: Praktisch alle Felder (Properties?) haben
> stdWrap-Eigenschaften, können also das, was ein TS-TEXT-Objekt kann.
> 
> - Clever und endlich einmal: Die Renderingmaschine in CAL ist
> "Template-getrieben". Soll heißen: CAL guckt in den Templates und im
> TS nach, welche Ausgaben benötigt werden, und genau die werden dann
> berechnet. Andersherum ginge es vermutlich auch gar nicht: Man kann
> nicht alle denkbaren Ausgaben errechnen, um dann nur wenige zu
> verwenden.
> 
> - Fallgrube: Für Allday-Events und normale Events existieren getrennte
> Templates, die beide angepasst werden müssen. Ähnliches kann analog an
> anderer Stelle vorkommen.
> 
> - Unterschiedliche Zeilendarstellung für gerade und ungerade Zeile in
> der Listenansicht ist bereits vorgesehen. Kann per TS auf mehr
> Varianten erweitert werden.
> 
> - Entwickler, aufgepasst: Setze in der localconf.php diese drei
> Zeilen, und dir wird immer etwas angezeigt und mitgeteilt:
>    $TYPO3_CONF_VARS['SYS']['sqlDebug'] = 1;
>    $TYPO3_CONF_VARS['SYS']['displayErrors'] = 1;
>    $TYPO3_CONF_VARS['SYS']['displayErrors'] = 1;
> NICHT VERGESSEN: Später wieder ausschalten!!!
> 
> 
> - Steffen Kamper hat gezeigt, wie er über den
> Standard-Hook-Mechanismus von TYPO3 die Hooks in CAL verwendet. Suche
> nach "hook" in den CAL-Quelltexten und schlage nach, welche Parameter
> erforderlich sind.
> 
> - CAL verwendet die PEAR date-Klasse.
>    http://pear.php.net/
>    http://pear.php.net/package/Date
> Wer die bereits installiert hat: Glückwunsch!
> 
> - Es gibt auch eine TYPO3-Extension, um PEAR-Klassen zu verwalten:
>    http://typo3.org/extensions/repository/view/pear/current/
> 
> - Aber auch der, der PEAR nicht installiert hat, wird bedient: Als
> "Fallback" bringt CAL eigene Funktionen mit (nachteilig?).
> 
> - Intern wird jeder Kalender letztlich aus einem ggf. langen, großen
> PHP-Array von Events gerendert, dass nach Datum, Uhrzeit und Event
> hierarchisiet ist. Da kann man natürlich PHP-mäßig "reinstochern".
> 
> - Man KANN sich ALLE Templates aus der CAL-Extension nach fileadmin/
> kopieren, und braucht nur einen TS-Wert zu ändern, um diese zu nutzen.
> Wird aber leicht unübersichtlich.
> 
> 
> TIPP:
> Steffen hat gezeigt, wie man im BE im TS-Objectbrowser sich sozusagen
> "Shortcuts" auf Teilbereiche des TS anlegt, indem man unten auf der
> Seite den OL-Link benutzt. Steht für Object-List, und kaum jemand
> weiß, was das bedeutet. Damit kann man die Dropdown-Liste für das
> Anspringen bestimmter TS-Punkte erweiteren!
> 
> - Fallgrube: Die TS-Einstellungen zur Legende unterm Kalender sind u.
> U. nicht leicht in den Templates zu finden, denn die Legende wird aus
> dem Tree der Kategorien generiert.
> 
>    
> ========= Kann denn Typoscript Sünde sein? ============
> 
> Auch dann, wenn es korrekt ist? Ja, das kann es! Das Problem kann die
> schiere Masse sein. Zuuuu viiiieeeel Typoscript kann den Zeit- und
> Speicher-Rahmen sprengen. Deshalb der dringende Rat von Steffen und
> Mario: 
> 
> (a) Lege alles an TS tot, was nicht benötigt wird:
> 
> plugin.tx_cal_controller.((object)) >
> usw.   
> 
> (b) Benutze niemals Frontend-, ICS- oder RSS-Ausgabe auf der gleichen
> Seite.
> 
> ========== Liste möglicher Sünden ENDE =============
> 
> - Studiere die Datei setup.txt: Es gibt per TS ausgefeilte
> Möglichkeiten zur Rechte-Einstellung. Unter anderem hat der Wert
> "time_Offset" Einfluss darauf, wie weit in Vergangenheit (und/oder
> Zukunft?) jemand Termine eingeben kann.
> 
> - Was es mit den %%%LABELS%%% auf sich hat, habe ich so schnell nicht
> verstanden. Jedenfalls funktioniert es und sorgt dafür, dass die
> richtigen Werte zum richtigen Zeitpunkt da sind. Wie war das also
> noch?
> 
> - Es gibt in CAL "Exception-Events". Trägt man einen solchen ein, kann
> er dafür sorgen, dass ein ansonsten regelmäßiger Event an einem
> bestimmten Zeitpunkt ausfällt. Es muss sich aber um einen regelmäßigen
> handeln nicht nur um eine Wiederholung. Es bleibt der eigenen
> Überlegung überlassen, was passiert, wenn nun ein Termin alle drei
> Tage stattfindet aber alle fünf Tage ausfällt. Viel Spaß!
> 
> - Tipp und Frage:
> Conditions im TS sind ggf. schneller als EXT-Templates. Hat da jemand
> eine Quelle zu?
> 
> ACHTUNG:
> Es sind vor allem die wiederkehrenden Termine, mit denen CAL den
> Server an den Rand des Wahnsinns treiben kann. Da muss sehr viel
> berechnet werden. 
> 
> Call for feedback:
> 
> Es gibt in CAL deshalb zur Zeit ein "experimental feature"
> useNewRecurringModel (etwa dieser Name). Hierzu hätte Mario gerne
> Feedback.
> 
> Update von älteren CAL-Version: Es gibt dazu ein Updatescript. Und der
> Export- und Import von ICS-Daten ist auch eine Idee.
> 
> Dann war da noch was zu GoogleMaps ... Wie war das? CAL unterstützt
> vor allem die TYPO3-Extension von der WEC? Hhm, welche ist das?
> 
> Natürlich wurden auch bestehende Bugs angesprochen und noch viel mehr
> Feature-Requests gleich vor Ort in die Runde getragen. Hier sei
> gesagt: Es macht überhaupt keinen Sinn, diese per Mail irgendwo hin zu
> schicken. Hier ist der richtige Ort dafür:
>    http://svn.webempoweredchurch.org/projects/calendar/issues
> 
> Was hier eingetragen ist, geht auf alle Fälle schon einmal nicht
> verloren. Und Jeff und Mario können hier effizient den Dingen
> nachgehen. Die CAL Version 2.0 ist hier gleichsam das Auffangbecken
> visionäre Überlegungen. 
> 
> Aktuelle Versionen sind per Subversion hier zu erhalten:
>    http://svn.webempoweredchurch.org/snapshots/show/calendar
> 
> Wann immer von Entwicklerseite ein Submit gemacht wird, also für jedes
> neue Release, sollte dort unmittelbar ein neuer Build erstellt werden,
> nicht nur "nightly". Siehe auch:
>    http://de.wikipedia.org/wiki/Subversion_(Software)
> 
> 
> Fazit:
> Fünf Stunden waren veranschlagt, und die Zeit ist vergangen wie im
> Fluge. Es hat Spaß gemacht und sich SEHR gelohnt. Ein herzliches
> Dankeschön an alle Beteiligten!
> 
> Ach ja, die Marmeladen:
> 
> (1) 1000g Rhabarber, 500g Kiwis, 500g Birnen, 1000g Gelierzucker 2 zu
> 1, 4 Minuten kochen, heiß in saubere Gläser, für 10 Minuten aufen den
> Kopf stellen, fettich.
> Die Birnen und Kiwis nicht zu reif (Aldi ...)
> 
> (2) 1000g Rhabarber, 1000g Erbeeren, 1000g Gelierzucker 2 zu 1.
> 
> Bis denne
> 
> Martin
> 


More information about the TYPO3-UG-Muenster mailing list