diff --git a/srcs/plugins/map_prof/map_prof_hooks.php b/srcs/plugins/map_prof/map_prof_hooks.php
index 80873a3..976a3e3 100644
--- a/srcs/plugins/map_prof/map_prof_hooks.php
+++ b/srcs/plugins/map_prof/map_prof_hooks.php
@@ -138,18 +138,131 @@ add_shortcode('lejourduprof_map', 'mp_add_div');
/**
- * when a post is published, check its coordinates
+ * when a post is saved or published or updated,
+ * find its coordinates
*/
function post_published_coordinates($id, $post) {
- $coordinates_valid = true;
- $coordinates = mp_get_coordinates($id, $coordinates_valid);
+
+ if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
+ return;
+
+ if ( !isset( $_POST['ep_eventposts_nonce'] ) )
+ return;
+
+ if ( !wp_verify_nonce( $_POST['ep_eventposts_nonce'], plugin_basename( __FILE__ ) ) )
+ return;
+
+ // Is the user allowed to edit the post or page?
+ if ( !current_user_can( 'edit_post', $post->ID ) )
+ return;
+
+ $coordinates = mp_get_coordinates($id);
if ( ! add_post_meta( $id, 'coordinates', $coordinates, true ) )
update_post_meta( $id, 'coordinates', $coordinates );
- if ( ! add_post_meta( $id, 'coordinates_valid', $coordinates_valid, true ) )
- update_post_meta( $id, 'coordinates_valid', $coordinates_valid );
}
-add_action( 'publish_post', 'post_published_coordinates', 10, 2 );
+add_action( 'save_post', 'post_published_coordinates', 10, 2 );
+
+
+
+
+// https://wordpress.stackexchange.com/questions/42013/prevent-post-from-being-published-if-custom-fields-not-filled
+// https://developer.wordpress.org/reference/hooks/save_post/
+function test1($id, $post, $update) {
+
+ // is doing autosaving ?
+ if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
+ return;
+
+ // is post creation ?
+ if (!$update)
+ return;
+
+ // is the user allowed to edit the post or page ?
+ if ( !current_user_can( 'edit_post', $id ) )
+ return;
+
+ // is not being published ?
+ if ($post->post_status != "publish")
+ return;
+
+ $prevent_publish= true; // set to true if data was invalid
+ if ($prevent_publish) {
+
+ echo '
';
+
+ // unhook this function to prevent indefinite loop
+ remove_action('save_post', 'my_save_post');
+
+ // update the post to change post status
+ wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
+
+ // re-hook this function again
+ add_action('save_post', 'my_save_post');
+ }
+}
+add_action( 'save_post_post', 'test1', 10, 3);
+
+function my_notice() {
+ echo '';
+ components-notice-list components-editor-notices__pinned
+}
+//add_action( 'admin_notices', 'my_notice');
+
+function my_redirect_location($location,$post_id){
+
+ // if post was published...
+ if (isset($_POST['publish'])){
+
+ // obtain current post status
+ $status = get_post_status( $post_id );
+
+ // the post was 'published', but if it is still a draft, display draft message (10).
+ if($status=='draft')
+ $location = add_query_arg('message', 10, $location);
+ }
+
+ return $location;
+}
+//add_filter('redirect_post_location', 'my_redirect_location', 10, 2);
+
+/*
+ modification rapide, publie -> brouillon : 1 - draft
+ modification rapide, brouillon -> brouillon : 1 - draft
+ modification rapide, brouillon -> publie : 1 - publish
+ add post : 1 - auto-draft
+ modification, publie -> brouillon : 2 - draft
+ modification, brouillon -> brouillon : 2 - draft
+ modification, brouillon -> publie : 2 - publish
+*/
+
+//function test2($id, $post) {
+// mp_console_log("publish_post - " . $post->post_status);
+//}
+//add_action( 'publish_post', 'test2', 10, 2 );
+/*
+ modification rapide, publie -> brouillon : /
+ modification rapide, brouillon -> brouillon : /
+ modification rapide, brouillon -> publie : 1 - publish
+ add post : /
+ modification, publie -> brouillon : /
+ modification, brouillon -> brouillon : /
+ modification, brouillon -> publie : 2 - publish
+*/
+
+
+
+
+
+
+//function save_post_coordinates($id, $post) {
+// mp_console_log("coordinates is null");
+//}
+//add_action( 'publish_post', 'post_published_coordinates', 10, 2 );
?>
diff --git a/srcs/plugins/map_prof/mp_console_log.php b/srcs/plugins/map_prof/mp_console_log.php
index be85850..075d018 100644
--- a/srcs/plugins/map_prof/mp_console_log.php
+++ b/srcs/plugins/map_prof/mp_console_log.php
@@ -1,8 +1,25 @@
' . $js_code . '';
- echo $js_code;
+ $time = date('H:i');
+ $file = '/var/www/html/wp-debug.log';
+ file_put_contents($file, $time . " " . $output . "\n", FILE_APPEND);
}
+
+// function mp_console_log($output) {
+// $js_code = 'console.log(' . json_encode($output, JSON_HEX_TAG) . ');';
+// $js_code = '';
+// echo $js_code;
+// }
+
+// function mp_console_log($output, $with_script_tags = true) {
+// $js_code = 'console.log(' . json_encode($output, JSON_HEX_TAG) .
+// ');';
+// if ($with_script_tags) {
+// $js_code = '';
+// }
+// echo $js_code;
+// }
+
?>
diff --git a/srcs/plugins/map_prof/mp_get_coordinates.php b/srcs/plugins/map_prof/mp_get_coordinates.php
index 4772efb..7116106 100644
--- a/srcs/plugins/map_prof/mp_get_coordinates.php
+++ b/srcs/plugins/map_prof/mp_get_coordinates.php
@@ -1,13 +1,12 @@
$field = $address_section;
- if (strlen($address_section) == 0)
- $errors++;
+ $address .= $address_section . ",";
}
- // check errors
- if ($errors > 0)
- $valid = false;
- else
- $valid = true;
-
- // concat as an address
- $address = $event->adresse . ","
- . $event->ville . ","
- . $event->pays;
-
// get coordinates from google maps api
- if ($errors < 3) {
- $geolocation = 'https://maps.googleapis.com/maps/api/geocode/json'
- . '?address=' . urlencode($address)
- . '&key=' . $mp_api_key;
- $jsoncontent = file_get_contents($geolocation);
+ $geolocation = 'https://maps.googleapis.com/maps/api/geocode/json'
+ . '?address=' . urlencode($address)
+ . '&key=' . $mp_api_key;
+ $jsoncontent = file_get_contents($geolocation);
- // extract coordinates from json
- $content = json_decode($jsoncontent);
- $coordinates = $content->results[0]->geometry->location;
- }
-
- // if null, set to default (by default, france)
- if ($coordinates == null)
- $coordinates = $mp_coordinates_default;
+ // extract coordinates from json
+ $content = json_decode($jsoncontent);
+ $coordinates = $content->results[0]->geometry->location;
return $coordinates;
}
diff --git a/srcs/plugins/map_prof/mp_get_events.php b/srcs/plugins/map_prof/mp_get_events.php
index 2f0d980..0575e8f 100644
--- a/srcs/plugins/map_prof/mp_get_events.php
+++ b/srcs/plugins/map_prof/mp_get_events.php
@@ -127,7 +127,7 @@ function mp_get_published_posts() {
return $posts_published;
}
-function mp_fill_fields_value($post, $id, &$pays) {
+function mp_fill_fields_value($id, &$pays) {
/*
* get_field is an ACF function
@@ -170,9 +170,15 @@ function mp_get_published_events(&$pays) {
$posts_list = mp_get_published_posts();
$events = [];
foreach ($posts_list as $post) {
- $event = mp_fill_fields_value($post, $post->ID, $pays);
+ $event = mp_fill_fields_value($post->ID, $pays);
$event->id = $post->ID;
$event->title = $post->post_title;
+ // TEMP
+ if (strlen($event->pays) == 0) {
+ mp_console_log("pays nulle:");
+ mp_console_log($event);
+ }
+ //
array_push($events, $event);
}
mp_console_log("nombre de posts: " . count($events));