der-On / Contao-MetaModels-OpenImmo

This is a module for the cms contao (www.contao.org) wich allows import of OpenImmo-Data (www.openimmo.de) into the cms with the use of the MetaModels-module.
9 stars 5 forks source link

automatische Synchronisierung #22

Open jcpwdev opened 7 years ago

jcpwdev commented 7 years ago

Hallo, habe versucht eine automatische Synchronisation der ZIP-Dateien vornehmen zu lassen - bisher ohne Erfolg. In den Settings (auch in der DB) ist die Synchronisation als "hourly" eingetragen, allerdings passiert nichts. Der native Contao-Cron ist eingeschaltet.

Könnte auch anbieten einen serverseitigen Cronjob zu setzen.

Welche Klasse/Funktion/Datei muss ich aufrufen, damit alle vorhandenen (also nicht nur eine, wie es beim manuellen der Fall ist) ZIPs entpackt und die darin liegenden XMLs geparsed werden?

Grüße msr

der-On commented 7 years ago

Das hier sollte dir weiterhelfen: https://gist.github.com/der-On/eabd62b85737ebf8a55bd20330e42304

jcpwdev commented 7 years ago

Vielen Dank dafür! Ich hab die sync_all bei mir in den root gelegt (darf/sollte man das machen?) und den pfad zur "initialize.php" angepasst (auf require('system/initialize.php'); ).

Ziel ist es für mich nun diese sync_all.php per Serverseitigem Cron-Job aufzurufen und darüber den Rhytmus der Immobilien-Synchronisation zu steuern (daher bin ich mal davon ausgegangen dass ich die run_cron.php eigentlich nicht brauche)

Allerdings hakt er in Zeile 8 - das Skript scheint abzubrechen. Selbst mit eingeschalteten PHP-Fehlermeldung bleibt die Seite weiß (hatte ein paar test "echos" drin).

Das macht es für mich nun etwas schwierig das Ganze (mit meinen begrenzten Fähigkeiten) zu debuggen - irgendwleche Tipps?

jcpwdev commented 7 years ago

Also ein bisschen mehr habe ich jetzt herausfinden könne (anscheinend hat sonst niemand auf der Welt dieses Problem :| )

Es scheint daran zu haken, dass die Api Class die methode getMetaModelObject verwendet, die aber in der Class MetaModelsOpenImmo vorkommt und entsprechend kein Zugriff hat. das das nicht funktioniert, ist ja logisch, aber ich frage mich vor allem wie es denn sonst funktioniert (normal im BE) wenn die Api Class gar nicht an diese methode rankommt. oder wird die api im BE gar nicht verwendet?