create array of objects with all forms fields plus coordinates

This commit is contained in:
lenovo
2022-11-03 11:21:06 +01:00
parent 083afb9acc
commit e6857d2849

View File

@@ -1,5 +1,20 @@
<?php <?php
function mp_get_form_fields() {
$get_form_args = array(
'numberposts' => -1,
'post_status' => 'publish',
'post_type' => 'acf-field',
);
$forms = get_posts($get_form_args);
$fields = [];
foreach ($forms as $form) {
$field = $form->post_excerpt;
array_push($fields, $field);
}
return $fields;
}
function mp_get_published_posts() { function mp_get_published_posts() {
// $get_posts_args = array( // $get_posts_args = array(
// 'numberposts' => -1, // 'numberposts' => -1,
@@ -20,6 +35,12 @@ function mp_get_published_posts() {
// mp_console_log("acf published: "); // mp_console_log("acf published: ");
// mp_console_log($posts_published); // mp_console_log($posts_published);
// mp_console_log("\n"); // mp_console_log("\n");
// $list_fields = [];
// foreach ($posts_published as $post) {
// $field = $post->post_excerpt;
// array_push($list_fields, $field);
// }
// mp_console_log($list_fields);
// $get_posts_args = array( // $get_posts_args = array(
// 'numberposts' => 1, // 'numberposts' => 1,
@@ -47,16 +68,20 @@ function mp_get_published_posts() {
'post_type' => 'post', 'post_type' => 'post',
); );
$posts_published = get_posts($get_posts_args); $posts_published = get_posts($get_posts_args);
mp_console_log("posts: "); // mp_console_log("posts: ");
mp_console_log($posts_published); // mp_console_log($posts_published);
mp_console_log("\n"); // mp_console_log("\n");
// $post = $posts_published[0]; // $post = $posts_published[1];
// mp_console_log("post :"); // mp_console_log("post :");
// mp_console_log($post); // mp_console_log($post);
// mp_console_log("\n"); // mp_console_log("\n");
// $adresse = get_field('adresse', $post->ID); // $adresse = get_field('adresse', $post->ID);
// mp_console_log("field adresse :"); // mp_console_log("field adresse :");
// mp_console_log($adresse); // mp_console_log($adresse);
// mp_console_log("\n");
// $adresse = get_field('fonction', $post->ID);
// mp_console_log("field fonction :");
// mp_console_log($adresse);
// mp_console_log("\n"); // mp_console_log("\n");
return $posts_published; return $posts_published;
@@ -83,6 +108,23 @@ function mp_convert_coordinates(&$address) {
return $coordinates; return $coordinates;
} }
function mp_get_coordinates(&$marker) {
global $mp_api_key;
$address = $marker->adresse . ","
. $marker->ville . ","
. $marker->pays;
mp_console_log("address:");
mp_console_log($address);
$geolocation = 'https://maps.googleapis.com/maps/api/geocode/json'
. '?address=' . urlencode($address)
. '&key=' . $mp_api_key;
$jsoncontent = file_get_contents($geolocation);
$content = json_decode($jsoncontent);
$coordinates = $content->results[0]->geometry->location;
return $coordinates;
}
function mp_post_content($post) { function mp_post_content($post) {
//temp //temp
@@ -145,11 +187,11 @@ function mp_post_content($post) {
return $content; return $content;
} }
function mp_retrieve_address(&$posts_list) { function mp_retrieve_address($posts_list) {
$locs = array(); $locs = array();
foreach ($posts_list as $post) { foreach ($posts_list as $post) {
$content = mp_post_content($post); $content = mp_post_content($post);
$address = mp_extract_address($content); $address = mp_extract_address($post);
if (strlen($address) > 0) if (strlen($address) > 0)
{ {
$lat_lng = mp_convert_coordinates($address); $lat_lng = mp_convert_coordinates($address);
@@ -160,10 +202,28 @@ function mp_retrieve_address(&$posts_list) {
return $locs; return $locs;
} }
function mp_fill_fields_value(&$form_fields, $id) {
$marker = (object)[];
foreach($form_fields as $field) {
$marker->$field = get_field($field, $id);
}
return $marker;
}
function mp_get_published_markers() { function mp_get_published_markers() {
$posts_list = mp_get_published_posts(); $posts_list = mp_get_published_posts();
$markers = mp_retrieve_address($posts_list); $form_fields = mp_get_form_fields();
return $markers; $markers = [];
foreach ($posts_list as $post) {
$marker = mp_fill_fields_value($form_fields, $post->ID);
$marker->coordinates = mp_get_coordinates($marker);
array_push($markers, $marker);
}
mp_console_log("markers:");
mp_console_log($markers);
$tmp_markers = mp_retrieve_address($posts_list);
return $tmp_markers;
} }
?> ?>