Files
2023_WEBSITE_jipf/srcs/plugins/map_prof/map_prof_hooks.php
2023-09-21 20:52:16 +02:00

159 lines
3.5 KiB
PHP

<?php
/*
Plugin Name: map_prof
Plugin URI:
Description: add/remove locations on map at publication/deletion of posts
Author: hugogogo
Version: 1.2.0
Author URI:
*/
/**
* inclusions :
*/
include_once(dirname(__FILE__) . '/utils/mp_console_log.php');
require_once(dirname(__FILE__) . '/mp_enqueue.php');
require_once(dirname(__FILE__) . '/settings/mp_required.php');
require_once(dirname(__FILE__) . '/settings/mp_optionnals.php');
require_once(dirname(__FILE__) . '/settings/mp_globals.php');
require_once(dirname(__FILE__) . '/settings/mp_url_api.php');
require_once(dirname(__FILE__) . '/srcs/errors/mp_address_errors.php');
require_once(dirname(__FILE__) . '/srcs/map/mp_add_to_scripts.php');
require_once(dirname(__FILE__) . '/srcs/map/mp_create_div.php');
require_once(dirname(__FILE__) . '/srcs/map/mp_get_events.php');
require_once(dirname(__FILE__) . '/srcs/map/mp_get_filters.php');
require_once(dirname(__FILE__) . '/srcs/map/mp_get_locations.php');
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');
/**
* when 'shortcode' found in page, enqueue scripts and styles,
* run php script, and replace shortcode by return value
*/
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);
// foreach ($events as $event) {
// mp_console_log("--------------- event :");
// mp_console_log("id: " . $event->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($event_id);
// mp_console_log($fields);
// foreach( $fields as $name => $value )
// mp_console_log($name . " : " . $value);
// }
$locations = mp_sort_events($events); // mp_get_locations.php
$filters = mp_get_filters($events); // mp_get_filters.php
// if post event instead of map page, change coordinate and zoom
mp_post_event_pages_setting();
mp_add_to_scripts(array(
"locations" => $locations,
"filters" => $filters,
));
return mp_create_div($filters);
}
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');
/**
* errors map
*/
function mp_errors_map() {
return mp_find_address_errors();
}
add_shortcode('ljdp_errors_map', 'mp_errors_map');
/**
* when a post is saved or published or updated,
* find its coordinates
*/
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');
?>