Status

Terminé

En cours

Prévu


Associé-e BBE
Label

Label haie

Label végétal local

Type de projet

Lieux de plantation

Producteur de bois

Acheteur de bois

Acheteur de chaleur

Plateforme logistique

post_content, 'cartographie')) { wp_enqueue_style( 'leaflet-css', plugin_dir_url(__FILE__) . 'css/leaflet.css', array(), '1.9.3' ); wp_enqueue_script( 'leaflet-js', plugin_dir_url(__FILE__) . 'js/leaflet.js', array(), '1.9.3', true ); wp_enqueue_style( 'leaflet-markercluster-css', plugin_dir_url(__FILE__) . 'css/MarkerCluster.Default.css', array(), '1.5.3' ); wp_enqueue_script( 'leaflet-markercluster-js', plugin_dir_url(__FILE__) . 'js/leaflet.markercluster.js', array('leaflet-js', 'jquery'), '1.5.3', true ); wp_enqueue_script( 'cartographie-script', plugin_dir_url(__FILE__) . 'js/main.js', array('leaflet-js', 'leaflet-markercluster-js'), '1.0', true ); wp_localize_script( 'cartographie-script', 'wpApiSettings', array( 'root' => esc_url_raw( rest_url() ), 'nonce' => wp_create_nonce( 'wp_rest' ) ) ); wp_enqueue_style( 'cartographie-style', plugin_dir_url(__FILE__) . 'css/cartographie.css', array(), '1.0' ); } } add_action('rest_api_init', function() { register_rest_route('custom/v1', '/markers', array( 'methods' => "GET", 'permission_callback' => '__return_true', 'callback' => 'get_cartographie_markers' )); }); function get_cartographie_markers() { global $wpdb; $table_name = $wpdb->prefix . 'posts'; $results = $wpdb->get_results(" SELECT wp_posts.ID, wp_posts.post_title, wp_term_taxonomy.taxonomy, GROUP_CONCAT(wp_terms.term_id ORDER BY wp_terms.term_id) AS term_ids, GROUP_CONCAT(wp_terms.name ORDER BY wp_terms.term_id) AS term_names FROM wp_posts INNER JOIN wp_term_relationships ON wp_posts.ID = wp_term_relationships.object_id INNER JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id INNER JOIN wp_terms ON wp_term_taxonomy.term_id = wp_terms.term_id WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'markercartographie' GROUP BY wp_posts.ID, wp_term_taxonomy.taxonomy; "); $structured_data = []; $image_results = $wpdb->get_results(" SELECT wp_posts.ID, wp_postmeta.meta_value AS image_id, image_posts.guid AS image_url FROM wp_posts LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_thumbnail_id' LEFT JOIN wp_posts AS image_posts ON wp_postmeta.meta_value = image_posts.ID WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type = 'markercartographie'; "); $image_data = []; foreach ($image_results as $image_row) { $image_data[$image_row->ID] = [ 'image_id' => $image_row->image_id, 'image_url' => $image_row->image_url, ]; } foreach ($results as $row) { if (!isset($structured_data[$row->ID])) { $structured_data[$row->ID] = [ 'name' => $row->post_title, ]; } if ($row->taxonomy == "categorielabel") { $structured_data[$row->ID][$row->taxonomy] = explode(",", $row->term_names); } else { $structured_data[$row->ID][$row->taxonomy] = $row->term_names; } if (isset($image_data[$row->ID])) { $structured_data[$row->ID]['image'] = $image_data[$row->ID]; } } return $structured_data; } function wpm_custom_post_type() { $labels = array( 'name' => _x( 'Cartographie', 'Post Type General Name'), 'singular_name' => _x( 'Cartographie', 'Post Type Singular Name'), 'menu_name' => __( 'Cartographie'), 'all_items' => __( 'Tous les marqueurs'), 'view_item' => __( 'Voir les marqueurs'), 'add_new_item' => __( 'Ajouter un nouveau marqueur'), 'add_new' => __( 'Ajouter'), 'edit_item' => __( 'Editer le marqueur'), 'update_item' => __( 'Modifier le marqueur'), 'search_items' => __( 'Rechercher un marqueur'), 'not_found' => __( 'Non trouvée'), 'not_found_in_trash' => __( 'Non trouvée dans la corbeille'), ); $args = array( 'label' => __( 'Cartographie'), 'description' => __( 'Tous sur les markers de la cartographie'), 'labels' => $labels, 'menu_icon' => 'dashicons-video-alt2', 'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ), 'show_in_rest' => true, 'rest_base' => 'markers', 'rest_controller_class' => 'WP_REST_Posts_Controller', 'hierarchical' => false, 'public' => true, 'has_archive' => true, 'rewrite' => array( 'slug' => 'cartographie'), ); register_post_type( 'markercartographie', $args ); } add_action( 'init', 'wpm_custom_post_type', 0 ); add_action( 'init', 'wpm_add_taxonomies', 0 ); function wpm_add_taxonomies() { $labels_annee = array( 'name' => _x( 'Année', 'taxonomy general name'), 'singular_name' => _x( 'Année', 'taxonomy singular name'), 'search_items' => __( 'Chercher une année'), 'all_items' => __( 'Toutes les années'), 'edit_item' => __( "Editer l'année"), 'update_item' => __( "Mettre à jour l'année"), 'add_new_item' => __( 'Ajouter une nouvelle année'), 'new_item_name' => __( 'Valeur de la nouvelle année'), 'separate_items_with_commas' => __( 'Séparer les réalisateurs avec une virgule'), 'menu_name' => __( 'Année'), ); $labels_latitude = array( 'name' => _x( 'Latitude', 'taxonomy general name'), 'singular_name' => _x( 'Latitude', 'taxonomy singular name'), 'search_items' => __( 'Chercher une latitude'), 'all_items' => __( 'Toutes les latitudes'), 'edit_item' => __( 'Editer la latitude'), 'update_item' => __( 'Mettre à jour la latitude'), 'add_new_item' => __( 'Ajouter une nouvelle latitude'), 'new_item_name' => __( 'Valeur de la nouvelle latitude'), 'separate_items_with_commas' => __( 'Séparer les réalisateurs avec une virgule'), 'menu_name' => __( 'Latitude'), ); $labels_longitude = array( 'name' => _x( 'Longitude', 'taxonomy general name'), 'singular_name' => _x( 'Longitude', 'taxonomy singular name'), 'search_items' => __( 'Chercher une longitude'), 'all_items' => __( 'Toutes les longitude'), 'edit_item' => __( 'Editer la longitude'), 'update_item' => __( 'Mettre à jour la longitude'), 'add_new_item' => __( 'Ajouter une nouvelle longitude'), 'new_item_name' => __( 'Valeur de la nouvelle longitude'), 'separate_items_with_commas' => __( 'Séparer les réalisateurs avec une virgule'), 'menu_name' => __( 'Longitude'), ); $labels_codepstl = array( 'name' => _x( 'Code postal', 'taxonomy general name'), 'singular_name' => _x( 'Code postal', 'taxonomy singular name'), 'search_items' => __( 'Chercher une longitude'), 'all_items' => __( 'Tous les codes postaux'), 'edit_item' => __( 'Editer le code postal'), 'update_item' => __( 'Mettre à jour le code postal'), 'add_new_item' => __( 'Ajouter un nouveau code postal'), 'new_item_name' => __( 'Valeur du nouveau code postal'), 'separate_items_with_commas' => __( 'Séparer les réalisateurs avec une virgule'), 'menu_name' => __( 'Code postal'), ); $labels_ville = array( 'name' => _x( 'Ville', 'taxonomy general name'), 'singular_name' => _x( 'Ville', 'taxonomy singular name'), 'search_items' => __( 'Chercher une ville'), 'all_items' => __( 'Toutes les villes'), 'edit_item' => __( 'Editer la ville'), 'update_item' => __( 'Mettre à jour la ville'), 'add_new_item' => __( 'Ajouter une nouvelle ville'), 'new_item_name' => __( 'Valeur de la nouvelle ville'), 'separate_items_with_commas' => __( 'Séparer les réalisateurs avec une virgule'), 'menu_name' => __( 'Ville'), ); $labels_cat_serie = array( 'name' => _x( "Domaine d'activité", 'taxonomy general name'), 'singular_name' => _x( "Domaine d'activité", 'taxonomy singular name'), 'search_items' => __( "Rechercher un domaine d'activité"), 'all_items' => __( "Tous les domaines d'activités"), 'edit_item' => __( "Editer un domaine d'activité"), 'update_item' => __( "Mettre à jour un domaine d'activité"), 'add_new_item' => __( "Ajouter un nouveau domaine d'activité"), 'new_item_name' => __( "Nom du nouveau domaine d'activité"), 'add_or_remove_items' => __( "Ajouter ou supprimer un domaine d'activité"), 'choose_from_most_used' => __( "Choisir parmi les domaines d'activité les plus utilisées"), 'not_found' => __( "Pas de domaine d'activité trouvées"), 'menu_name' => __( "Domaine d'activité"), ); $labels_label_serie = array( 'name' => _x( 'Label', 'taxonomy general name'), 'singular_name' => _x( 'Label', 'taxonomy singular name'), 'search_items' => __( 'Rechercher un label'), 'popular_items' => __( 'Labels populaires'), 'all_items' => __( 'Tous les labels'), 'edit_item' => __( 'Editer un label'), 'update_item' => __( 'Mettre à jour un label'), 'add_new_item' => __( 'Ajouter un nouveau label'), 'new_item_name' => __( 'Nom du nouveau label'), 'add_or_remove_items' => __( 'Ajouter ou supprimer un label'), 'choose_from_most_used' => __( 'Choisir parmi les labels les plus utilisées'), 'not_found' => __( 'Pas de label trouvées'), 'menu_name' => __( 'Label'), ); $labels_avancement_serie = array( 'name' => _x( 'Avancement du projet', 'taxonomy general name'), 'singular_name' => _x( 'Avancement du projet', 'taxonomy singular name'), 'search_items' => __( 'Rechercher un avancement de projet'), 'popular_items' => __( 'Avancement de projet populaires'), 'all_items' => __( 'Tous les avancement de projet'), 'edit_item' => __( 'Editer un avancement de projet'), 'update_item' => __( 'Mettre à jour un avancement de projet'), 'add_new_item' => __( 'Ajouter un nouvel avancement de projet'), 'new_item_name' => __( 'Nom du nouveau avancement de projet'), 'add_or_remove_items' => __( 'Ajouter ou supprimer un avancement de projet'), 'choose_from_most_used' => __( 'Choisir parmi les avancement de projet les plus utilisées'), 'not_found' => __( "Pas d'avancemenet de projet trouvées"), 'menu_name' => __( 'Avancement du projet'), ); $labels_associe = array( 'name' => _x( 'Associé BBE', 'taxonomy general name'), 'singular_name' => _x( 'Associé BBE', 'taxonomy singular name'), 'search_items' => __( 'Chercher une association'), 'all_items' => __( 'Toutes les associations'), 'edit_item' => __( "Editer l'association"), 'update_item' => __( 'Mettre à jour l année'), 'add_new_item' => __( 'Ajouter une nouvelle association'), 'new_item_name' => __( 'Valeur de la nouvelle association'), 'separate_items_with_commas' => __( 'Séparer les réalisateurs avec une virgule'), 'menu_name' => __( 'Associé-e BBE'), ); $args_cat_serie = array( 'hierarchical' => true, 'labels' => $labels_cat_serie, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'categories-series' ), ); $args_label_serie = array( 'hierarchical' => true, 'labels' => $labels_label_serie, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'categories-label' ), ); $args_avancement_serie = array( 'hierarchical' => true, 'labels' => $labels_avancement_serie, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'categories-avancement' ), ); $args_associe = array( 'hierarchical' => false, 'labels' => $labels_associe, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'associe' ), ); $args_ville = array( 'hierarchical' => false, 'labels' => $labels_ville, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'ville' ), ); $args_codepstl = array( 'hierarchical' => false, 'labels' => $labels_codepstl, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'codepstl' ), ); $args_latitude = array( 'hierarchical' => false, 'labels' => $labels_latitude, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'latitude' ), ); $args_annee = array( 'hierarchical' => false, 'labels' => $labels_annee, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'annees' ), ); $args_longitude = array( 'hierarchical' => false, 'labels' => $labels_longitude, 'show_ui' => true, 'show_in_rest' => true, 'show_admin_column' => true, 'query_var' => true, 'public' => true, 'rewrite' => array( 'slug' => 'longitude' ), ); register_taxonomy( 'associe', 'markercartographie', $args_associe ); register_taxonomy( 'categoriesseries', 'markercartographie', $args_cat_serie ); register_taxonomy( 'avancementduprojet', 'markercartographie', $args_avancement_serie ); register_taxonomy( 'categoriesseries', 'markercartographie', $args_cat_serie ); register_taxonomy( 'categorielabel', 'markercartographie', $args_label_serie ); register_taxonomy( 'categorielabel', 'markercartographie', $args_label_serie ); register_taxonomy( 'ville', 'markercartographie', $args_ville ); register_taxonomy( 'annees', 'markercartographie', $args_annee ); register_taxonomy( 'codepstl', 'markercartographie', $args_codepstl ); register_taxonomy( 'longitude', 'markercartographie', $args_longitude ); register_taxonomy( 'latitude', 'markercartographie', $args_latitude ); }