15 if( ! defined(
'CRON_RUNNING' ) ) {
16 require
'../../../_src/_config.php';
23 $status[
'info'][] =
'inizio operazioni di geocode';
26 $lock =
mysqlQuery(
$cf[
'mysql'][
'connection'],
'LOCK TABLES indirizzi WRITE, comuni WRITE, stati WRITE, provincie WRITE, regioni WRITE, zone_cap WRITE' );
29 if(
$lock ===
true ) {
33 $cf[
'mysql'][
'connection'],
34 'SELECT indirizzi.*, '.
35 'comuni.id_provincia, '.
37 'comuni.nome AS comune, '.
38 'stati.iso31661alpha2 AS sigla_stato, '.
39 'stati.nome AS stato '.
41 'LEFT JOIN comuni ON comuni.id = indirizzi.id_comune '.
42 'LEFT JOIN provincie ON provincie.id = comuni.id_provincia '.
43 'LEFT JOIN regioni ON regioni.id = provincie.id_regione '.
44 'LEFT JOIN stati ON stati.id = regioni.id_stato '.
45 'WHERE ( latitudine IS NULL OR longitudine IS NULL OR cap IS NULL ) '.
46 'AND ( timestamp_geocode IS NULL OR timestamp_geocode < ? OR timestamp_aggiornamento > timestamp_geocode ) '.
47 'ORDER BY timestamp_geocode ASC '.
49 array( array(
's' => strtotime(
'-1 day' ) ) )
56 if( ! empty( $geocode ) ) {
59 $status[
'indirizzo'] = $geocode;
62 if(
mysqlQuery(
$cf[
'mysql'][
'connection'],
'START TRANSACTION' ) ) {
66 $cf[
'memcache'][
'connection'],
67 $cf[
'mapquest'][
'server'][
'key'],
69 $geocode[
'indirizzo'],
80 if( ! empty( $gc ) ) {
84 $cf[
'mysql'][
'connection'],
85 'UPDATE indirizzi SET latitudine = ?, longitudine = ?, cap = ?, timestamp_geocode = unix_timestamp() WHERE id = ?',
87 array(
'd' => $gc[
'lat'] ),
88 array(
'd' => $gc[
'lng'] ),
89 array(
's' => $gc[
'cap'] ),
90 array(
's' => $geocode[
'id'] )
95 if( empty( $geocode[
'id_zona'] ) ) {
97 $idZona =
mysqlSelectValue(
$cf[
'mysql'][
'connection'],
'SELECT id_zona FROM zone_cap WHERE cap = ?', array( array(
's' => $gc[
'cap'] ) ) );
99 if( ! empty( $idZona ) ) {
100 mysqlQuery(
$cf[
'mysql'][
'connection'],
'UPDATE indirizzi SET id_zona = ? WHERE id = ?', array( array(
's' => $idZona ), array(
's' => $geocode[
'id'] ) ) );
109 logWrite(
'salvataggio della geolocalizzazione completato',
'geocode', LOG_DEBUG );
115 $cf[
'mysql'][
'connection'],
116 'UPDATE indirizzi SET timestamp_geocode = unix_timestamp() WHERE id = ?',
118 array(
's' => $geocode[
'id'] )
123 # mysqlQuery( $cf['mysql']['connection'], 'ROLLBACK' ); 129 $status[
'info'][] =
'geolocalizzazione fallita';
132 logWrite(
'impossibile ottenere la geolocalizzazione',
'geocode', LOG_ERR );
139 $status[
'info'][] =
'transazione fallita';
142 logWrite(
'impossibile avviare la transazione per geolocalizzare un indirizzo',
'geocode', LOG_ERR );
149 $status[
'info'][] =
'nessun indirizzo in coda';
152 logWrite(
'nessun indirizzo in coda da geolocalizzare',
'geocode', LOG_INFO );
166 logWrite(
'impossibile acquisire il lock sulle tabelle di coda',
'geocode', LOG_ERR );
logWrite( $m, $f='site', $l=LOG_NOTICE, $d=DIRECTORY_LOG, $t=CURRENT_LOG_LEVEL, $s=SITE_STATUS)
scrive un messaggio nei log del sito
$cf['ricerca']['template']
if(! defined( 'CRON_RUNNING')) $status