create plugin menu and message if posts without address

This commit is contained in:
asus
2023-09-21 17:40:30 +02:00
parent be198d289c
commit f741a3fa79
5 changed files with 175 additions and 45 deletions

View File

@@ -23,6 +23,13 @@
## 1.2. todo
- [ ] create wp plugin menu
- [ ] add infos in menu
- [ ] gmaps api key
- [ ] missing addresses
- [ ]
- [ ]
- [ ]
- [ ]
## 1.3. temps de travail
@@ -115,9 +122,13 @@
- 21/09/23
- begin: 9h45
- mes: "understand how custom fields works"
- end: 12h45
- len: 3h00
- begin: 15h15
- mes: ""
- end: h
- len: h
- len: 3h
- total: h
- money: €

View File

@@ -38,6 +38,8 @@ require_once(dirname(__FILE__) . '/srcs/map_posts/mp_post_events_pages.php');
require_once(dirname(__FILE__) . '/srcs/publish/mp_get_coordinates.php');
require_once(dirname(__FILE__) . '/srcs/publish/mp_update_publish.php');
require_once(dirname(__FILE__) . '/srcs/menu/mp_menu_content.php');
@@ -54,8 +56,8 @@ function mp_ljdp_map() {
mp_enqueue_scripts_and_styles();
$events = mp_get_published_events(); // mp_get_events.php
// mp_console_log("events :");
// mp_console_log($events);
mp_console_log("events :");
mp_console_log($events);
// foreach ($events as $event) {
// mp_console_log("--------------- event :");
// mp_console_log("id: " . $event->id);
@@ -95,10 +97,11 @@ add_shortcode('lejourduprof_map', 'mp_ljdp_map');
* re-publish posts
*/
function mp_add_update_button() {
return mp_create_republish_button();
}
add_shortcode('ljdp_update_publish', 'mp_add_update_button');
// function mp_add_update_button() {
// return mp_create_republish_button();
// }
// add_shortcode('ljdp_update_publish', 'mp_add_update_button');
@@ -121,14 +124,35 @@ add_shortcode('ljdp_errors_map', 'mp_errors_map');
* find its coordinates
*/
// function post_published_coordinates($id, $post) {
//
// $location = mp_get_coordinates($id);
//
// if ( ! add_post_meta( $id, 'location', $location, true ) )
// update_post_meta( $id, 'location', $location );
//
// }
// add_action( 'publish_post', 'post_published_coordinates', 10, 2 );
function post_published_coordinates($id, $post) {
$location = mp_get_coordinates($id);
mp_console_log("location: ");
mp_console_log($location);
// if ( ! add_post_meta( $id, 'location', $location, true ) )
// update_post_meta( $id, 'location', $location );
}
add_action( 'publish_post', 'post_published_coordinates', 10, 2 );
/**
* menu plugin
*/
function ljdp_map_menu() {
add_menu_page(
'ljdp map', // page_title
'ljdp map', // menu_title
'manage_options', // capability
'ljdp-map-plugin', // menu_slug
'ljdp_map_plugin_content' // callback function to display page content
);
}
add_action('admin_menu', 'ljdp_map_menu');
?>

View File

@@ -143,32 +143,32 @@ function mp_fill_fields_value($id) {
function mp_get_published_events() {
$posts_list = mp_get_published_posts();
mp_console_log("posts :");
mp_console_log($posts_list);
foreach ($posts_list as $post) {
mp_console_log("--------------- post :");
$id = $post->ID;
mp_console_log("id: " . $id);
// mp_console_log("posts :");
// mp_console_log($posts_list);
// foreach ($posts_list as $post) {
// mp_console_log("--------------- post :");
// $id = $post->ID;
// mp_console_log("id: " . $id);
// mp_console_log("adresse: " . $event->adresse);
// mp_console_log("pays: " . $event->pays);
// mp_console_log("ville: " . $event->ville);
// mp_console_log("irl: " . $event->irl);
// mp_console_log($event);
//
$fields = get_fields($id);
mp_console_log("fields:");
mp_console_log($fields);
$field_heure = get_field("heure_de_debut", $id);
mp_console_log("field_heure: " . $field_heure);
$post_metas = get_post_meta($id);
mp_console_log("post_metas:");
mp_console_log($post_metas);
$post_custom = get_post_custom($id);
mp_console_log("post_custom:");
mp_console_log($post_custom);
// $fields = get_fields($id);
// mp_console_log("fields:");
// mp_console_log($fields);
// $field_heure = get_field("heure_de_debut", $id);
// mp_console_log("field_heure: " . $field_heure);
// $post_metas = get_post_meta($id);
// mp_console_log("post_metas:");
// mp_console_log($post_metas);
// $post_custom = get_post_custom($id);
// mp_console_log("post_custom:");
// mp_console_log($post_custom);
// foreach( $fields as $name => $value )
// mp_console_log($name . " : " . $value);
}
// }
$events = [];
foreach ($posts_list as $post) {

View File

@@ -0,0 +1,91 @@
<?php
function mp_get_all_posts() {
$get_posts_args = array(
'numberposts' => -1,
'post_type' => 'post',
);
$posts_list = get_posts($get_posts_args);
return $posts_list;
}
function mp_have_address($posts_list) {
$posts_no_address = [];
foreach ($posts_list as $post) {
$address = mp_get_address($post->ID);
if (empty($address))
array_push($posts_no_address, $post);
}
return $posts_no_address;
}
function mp_show_list_posts_no_address($posts) {
echo <<<HTML
<div style="border: 1px solid red; margin-right: 20px; padding: 0px 20px;">
<p style="color: red;">
<b>ATTENTION !</b>
</p>
<p>
<b>
HTML;
echo count($posts);
echo <<<HTML
</b>
articles n'ont pas d'adresse :
</p>
<ul style="list-style: square inside;">
HTML;
foreach ($posts as $post) {
echo <<<HTML
<li><b>
HTML;
echo 'id: ';
echo $post->ID;
echo ' (status: ';
echo $post->post_status;
echo ') - ';
echo $post->mode[0];
echo ' : </b>';
echo $post->post_title;
echo <<<HTML
</li>
HTML;
}
echo <<<HTML
</ul>
</div>
HTML;
}
function ljdp_map_plugin_content() {
$posts_list = mp_get_all_posts();
$posts_no_address = mp_have_address($posts_list);
mp_console_log("posts_no_address: ");
mp_console_log($posts_no_address);
echo <<<HTML
<div>
<h2>ljdp map plugin</h2>
HTML;
if (count($posts_no_address) > 0)
mp_show_list_posts_no_address($posts_no_address);
echo <<<HTML
</div>
HTML;
}
?>

View File

@@ -1,5 +1,17 @@
<?php
function mp_get_address($id) {
$presentiel = get_field("mode", $id);
// irl or online
if ($presentiel[0] === "En présentiel")
$address = get_field("adresse", $id);
else
$address = get_field("pays", $id);
return $address;
}
function mp_get_coordinates($id) {
global $mp_api_key;
$event = (object)[];
@@ -11,17 +23,8 @@ function mp_get_coordinates($id) {
$location->address = "";
$location->approximate = false;
// get address
$address = "";
$fields = array(
"adresse",
"ville",
"pays",
);
foreach($fields as $field) {
$address_section = get_field($field, $id);
$address .= $address_section . ",";
}
$address = mp_get_address($id);
mp_console_log("adresse: " . $address);
// get coordinates from google maps api
$geolocation = 'https://maps.googleapis.com/maps/api/geocode/json'
@@ -56,6 +59,7 @@ function mp_get_coordinates($id) {
if ($content->results[0]->geometry->location_type == "APPROXIMATE")
$location->approximate = true;
// clean strings
foreach ($location as $value) {
if (gettype($value) != "string")
continue;