Ankündigung

Einklappen
Keine Ankündigung bisher.

Allgemeine Frage: Wie sieht Eure CV Startseite aus?!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • tger977
    antwortet
    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?

    Einen Kommentar schreiben:


  • Ziegelstein
    antwortet
    Zitat von jensgulow Beitrag anzeigen
    Genau, aber da mein Terminkalender meistens relativ voll ist kam bei mir noch nie eine Fehlermeldung
    Danke für die Tipps - habs jetzt hinbekommen.

    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:


  • dismantled
    antwortet
    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:
    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);
        }
    Dann statt "$sxml = simplexml_load_file($feedURL.$feedParams);" nun "$sxml = getXMLfromURL($feedURL.$feedParams);" zum Auslesen des Kalenders verwenden.

    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:


  • jensgulow
    antwortet
    Genau, aber da mein Terminkalender meistens relativ voll ist kam bei mir noch nie eine Fehlermeldung

    Einen Kommentar schreiben:


  • Schlacks
    antwortet
    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:


  • Ziegelstein
    antwortet
    Zitat von jensgulow Beitrag anzeigen
    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.

    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:


  • Schlacks
    antwortet
    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:


  • swiss
    antwortet
    Respekt an euch beide

    Damit habt ihr einen echten Mehrwert für die CometVisu geschaffen

    Einen Kommentar schreiben:


  • tger977
    antwortet
    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:


  • coolrunnings
    antwortet
    Zitat von tger977 Beitrag anzeigen
    Interessant finde ich auch in der Navbar den FritzBox Punkt. Was hast Du denn da hinterlegt? Nur die Weboberfläche?
    Ich hab das ganze mal hier niedergeschrieben: Fritz!Box steuern per Plugin

    Gruß

    Einen Kommentar schreiben:


  • jensgulow
    antwortet
    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:

    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>
    Ich hoffe das hilft einige offene Fragen zu lösen.

    Grüße
    Angehängte Dateien

    Einen Kommentar schreiben:


  • tger977
    antwortet
    Zitat von coolrunnings Beitrag anzeigen
    Nachdem 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.
    Gratulation zu der gelungenen Lösung. Das kommt dem was mir vorschwebt ziemlich nahe.

    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:


  • jensgulow
    antwortet
    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
    Angehängte Dateien

    Einen Kommentar schreiben:


  • coolrunnings
    antwortet
    Die eigentliche rsslog.php habe ich so geändert, dass nur Events aus der Vergangenheit angezeigt werden:

    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 . " ";
    Dann habe ich keine Kopie der rsslog.php angelegt: rsscal.php.
    Die Unterschiede sind nur in der Abfrage der Zeiten:

    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";
    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.

    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:


  • Schlacks
    antwortet
    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:

Lädt...
X