Umlaute...
habe heute mal Zeit gefunden das Google Kalender Feature auszuprobieren. Es funktioniert einwandfrei! Danke Jens!
Eine Frage aber trotzdem: Wenn Umlaute (z.B. Müll) im Kalendereintrag verwendet werden werden diese leider nicht sauber dargestellt. Hat da jemand eine Idee ob man das irgendwie korrigieren kann?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Allgemeine Frage: Wie sieht Eure CV Startseite aus?!
Einklappen
X
-
Danke für die Tipps - habs jetzt hinbekommen.Zitat von jensgulow Beitrag anzeigenGenau, aber da mein Terminkalender meistens relativ voll ist kam bei mir noch nie eine Fehlermeldung
Hinweis der mich verwirrt hat: in der Datei im Post 46 vom Jens steht wie folgt geschrieben:
ReadCalendar('xxxxxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 3, '5');
Hier wird suggeriert, die xx in rot durch die userid zu ersetzen - ist aber falsch.
Wenn man sich hieran hält:
ReadCalendar(Userid, MagicCookie, Tage die abgerufen werden, ShortCut für farbige Sortierung)
Userid = feeds/xxxxxxxxx/private
MagicCooki= /private-xxxxxxxxxxx/basic
funktioniert es.
der in der genannten Zeile geschriebene Eintrag: "xx@group.calendar.google.com" ist bereits Bestandteil einer userid.
Gruß an alle.Angehängte Dateien
Einen Kommentar schreiben:
-
Jens, vielen Dank für Deine Google-Kalender-Implementierung. Habe die auch mal für mich übernommen.
Ich hätte noch eine Code-Ergänzung, falls jemand hinter einem Proxy sitzt - folgende Funktion in die googlecalendarforum.php einfügen:
Dann statt "$sxml = simplexml_load_file($feedURL.$feedParams);" nun "$sxml = getXMLfromURL($feedURL.$feedParams);" zum Auslesen des Kalenders verwenden.Code:function getXMLfromURL($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_PROXY, 'PROXYNAME:PROXYPORT'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'USERNAME:PASSWORT'); $curldata = curl_exec($ch); curl_close($ch); $data = simplexml_load_string($curldata); return ($data); }
Ich sitze beim Testen auch mal hinter einem Proxy, da ist das ganz hilfreich.
Leider habe ich nichts gefunden, ob man die Proxy-Settings des Browsers automatisch auslesen kann. Kann da jemand was zu sagen?
Einen Kommentar schreiben:
-
Genau, aber da mein Terminkalender meistens relativ voll ist kam bei mir noch nie eine Fehlermeldung
Einen Kommentar schreiben:
-
Wenn irgendwas Fehler in Funktion unsort ist, dann mach mal Testeinträge im Kalender in den nächsten 5 Tagen, oder ändere oben im PHP die Zahl für die Anzahl Vorschautage (die erste der beiden) auf einen größeren Horizont, dann ist der Fehler weg.
Kurz gesagt: er findet keine Einträge und kann deshalb ein leeres Array nicht sortieren.
Einen Kommentar schreiben:
-
Zitat von jensgulow Beitrag anzeigenHier mal meine aktuelle Startseite.
Der Terminkalender ist eine php-Datei. Er holt die Termine von ein oder mehreren Googlekalendern ab. Inspiriert wurde das ganze durch: Google Kalender Termine im WebFront anzeigen - Seite 13.
Der code der php-Datei ist im Anhang.
Viele Gruesse
Klasse Startseiten dir ihr da habt. Habe versucht, den Kalender nachzubauen, dein php- script eingebunden und mit dem bereits enthaltenden einträgen (öffentliche Kalender, Feiertage) ein erstes Ergebnis anzeigen zu lassen.
Hab leider ne Fehlermeldung ?? hat wohl ein Problem mit der Funktion "unsort"
Bei dir läuft das genau so? oder habe ich übersehen, dass noch was anderes auf dem wire gate zusätzlich installiert werden muss?
Dankeschön für nen Tipp!Angehängte Dateien
Einen Kommentar schreiben:
-
Ist echt gut und einfach zu Händeln.
Schön wäre es noch, wenn der nicht nur nach den nächsten x Tagen schaut, sondern, falls da keine Termine sind, er sich die nächsten X Termine holt.
Dadurchwürde man einen usort Fehler umgehen, der entsteht, wenn keine Termine vorhanden sind.
Nichtsdestotrotz tolle Arbeit und Dank euch!
Einen Kommentar schreiben:
-
Respekt an euch beide
Damit habt ihr einen echten Mehrwert für die CometVisu geschaffen
Einen Kommentar schreiben:
-
dacht ich mir doch das da noch was nützliches dahintersteckt
Danke für die Info, das nimmt wieder einen offenen Punkt von der OPL...
Einen Kommentar schreiben:
-
Ich hab das ganze mal hier niedergeschrieben: Fritz!Box steuern per PluginZitat von tger977 Beitrag anzeigenInteressant finde ich auch in der Navbar den FritzBox Punkt. Was hast Du denn da hinterlegt? Nur die Weboberfläche?
Gruß
Einen Kommentar schreiben:
-
da gerade eine pm ankam mit ein paar Fragen hier noch eine Erklärung wie das mit den googlecalendern läuft:
1. entsprechende Kalender anlegen. Dann auf Kalendereinstellungen (Bild1)
2. bei den Einstellungen auf Privatadresse xml klicken (Bild2)
3. aus dem popup kann man an den rot umrandeten Stellen userid (nach feeds) und magicCookie (nach private-) ablesen.
Das wird dann im php oben eingetragen.
Einbindung in die CV:
Ich hoffe das hilft einige offene Fragen zu lösen.Code:<group name="Kalender"> <layout colspan="8" rowspan="3"/> <web src="http://192.168.0.114/googlecalendar.php" height="250px" frameborder="false" refresh="3600" scrolling="no"> <layout rowspan="3" colspan="8"/> </web> </group>
Grüße
- Likes 1
Einen Kommentar schreiben:
-
Gratulation zu der gelungenen Lösung. Das kommt dem was mir vorschwebt ziemlich nahe.Zitat von coolrunnings Beitrag anzeigenNachdem mir dieser Thread sehr geholfen hat meine Startseite zu gestalten, dachte ich, ich teile das Ergebnis mal mit euch.
Für die "Termin"-Funktion habe ich das rsslog PlugIn etwas abgewandelt, so dass je nach php-Seite nur Termine in der Vergangenheit oder Zukunft angezeigt werden.
Werde mich mal bei Gelegenheit v.a. mit dem Kalender Plugin und dem rsslog beschäftigen.
Interessant finde ich auch in der Navbar den FritzBox Punkt. Was hast Du denn da hinterlegt? Nur die Weboberfläche?
Einen Kommentar schreiben:
-
Hier mal meine aktuelle Startseite.
Der Terminkalender ist eine php-Datei. Er holt die Termine von ein oder mehreren Googlekalendern ab. Inspiriert wurde das ganze durch: Google Kalender Termine im WebFront anzeigen - Seite 13.
Der code der php-Datei ist im Anhang.
Das wundergroundweather-plugin hab ich mal ein bisschen ueberarbeitet und die Darstellung der html-Seite auf DIV-Container umgestellt, so dass jetzt ueber gewisse Granzen ein "sich skalierendes" Format ergibt. Ein Problem ist hier noch nicht geloest. Die Hintergrunddatei konnte ich mit meinen bisherigen Bemuehungen noch nicht wieder sauber einbinden. Ich arbeite dran. Dateien des plugins und die css-Datei (hat bisher immer gefehlt) im Anhang.
PS: die Endung .zip bitte einfach entfernen (sonst hätte ich die Dateien nicht hochladen können).
Viele Gruesse
Einen Kommentar schreiben:
-
Die eigentliche rsslog.php habe ich so geändert, dass nur Events aus der Vergangenheit angezeigt werden:
Dann habe ich keine Kopie der rsslog.php angelegt: rsscal.php.Code:--- rsslog.php (Revision 2040) +++ rsslog.php (Arbeitskopie) @@ -251,7 +251,8 @@ $filters[$i] = " (tags LIKE '%" . sqlite_escape_string($val) . "%') "; } - $q = "SELECT id, title, content, tags, state, strftime('%s', t) AS t FROM Logs WHERE (" . implode('OR', $filters) . ")"; + $q = "SELECT id, title, content, tags, state, strftime('%s', t) AS t FROM Logs WHERE ( (t <= datetime('now')) AND(" . implode('OR', $filters) . "))"; if (isset($state)) $q .= " AND state=" . $state . " ";
Die Unterschiede sind nur in der Abfrage der Zeiten:
Schöner wäre es natürlich, wenn man das ganze per Konfiguration in der XML Datei machen könnte, z.B. alle vergangenen Events und die kommenden x Tage. Das hab ich aber noch nicht versucht.Code:< $q = "SELECT id, title, content, tags, state, strftime('%s', t) AS t FROM Logs WHERE ( (t <= datetime('now')) AND(" . implode('OR', $filters) . "))"; --- > $q = "SELECT id, title, content, tags, state, strftime('%s', t) AS t FROM Logs WHERE ( (t > datetime('now')) AND(" . implode('OR', $filters) . "))"; 260c260 < $q .= "ORDER by t DESC"; --- > $q .= "ORDER by t ASC";
Zum Importieren von Terminen habe ich mir ein kleines Skript geschrieben, was nicht nur die Zeiten korrigiert (Zeitzone momentan hardcoded) sondern auch schaut, ob der Termin schon in der DB steht.
Code:#!/usr/bin/perl -w # ### Script zum Einlesen von Terminen per csv Datei # Format: content;title;tags;t;state (kein Header in der Datei!!!) # z.B.: Graue Tonne;Abfall;abfall,grau;2014-01-20 06:00:00;0 # Aufruf per Kommandozeile: ./rss_csvimport.pl -f filename # Fuer Verwendung mit rsslog.php / CometVisu # Wichtig: # - benoetigt Paket libdbd-sqlite2-perl # # v0.1 # 2013-01-03 # Licenced under the GPLv3 ################### ### DEFINITION ### ################### my $logdb = '/etc/wiregate/rss/rsslog.db'; ######################## ### Ende DEFINITION ### ######################## use Getopt::Long; use Text::CSV; use DBI; use Date::Parse; GetOptions( #'h' => \my $help, # weitere Optionen, z.B. 'f=s' => \my $filename, # verlangt einen string, z.B. -f hallo.pdf #'s=n' => \my $size, # verlangt eine Zahl, z.B. -s 33 ); if ( !$filename || $filename eq "" ) { die "No import file specified ... exit\n"; } print "Try to import csv data from file [".$filename."]\n"; my $csv = Text::CSV->new({ sep_char => ';' }); open(my $data, '<', $filename) or die "Could not open ['$filename'] $!\n"; if (! -e $logdb) { die "$logdb existiert nicht! Bitte mit rsslog.php anlegen"; } my $dbargs = {AutoCommit => 0, PrintError => 1}; my $dbh = DBI->connect("dbi:SQLite2:dbname=$logdb", "", "", $dbargs); while (my $line = $csv->getline($data)) { if ( (scalar @$line) != 5 ) { print "Wrong column count: @$line\n"; } else { print "Import line: @$line ... "; # Correct date my $unixts = str2time(@$line[3]); my $localts = localtime($unixts); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($unixts); my $tzOffsetHours = 1; if ( $isdst == 1 ) { $tzOffsetHours = 2; } $hour -= $tzOffsetHours; if ( $hour < 0 ) { $yday -= 1; $hour = 24 + $hour; } my $dtUTCStr = sprintf("%d-%02d-%02d %02d:%02d:%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec); print " dtUTC [$dtUTCStr][dst:$isdst] "; #print " unix: $unixts local: $localts "; my $sqlsel = "SELECT * FROM Logs WHERE content = '".@$line[0]."' AND t = '".$dtUTCStr."';"; my $sth = $dbh->prepare($sqlsel); $sth->execute; if ( $sth->fetch ) { print "entry already exists\n"; } else { $dbh->do('INSERT INTO Logs(content, title, tags, t, state) VALUES( ' . " '" . @$line[0] . "'," . " '" . @$line[1] . "'," . " '" . @$line[2] . "'," . " '" . $dtUTCStr . "'," . " " . @$line[4] . " )"); if ($dbh->err()) { print " DB-Fehler: \n$DBI::errstr \n$DBI::lasth->{Statement}\n"; } else { print " done\n"; } } $sth->finish(); } } close $data; $dbh->commit(); $dbh->disconnect(); exit 0;
Einen Kommentar schreiben:
-
nette Seite.. wie hast du das rss modifiziert?
Versuche gerade den GoogleKalender via rss einzubinden (hat geklappt) und die Termine da, möchte ich aber nicht mit Event Status: confirmed haben.. ist ja albern.. einfach nur Ereignis und Datum, so wie bei dir.
An was hast du da geschraubt?
Einen Kommentar schreiben:


Einen Kommentar schreiben: