Beiträge von ingoh

Ich habe einen Blog Artikel verfasst - Wie benutze ich die Suche richtig - Bitte diesen beachten und auch umsetzen bevor Ihr ein Neues Thema eröffnet!

    Dieser Artikel beschreibt den Einbau der Wetterdaten in die Spielstatistik wie bereits in einem anderen Thread für den emTipp 2016 beschrieben. Man benötigt einen API-Key von OpenWeatherMap. Einen solchen 32-stelligen Key bekommt man dort auch als Freeuser - es ist also lediglich eine Registrierung nötig. Diesen Key kann man später in der inc.config.php eingeben. Wird dort kein Key eingegeben, dann entfallen die Wetterdaten in der Spielstatistik. Wie immer gilt: Vor dem Überschreiben von Dateien die bestehenden sichern und da Änderungen an der DB gemacht werden, kann ein Backup der Datenbank auch nicht schaden!


    Die folgende Zeile in der Datei include/inc.config.php einfügen. Am besten nach der Zeile "$CONFIG['EMAILCHECK']['UNIQUE']..." und unbedingt vor der letzten Zeile "?>":


    PHP: inc.config.php
    1. $CONFIG['SPIEL']['OWAPIKEY'] = "12345678901234567890123456789012";


    Nun wird die Tabelle {prefix}stadien um die Felder temp, humidity, desc und lastupdate erweitert. Das Feld owid war bereits vorhanden. Die neuen Felder dienen zum Cachen der Werte für maximal 10 Minuten. Erst danach werden sie bei Bedarf neu von OpenWeatherMap geholt. Das Feld owid enthält die City IDs von OpenWeatherMap. Eine Suche über die City IDs ist eindeutig und daher der Textsuche vorzuziehen. Die folgenden SQL-Zeilen führen die Änderungen durch:


    Nun noch die Datei content/statistik.spiel.php austauschen (siehe Anhang) und das sollte es gewesen sein. Viel Spaß beim Ausprobieren - ich hoffe, dass ich nichts vergessen habe...





    screen_weather.jpg

    Dateien

    • upload.zip

      (7,97 kB, 53 Mal heruntergeladen, zuletzt: )

    Der Fehler ist in der Datei mysqldbexport.class.php im include-Verzeichnis. Das beigefügte Archiv enthält eine geänderte Version dieser Datei und die Files aus /extern/cron mit geänderten include-Pfaden. Damit funktioniert das Backup. Eine Sicherung der alten Dateiversionen nicht vergessen!

    Dateien

    • upload.zip

      (14,97 kB, 17 Mal heruntergeladen, zuletzt: )

    Ich habe mir die reminder.php angeschaut. Das Verschicken an einen Testuser funktioniert nur, wenn man in der Config die TEXTART auf 1 stehen hat (also per Du). Im Zweig für die "förmliche Anrede" (TEXTART=0) sind die Teile für den Testmodus gar nicht vorhanden und die Mails werden ganz normal raus geschickt!


    Das erklärt dann auch das "Wieso, bei mir funktioniert doch alles".


    http:// deine url/extern/cron/reminder.php?pwd=passwort&testdate=10.07.2016&test=dein nick

    Klappt das mit dem testmode beim Reminder bei Euch? Ich habe das gerade mal ausprobiert und der Reminder ging an alle User...

    Hatte das Problem auch und habe nur in der DB die Tipps der nicht zuzuordenden Usergelöscht und anschließend ein "DB Refresh" ausgeführt. Auch in der Tabelle "emtipp_bonus_tipps", damit die Geister nach der Vorrunde nicht wieder auftauchen...

    SQL
    1. delete from emtipp_tipps where usr in (0,5,11);
    2. delete from emtipp_bonus_tipps where usr in (0,5,11);

    Da ist etwas anderes faul. Adressen mit Minuszeichen funktionieren. Hast Du vielleicht per copy&paste einen langen Gedankenstrich ("Halbgeviertstrich") statt des Minuszeichens reinkopiert?

    doppelter Aufruf:
    ist mir nicht aufgefallen.
    Wie hast du das festgestellt?
    Brauchst du nur zu schreiben, wenn es keinen großen Aufwand macht. Ich will hier keine Arbeit generieren...

    Ich hatte jeweils ein error_log() in den Cache- und Nicht-Cache-Zweig vom if eingebaut. Kamen immer beide debugs und ich habe zuerst dort nach einem Fehler gesucht. Aufgerufen von "finale/turnierbaum/" ist es Ok.

    Schade, dass wir die Arbeit doppelt gemacht haben. Da ich damit angefangen hatte, wollte ich es dann auch zu Ende bringen. Meine Art von Ehrgeiz ;-)


    Ist Dir aufgefallen, dass die statistik.spiel.php scheinbar "doppelt" aufgerufen wird? Zumindest ist das aus der Gruppenübersicht so - bei den Finalspielen aus dem Finalbaum nicht. Hat mich bei der Überprüfung ob die Daten aus dem Cache kommen etwas verwirrt, habe aber nicht weiter nachgeforscht.

    Cache für die Wetterdaten war noch auf meiner ToDo-Liste. Dazu die Tabelle {PREFIX}stadien um die Felder temp, humidity, descr und lastupdate erweitern:

    SQL
    1. ALTER TABLE emtipp_stadien ADD temp integer ;
    2. ALTER TABLE emtipp_stadien ADD humidity integer ;
    3. ALTER TABLE emtipp_stadien ADD descr varchar(80) not NULL default '' ;
    4. ALTER TABLE emtipp_stadien ADD lastupdate timestamp not NULL default '0000-00-00 00:00:00' ;

    Nun die Datei content/statistik.spiel.php mit der aus dem Anhang austauschen. Nun sollten die Daten alle 10 Minuten für das jeweilige Stadion neu aus dem Netz geholt und ansonsten die Version im "Cache" genutzt werden. Die Anweisungen aus meinem 1. Posting sind zusätzlich nötig bzw. bei Verwendung der "Finalen Version" sollte man die Hinweise von @Kassi beachten!

    Dateien

    • upload.zip

      (8,42 kB, 58 Mal heruntergeladen, zuletzt: )

    Klingt sinnvoller als die bisherige Verteilung und war bei den vorigen Events auch so (oder so ähnlich) eingestellt. Könntest Du einen Dump der Tabellen emtipp_bonus_fragen und emtipp_bonus_punkte zur Verfügung stellen?

    Schleife könnte bedeuten, dass $CONFIG['PATHM'] nicht auf "m/" steht. Überprüfe das bitte nochmal bzw. ersetze $CONFIG['PATHM'] im Code durch "m/". Hast Du Zugriff den error.log auf dem Server? Wenn ja, dann könnte man mit error_log() ein paar Debug-Ausgaben machen. So langsam will ich mal wissen, woran es liegt...

    Probier es nochmal hiermit. Resfresh wie im Original, es wird nur der QUERY_STRING angehangen - wenn vorhanden.