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
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() {
// $get_posts_args = array(
// 'numberposts' => -1,
@@ -20,6 +35,12 @@ function mp_get_published_posts() {
// mp_console_log("acf published: ");
// mp_console_log($posts_published);
// 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(
// 'numberposts' => 1,
@@ -47,16 +68,20 @@ function mp_get_published_posts() {
'post_type' => 'post',
);
$posts_published = get_posts($get_posts_args);
mp_console_log("posts: ");
mp_console_log($posts_published);
mp_console_log("\n");
// $post = $posts_published[0];
// mp_console_log("posts: ");
// mp_console_log($posts_published);
// mp_console_log("\n");
// $post = $posts_published[1];
// mp_console_log("post :");
// mp_console_log($post);
// mp_console_log("\n");
// $adresse = get_field('adresse', $post->ID);
// mp_console_log("field 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");
return $posts_published;
@@ -83,6 +108,23 @@ function mp_convert_coordinates(&$address) {
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) {
//temp
@@ -145,11 +187,11 @@ function mp_post_content($post) {
return $content;
}
function mp_retrieve_address(&$posts_list) {
function mp_retrieve_address($posts_list) {
$locs = array();
foreach ($posts_list as $post) {
$content = mp_post_content($post);
$address = mp_extract_address($content);
$address = mp_extract_address($post);
if (strlen($address) > 0)
{
$lat_lng = mp_convert_coordinates($address);
@@ -160,10 +202,28 @@ function mp_retrieve_address(&$posts_list) {
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() {
$posts_list = mp_get_published_posts();
$markers = mp_retrieve_address($posts_list);
return $markers;
$form_fields = mp_get_form_fields();
$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;
}
?>