From 91def4dc819108238148c62208e3ee6c55ed2e50 Mon Sep 17 00:00:00 2001 From: lrullo Date: Mon, 12 Nov 2018 18:49:28 +0100 Subject: [PATCH] API get georeference & attachments - https://chiasso.soinumapa.net/wp-json/wp/v2/marker/5 --- soundmap.php | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/soundmap.php b/soundmap.php index ef01e4f..8a9631a 100644 --- a/soundmap.php +++ b/soundmap.php @@ -385,12 +385,50 @@ if (!class_exists('Soundmap')){ add_action('wp_ajax_soundmap-get-content',array($this, 'soundmap_get_content')); + /* REST API Options */ + add_action('rest_api_init', + register_rest_field('marker','georeference', + array( + 'get_callback' => 'marker_get_georeference', + 'schema' => null + ) + ) + ); + + add_action('rest_api_init', + register_rest_field('marker','media', + array( + 'get_callback' => 'marker_get_media', + 'schema' => null + ) + ) + ); + function marker_get_georeference ($object, $field_name, $request){ + //return $object['id']; + $lat = get_post_meta($object['id'], 'soundmap_marker_lat', true); + $lng = get_post_meta($object['id'], 'soundmap_marker_lng', true); + return [$lng,$lat]; + } + + function marker_get_media ($object, $field_name, $request) { + $files = get_post_meta($object['id'], 'soundmap_attachments_id', FALSE); + $files_str = []; + if ($files) : + foreach($files as $file){ + $data = wp_prepare_attachment_for_js( $file ); + array_push($files_str,$data); + } + endif; + return $files_str; + } /* add_action('wp_ajax_nopriv_soundmap_file_uploaded', array($this, 'ajax_file_uploaded_callback')); add_action('wp_ajax_nopriv_soundmap_save_public_upload', array($this, 'save_public_upload')); add_action('wp_ajax_nopriv_soundmap_verify_captcha', array($this, 'verify_captcha'));*/ - } + } + + function add_feed(){ global $wp_rewrite; @@ -629,7 +667,9 @@ if (!class_exists('Soundmap')){ $result['format'] = $fileInfo['fileformat']; return $result; - } + } + + } }