par
chaosad2 » 03 janv. 2023, 22:04
Bonsoir,
Je pensais en avoir mis suffisamment, désolé !

Pour être complet, il s'agit d'un fichier functions.php de wordpress.
Le voici :
Code : Tout sélectionner
<?php
//MISE A JOUR DES CHAMPS
add_action( 'acf_frontend/save_post', 'update_acf_field_value');
require_once('gpx_converter/parseGpx.php');
function update_acf_field_value(){
$url = get_field('fichier_gpx', $post->ID)['url'];
$gpxStr = file_get_contents($url);
$r = parseGpx($gpxStr);
//print_r (parseGpx($gpxStr));
$lenght = $r->distance;
$lenght2 = ceil($lenght);
$d_plus = $r->d_plus;
$d_plus2 = ceil($d_plus);
$d_moins = $r->d_moins;
$d_moins2 = ceil($d_moins);
$z_min = $r->z_min;
$z_min2 = ceil($z_min);
$z_max = $r->z_max;
$z_max2 = ceil($z_max);
$latdepart = $r->latwpt1;
$londepart = $r->lonwpt1;
$latdepart2 = number_format($latdepart, 5);
$londepart2 = number_format($londepart, 5);
update_field('distance',$lenght2);
update_field('denivele_positif',$d_plus2);
update_field('denivele_negatif',-$d_moins2);
update_field('altitude_min',$z_min2);
update_field('altitude_max',$z_max2);
update_field('latitude_depart',$latdepart2);
update_field('longitude_depart',$londepart2);
}
//FIN MISE A JOUR DES CHAMPS
//NOMINATIM
$latnominatim = 47.5;
$lonnominatim = 4.5;
require_once('gpx_converter/nominatim.php');
//FIN NOMINATIM
?>
Toute la partie "mise à jour des champs ACF" fonctionne bien (même si peut-être mon code est-il perfectible, je débute seulement).
Quant au code du fichier nominatim.php, le voici en intégralité :
Code : Tout sélectionner
<?php
function getAddress($RG_Lat,$RG_Lon)
{
$json = "https://nominatim.openstreetmapPOINTorg/reverse?format=jsonv2&lat=".$RG_Lat."&lon=".$RG_Lon."&zoom=10&addressdetails=1";
$ch = curl_init($json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0");
$jsonfile = curl_exec($ch);
curl_close($ch);
$RG_array = json_decode($jsonfile,true);
return $RG_array['address']['village'];
//$RG_array['display_name'];
//$RG_array['address']['country'];
}
$addr = getAddress($latnominatim,$lonnominatim);
echo "Adresse : ".$addr;
?>
Comme je le disais, avec les coordonnées GPS
J'ai le bon nom de ville qui s'affiche.
Alors que j'aimerais désormais que ce soit la ville correspondant aux coordonnées $latdepart2 et $londepart2 de la fonction.
Je suis en phase de bricolage / test / essai...
A terme, j'aimerais qu'un champ ACF se mette à jour avec
à la fin de la fonction initiale.
En espérant être clair !

Bonsoir,
Je pensais en avoir mis suffisamment, désolé ! :-)
Pour être complet, il s'agit d'un fichier functions.php de wordpress.
Le voici :
[code]
<?php
//MISE A JOUR DES CHAMPS
add_action( 'acf_frontend/save_post', 'update_acf_field_value');
require_once('gpx_converter/parseGpx.php');
function update_acf_field_value(){
$url = get_field('fichier_gpx', $post->ID)['url'];
$gpxStr = file_get_contents($url);
$r = parseGpx($gpxStr);
//print_r (parseGpx($gpxStr));
$lenght = $r->distance;
$lenght2 = ceil($lenght);
$d_plus = $r->d_plus;
$d_plus2 = ceil($d_plus);
$d_moins = $r->d_moins;
$d_moins2 = ceil($d_moins);
$z_min = $r->z_min;
$z_min2 = ceil($z_min);
$z_max = $r->z_max;
$z_max2 = ceil($z_max);
$latdepart = $r->latwpt1;
$londepart = $r->lonwpt1;
$latdepart2 = number_format($latdepart, 5);
$londepart2 = number_format($londepart, 5);
update_field('distance',$lenght2);
update_field('denivele_positif',$d_plus2);
update_field('denivele_negatif',-$d_moins2);
update_field('altitude_min',$z_min2);
update_field('altitude_max',$z_max2);
update_field('latitude_depart',$latdepart2);
update_field('longitude_depart',$londepart2);
}
//FIN MISE A JOUR DES CHAMPS
//NOMINATIM
$latnominatim = 47.5;
$lonnominatim = 4.5;
require_once('gpx_converter/nominatim.php');
//FIN NOMINATIM
?>
[/code]
Toute la partie "mise à jour des champs ACF" fonctionne bien (même si peut-être mon code est-il perfectible, je débute seulement).
Quant au code du fichier nominatim.php, le voici en intégralité :
[code]
<?php
function getAddress($RG_Lat,$RG_Lon)
{
$json = "https://nominatim.openstreetmapPOINTorg/reverse?format=jsonv2&lat=".$RG_Lat."&lon=".$RG_Lon."&zoom=10&addressdetails=1";
$ch = curl_init($json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0");
$jsonfile = curl_exec($ch);
curl_close($ch);
$RG_array = json_decode($jsonfile,true);
return $RG_array['address']['village'];
//$RG_array['display_name'];
//$RG_array['address']['country'];
}
$addr = getAddress($latnominatim,$lonnominatim);
echo "Adresse : ".$addr;
?>
[/code]
Comme je le disais, avec les coordonnées GPS
[code]$latnominatim = 47.5;
$lonnominatim = 4.5;[/code]
J'ai le bon nom de ville qui s'affiche.
Alors que j'aimerais désormais que ce soit la ville correspondant aux coordonnées $latdepart2 et $londepart2 de la fonction.
Je suis en phase de bricolage / test / essai...
A terme, j'aimerais qu'un champ ACF se mette à jour avec
[code]update_field('départ',$addr);[/code] à la fin de la fonction initiale.
En espérant être clair ! ;-)