Nun, selbst gemacht müsste er nicht mal sein, vieleicht gibt's ja was, das man einfach integrieren könnte.
Aber wahrscheinlich würde gar nicht viel fehlen, man müsste ja erstmal nur die 3 vorhandenen Implementierungen (GoggleV3, iCloud und ownCloud) zusammenführen.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Google Calendar - update für "neue" GoogleAPI
Einklappen
X
-
Wenn ich's könnte - ich würd's machen ...
Allerdings finde ich in Deinen vier Sätzen genau sieben Fachbegriffe, die ich zwar schonmal gehört habe, aber erstmal googlen muss, um die von Dir gemachten Aussagen in der Tiefe zu verstehen.
Lass es uns in 2 Schritten angehen, die paar Zeilen kopieren und eine neue Datei anzulegen ist doch in 5 Minuten gemacht. Zumal es sowieso schon etliche Leute nutzen.
Ich kann mich gern in die von Dir genannten Begriffe einlesen und mich so einfuchsen, dass ich php nicht nur lesen, sondern damit auch halbwegs vernünftig coden kann - so ist der generische CalDAV-Client aber auch nicht in 2 Tagen fertig ...
/tom
Einen Kommentar schreiben:
-
Damit ich es aufnehmen würde, müsste es auf den ics-Parser umgeschrieben werden, ich mag keine doppelten Implementierungen.
Genau genommen müsste es mit dem iCloud-Treiber vereint werden, den eigentlich implementieren diese beide doch einfach CalDav.
Und auch der GoogleV3 implementiert übrigens CalDav, nur wird dort OAuth2 anstelle von HTTP Basic Authentication eingesetzt und ein API-Key benötigt.
Mein Traum wäre ein einziger, generischer CalDav-Client, der alldies vereint und auch noch konfigurierbar ist.
Einen Kommentar schreiben:
-
Neben einigen anderen Feldern, die noch nicht abgedeckt werden, kennen viele Provider halt auch Kategorien, siehe auch iCalendar Spezifikation hier, Abschnitt 4.8.Zitat von smai Beitrag anzeigenUnd was soll mit den categories geschehen? Einfach für die Vergabe von Icons zur Verfügung stehen?
Beispiel: Schau Dir mal das Müll-Widget weiter oben an - zur Zeit werden da Termine nach Namen gefiltert (z.B. Blaue Tonne, Gelbe Tonne etc). Das wird sich mit den von Dir oben beschriebenen Filtern nicht ändern.
Eleganter wäre eine Kategorie 'Müll', wie ich sie zwar schon in meinem ownCloud-Kalender oder in Outlook definieren kann, die derzeit nirgendwo ausgewertet wird.
Jetzt kann ich in dem Widget schreiben: Liste alle Termine, die der Kategorie 'Müll' angehören, egal was im Titel steht.
Genauso könnte man z.B. Familienmitgliedern jeweils eine Kategorie zuweisen und für die Ausgabe entsprechend filtern / gruppieren, und Deine Filter noch zusätzlich für die Zuweisung von Icons / Farben nutzen..
Ich gebe zu, das ist kein Endnutzer-Feature, sondern eher etwas für Leute, die eigene Widgets und Erweiterungen schreiben.
Nimm's halt auf - wer, wenn nicht Du?Zitat von smai Beitrag anzeigenownCloud ist übrigens gar nicht Teil der SV.
Eine Möglichkeit mehr, den nicht mehr funktionierenden Google-Kalender zu ersetzen. Ich bin mir sicher, dass viele die Möglichkeit schätzen, für ihre Kalenderdaten nicht erst zu Google oder Apple telefonieren zu müssen. Zumal ja für die sV sowieso ein Webserver laufen muss, dann ist es halt eine lokale Installation (own-/nextCloud) mehr.
Die Anbindung von Morg funktioniert hier einwandfrei, nur die Konfiguration ist bei manchen etwas hakelig, da je nach Version unterschiedliche Pfade zur ics angegeben werden müssen. Aber darum können wir uns hier im Forum kümmern, ggf. erstelle ich eine kurze Doku. Rest und Code siehe hier.
/tomZuletzt geändert von Tom Bombadil; 21.12.2016, 21:27.
Einen Kommentar schreiben:
-
Hallo,
@smai
Also mir würde die Liste die du da hast vollkommen reichen
das wäre so ein Traum.
Gruß Jan
Einen Kommentar schreiben:
-
Und was soll mit den categories geschehen? Einfach für die Vergabe von Icons zur Verfügung stehen?
ownCloud ist übrigens gar nicht Teil der SV.
Einen Kommentar schreiben:
-
Gefühlt wäre eine. cfg wahrscheinlich auf lange Sicht einfacher zu warten, aber die lang_xx.txt tut's sicher auch.
Könntest Du in diesem Zuge auch gleich die Kategorien implementieren (sofern vom Provider geliefert)? So wie ich es bis jetzt verstehe, müsste dafür eigentlich nur folgendes geändert werden:
lib/calendar/service/iCloud.php ab Zeile 92:
lib/calendar/service/iCal.php ab Zeile 32:Code:[FONT=courier new] foreach ($events as $event) { $this->data[] = array('pos' => $i++, 'start' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtstart)), 'end' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtend)), 'title' => $event->summary, 'content' => '', 'where' => str_replace(array("\n\r", "\n", "\r", "\\"), "<br />", $event->location), 'link' => 'https://www.icloud.com/#calendar'[COLOR=#FF0000],[/COLOR][/FONT] [COLOR=#FF0000][FONT=Courier New] 'categories' => $event->categories [/FONT][/COLOR][FONT=Courier New][COLOR=#ff0000] // new for categories[/COLOR][/FONT] [FONT=courier new] ); }[/FONT]
Code:[FONT=courier new] foreach ($events as $event) { $this->data[] = array('pos' => $i++, 'start' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtstart)), 'end' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtend)), 'title' => $event->summary, 'content' => str_replace("\\n", "\n", $event->description), 'where' => $event->Location[COLOR=#FF0000],[/COLOR][/FONT] [FONT=Courier New] //,'link' => ''[/FONT] [COLOR=#FF0000][FONT=Courier New] 'categories' => $event->categories [/FONT][/COLOR][FONT=Courier New][COLOR=#ff0000]// new for categories[/COLOR][/FONT] [FONT=courier new] ); }[/FONT]
lib/calendar/service/ownCloud.php ab Zeile 81:
Das würde die Filterung von Events massiv vereinfachen, sofern wie gesagt der Provider die Kategorien auch liefert (z.B. ownCloud / nextCloud, siehe #161; aber bestimmt auch andere).Code:[FONT=courier new] if($name == 'DTEND') { preg_match('/((.*)=(.*):)?(.*)/', $value, $matches); //TODO TZID handling date_default_timezone_set('Europe/Berlin'); $ts = strtotime($matches[4]) + date("Z", strtotime($matches[4])); $this->vevent['end'] = date('y-m-d', $ts).' '.gmdate('H:i:s', $ts); } [COLOR=#FF0000] if($name == 'CATEGORIES') [/COLOR][/FONT][FONT=Courier New][COLOR=#ff0000]// new for categories[/COLOR][/FONT] [COLOR=#FF0000][FONT=Courier New] {[/FONT] [FONT=courier new] $this->vevent['categories'] = (string)($value);[/FONT] [FONT=Courier New] }[/FONT][/COLOR]
Nachbemerkung: Vermutlich wäre das Einlesen in ein Array statt in einen String sogar noch eleganter, aber mit php-Arrayfunktionen kenne ich mich leider nicht aus.
/tomZuletzt geändert von Tom Bombadil; 21.12.2016, 17:50.
Einen Kommentar schreiben:
-
Nun, mit steigender Nachfrage werde ich nachgiebig
Sinnvoll für den Filter wären wohl die Felder title (= Betreff), content (= Beschreibung) und where (= Ort).
Da dies sprachabhängig ist, würde ich es wohl in die lang_XX.txt aufnehmen.
Vom Datenkonstrukt her bietet sich deshalb ein assoziatives Array an, dein INI-Code würde dann so aussehen:
Dabei würde ich den ersten Eintrag anwenden, der auf einen Teil des betreffenden Feldes passt (unabhängig von Gross-/Kleinschreibung).PHP-Code:$lang['calendar']['tag'][] = ['filter' => ['title' => 'Papiertonne'], 'icon' => 'message_garbage.svg', 'color' => '#04B404' ];
$lang['calendar']['tag'][] = ['filter' => ['where' => 'Volkswagen'], 'icon' => 'message_service.svg' ];
Sind mehrere Felder angegeben (also z.B. title und where) müssen alle passen.
Im Release lassen sich sicher nicht alle erdenklichen Schüsselwörter einbeziehen, aber ich möchte zumindest die wichtigsten mit ausliefern. Dazu brauche ich euren Input, was für euch von Bedeutung ist.
Ich schlage mal folgendes vor und nehme eure Ergänzungen gerne entgegen:title icon color Grüne Tonne message_garbage.svg #008000 Blaue Tonne message_garbage.svg #0000ff Gelbe Tonne message_garbage.svg #ffff00 Papiertonne message_garbage.svg #ffff00 Altpapier message_mail_open.svg Braune Tonne message_garbage.svg #a52a2a Biotonne message_garbage.svg #a52a2a Grünabfuhr message_garbage.svg #008000 Graue Tonne message_garbage.svg #000000 Schwarze Tonne message_garbage.svg #000000 Kehricht message_garbage.svg #000000 Kino scene_scene.svg Sport scene_fitness.svg Fitness scene_fitness.svg Fussball scene_football.svg Ferien status_vacation.svg Urlaub status_vacation.svg Party scene_party.svg Geburtstag scene_party.svg Feier scene_party.svg Arzt message_medicine.svg Gärtner scene_garden.svg
Einen Kommentar schreiben:
-
Toll das mein Vorschlag jetzt vielleicht doch so in etwa umgesetzt wirdZitat von smai Beitrag anzeigenWünschenswert wäre für mich, dass man eine Liste von Wörtern mit Icons angeben könnte und wenn eines der Wörter im Termin vorkommt, dann wird das entsprechende Icon verwendet
....
Ich habe dies mal als Issue 128 erfasst.
Zitat von nEiMi Beitrag anzeigenWäre es nicht möglich das mit Suchbegriffen in einer Datei zu lösen... z.B. so:Code:[Kalender] [Papiertonne] Betreff = Papiertonne icon = message_garbage.svg color = #04B404 [Autowerkstatt] Ort = Volkswagen icon = message_service.svg color = #FFFFFF
Einen Kommentar schreiben:
-
Leider nein und nein.Zitat von flipkill1985 Beitrag anzeigenGeht so etwas nicht, und kann ich irgendwo Default Icons vergeben?
Wünschenswert wäre für mich, dass man eine Liste von Wörtern mit Icons angeben könnte und wenn eines der Wörter im Termin vorkommt, dann wird das entsprechende Icon verwendet.
Die Google Kalender-App für Android macht wohl was ähnliches, bei bestimmten Begriffen wird da im Header auch ein passendes Hintergrundbild angezeigt.
Wenn mir mal langweilig ist, implementiere ich das vielleicht. Leider habe ich so viele gute Ideen und so wenig Zeit ;-)
Ich habe dies mal als Issue 128 erfasst.
Einen Kommentar schreiben:
-
Hallo,
das ist mir so schon klar aber ich will doch nicht immer den Pfad des Icons angeben sondern Sprechende Wörter haben wie z.B. Party oder so
(Party)
ICON f56257w
@party /xx/xx/xx
Geht so etwas nicht, und kann ich irgendwo Default Icons vergeben?
Danke
Gruß Jan
Einen Kommentar schreiben:
-
Hallo Jan,
hier mal ein Beispiel aus meinem ownCloud-Kalender:
Kalender1.png
Falls es Dir nur um Mülltermine geht, kannst Du auch die praktische Kompaktdarstellung nehmen, siehe hier. Die braucht auch keine Farb- und Iconcodes.
Kalender2.png
/tom
Einen Kommentar schreiben:
-
Hallo,
wo muss ich das genau hinschreiben, verstehe nicht was du mit "iCal-Treiber per @color und @icon" genau meinst wo muss ich da was einfügen in welcher Datei?
Vielen Dank Gruß Jan
Einen Kommentar schreiben:
-
Farbe und Icon für einzelne Termine bzw. Serien können übrigens auch im iCal-Treiber per @color und @icon in der Beschreibung gesetzt werden.
Einen Kommentar schreiben:


Einen Kommentar schreiben: