Eccomi! Ho provato il modulo! Bel lavoro!
1) Ho visto che hai usato il mio script di import, l'hai già integrata o è solo stato appuntato?
2) Usare un plugin per le viste?
3) Ho provato Gmaps + location. Già loro con l'integrazione CCK e Views fanno un lavoro fantastico, anche per il posizionamento... sarebbe una buona base (stile API).
P.S.: non conviene aprire il progetto su drupal.org e usare il CVS?
1)si l'ho solo appuntato come to do
se a te funziona bene credo convenga mantenere il tuo script, aggiungendogli solo il cron di drupal che dici?
tu hai idea se ci sono delle issue nel leggere un file da url tramite php?
2) ci ho pnesato ma lascerei l'integrazione alla fine dello sviluppo
3) certo avevo pensato anche a quello, ma prima vorrei finire il nocciolo duro dell'applicazione per poi rifinirla con questa chicche
ps: la struttura del db dovrebbe reggere no? nel senso riusciamo con un unica tabella di dati a estrarre poi tutte le informazioni che ci servono?
ps2: ci sarebbero anche da migliorare le espressioni regolari che controllano i campi nel validate.inc, se hai tempo e voglia ogni aiuto è ben accetto!
ho provato a far partire l'inserimento
non capisco perchè si blocca alla prima riga
(basta cliccare run cron nella pagina dell 'elenco stazioni per far partire l'import)
il file che fa l'inserimento è dataupdate.inc
l'idea è quella di ciclare per ogni stazione e fare ogni volta apertura e inserimento nel db
qualche idea?
ecco il modulo aggiornato
http://www.signalkuppe.com/meteo.zip
ps: ho convertito la sata in timestamp secondo me è emglio..che dici merto?
risolto, mandavo fuori un drupal_goto dentro il ciclo il quale bloccava il loop
ho anche fixato un baco sull'edit e migliorato la validazione dati usando un'unica funzione sia per l'add che per l'edit di una stazione
l'import controlla che non ci sia un record con lo stesso timestamp prima di inserire un dato nel db
in questo modo ad ogni update faccio solo le query che mi servono
http://www.signalkuppe.com/meteo.zip
aggiornamento: ora importa correttamente da tutte le stazioni inserite
ogni stazione genere autamaticamente una pagina linkata nel menu principale (una per stazione)
ogni pagina ha delle tab: per ora ci sono solo quelle delle info e degli ultimi dati
manca ancora
1) import massivo
2) qualche query qua e la
3) le pagine con dati giornalieri, mensili annuali
4) qualche grafico
cmq prosegue bene, sembra carino
se qualcuno vuole contribuire si faccia avanti
http://www.signalkuppe.com/meteo.zip
Un mio primo e piccolo commit:
ti ho bugfixato un po' di query che, per chi ha un prefix delle dabelle, ne compromettono totalmente l'utilizzo.
Forse ce ne sono altre ma facendo un giro veloce quelle che ho fixato almeno fanno installare correttamente il modulo.
Ho già pronti altri piccoli fix, ma aspetto a inviarli.
Ho qualche problemino con la visualizzazione: mi da sempre Pagina non trovata.
Lioz aggiungi intanto un controllo alla riga 188 di meteo.module, infatti se hai appena installato il modulo (quindi senza stazioni) il foreach sclera perchè, giustamente, l'array è vuoto
Codice:if($arr): foreach($arr as $key=>$value){ $items['station/'.$key] = array( 'title' => $value, 'description' => 'pagina stazione', 'page callback' => 'meteo_station', 'page arguments' => array(1), 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM, ); $items['station/'.$key.'/info'] = array( 'title' => 'info', 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -1, ); $items['station/'.$key.'/data'] = array( 'title' => 'latest data from '.$value, 'type' => MENU_LOCAL_TASK, 'weight' => 1, 'description' => 'dati stazione', 'page callback' => 'meteo_station_data', 'page arguments' => array(1), 'access arguments' => array('access content'), ); } endif;
grazie per le segnalazioni!
ho quasi finito l'import massivo
sono riuscito a spezzarlo in più parti attraverso un batch in modo che non vada in timeout l'esecuzione
in pratica quello che voglio fare è fare eseguire in modo batch 10 volte la stessa funzione di lettura e inserimento del file ognuna delle quali prende legge solo un tot di bytes del file esportato da weatherlink
ad esempio pensavo di leggere il file un mega alla volta
non sono riuscito perà a capire come leggere un file solo in un intervallo di bytes
hai qualche idea?
mi spiego emglio: in drupal puoi fare un batch in questo modo
in pratica chiami n volte quella funzione passandogli come argomento l'url del file che ho importato l'id della stazione e il numero di bytes da leggereCodice PHP:
$batch['operations'][] = array('meteo_admin_import_submit_import', array($fileabsurl,$station_id,1000000));
$batch['operations'][] = array('meteo_admin_import_submit_import', array($fileabsurl,$station_id,1000000));
non riesco a capire come gestire la possibilità di leggere il file ad intervalli specificati dal terzo parametro
potremmo anche inviare due parametri byteinizio e bytefine...
ma mi manca proprio l'idea di come leggere un file da tot byte a tot byte
Segnalibri