Benutzer:Dan-yell/Kalender-Konzeption/technische Umsetzung
In Bearbeitung durch Dan-yell
|
- eine Benutzer-Seite
Achtung: Diese Seite ist wenig aktuell und lässt erkennen, dass der Ersteller Unterstützung durch erfahrene Programmierer*innen braucht, um die Programmierung der verschiedenen Front- und Backends zu konkretisieren.
Gespräche mit Ehrenamtlichen bei Wikidata in Berlin ergaben, dass die (Teil)-Umsetzung durch ein dort angedocktes Projekt denkbar wäre.
Neu entwickelte Lösungen sollten unter einer Creative-Commons-Lizenz veröffentlichbar sein und durch Dritte nachvollziehbare Strukturen besitzen.
Funktion 1: Kollaborative Bearbeitung einer Termin-Datenbank
Ziele: Transparenz und Nachvollziehbarkeit, Nutzerrechteverwaltung, bequeme Eingabe- und Importmöglichkeiten, komfortables Einfügen von Tags (hier mehr dazu).
Neu entwickelte Lösung
- Ein Entwurf besteht bereits im Bearbeitungssystem von http://www.Lifeguide-München.de
- Benutzergruppen mit unterschiedlichen Bearbeitungsrechten
- Bearbeitungen nachvollziehbar (hier allerdings nur Autor und Datum, nicht konkrete Änderung!)
- Wesentliche Lücken bestehen z.B. bei der Einbindung von Tags
Lösung durch Nutzung bestehender Services
- Mediawiki mit "gesichtete Versionen"-Erweiterung
- -> Realistische Option, stellt aber besondere Anforderung an die weiteren Schritte
- Jeder Termin ist eine eigene Wiki-Seite
Funktion 2: Terminzusammenstellung nach Tags
Ziel: Befehl zur Tag-gestützten Terminauswahl wird durch Parameter in der iCalendar-URL gegeben.
Neu entwickelte Lösung
- URL-gesteuerte Abfrage von Daten (vgl. z.B. die sofortige Generierung beliebig dimensionierter Bilder durch Mediawiki-Server: [1], [2], [3])
- Dateiendung (.ical, .html, .PDF) bestimmt, in welchem Format die gefilterten Terminergebnisse ausgegeben werden (das funktionierte z.B. beim leider beendeten Projekt "editgrid").
- Optional: weitere Parameter für bevorzugte Sprache, Sortierung, Zeitraum, etc.
(Not)Lösung durch Nutzung bestehender Services
- Bei Nutzung von Mediawiki als Datenbank: Nutzung der Erweiterung DynamicPageList
- Kein URL-gesteuerter Abruf, Tagauswahl müsste fest ins Wiki eingetragen werden
- Einzige mögliche Operatoren: NOT, AND
- Online-Tabellenkalkulation
- Yahoo! Pipes (Hinweis: Das gibt es inzwischen nicht mehr)
Funktion 3: Ausgabe als iCalendar-Feed
Neu entwickelte Lösung
- Auswahl aus der Datenbank wird gemäß dem ICalendar-Syntax (.ics, .ifb, .iCal, .iFBf) bei jedem Feed-Abruf zusammengestellt.
- Ausgabe / Abruf optional auch als
- CSV-Datei
- TXT-Datei in verschiedenen Ausführungen (Rahmendaten, Titel, Zusatzinfos)
- HTML-Datei in verschiedenen Ausführungen (wie bei TXT-Datei + Formate + Verlinkungen)
- In Wiki-Seiten einbindbarer content
- In gängigen CMS einbindbares Widget
Lösung durch Nutzung bestehender Services (eher gar nicht möglich)
- Yahoo! Pipes
- Online-Tabellenkalkulation
- Das leider nicht mehr existierende Editgrid bot an, einzelne Zellen mit beliebiger Dateiendung einzeln abzurufen.
- Via ein Google Spreadsheet und einen Google calendar
Einbindung des iCalendar-Feeds
- Drupal (Anleitungen):
- Joomla: http://ezinearticles.com/?Importing-iCalendar-Events-Into-a-Joomla-Calendar&id=7333198
- Typo3: "Calendar Base" http://typo3.org/extension-manuals/cal/1.5.3/view/
- Wordpress:
-
- Importing and exporting iCalendar (.ics) feeds is one of the strongest features of the All-in-One Event Calendar system
- nur Terminliste: http://wordpress.org/plugins/amr-ical-events-list/
- nur Terminliste: http://wordpress.org/plugins/wordpress-ics-importer/
- unzählige weitere: http://wordpress.org/plugins/tags/icalendar
- Alternativen, falls Funktion bei weiteren Systemen fehlt oder unbefriedigend ist:
- Feed in Google Kalender abonnieren und freigeben; von Google bereitgestellte Iframe-URLs einbinden
- "IcalJs" von Zetabee (Bsp.): https://zetabee.com/icaljs/
- "PHPiCalendar": http://sourceforge.net/projects/phpicalendar/
- http://time.ly/
- Mit zusätzlichem Programmieraufwand: Eigener iframe, der vom Server des Feedgenerators miterzeugt wird (z.B. vgl. Funktionalität von Google calendar oder einfach nur Terminliste)