764 lines
31 KiB
PHP
764 lines
31 KiB
PHP
<?php
|
|
|
|
// exit if accessed directly
|
|
if ( !defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
// check if class already exists
|
|
|
|
if ( !class_exists( 'mapster_acf_field_map' ) ) {
|
|
class mapster_acf_field_map extends acf_field
|
|
{
|
|
/*
|
|
* __construct
|
|
*
|
|
* This function will setup the field type data
|
|
*
|
|
* @type function
|
|
* @date 5/03/2014
|
|
* @since 5.0.0
|
|
*
|
|
* @param n/a
|
|
* @return n/a
|
|
*/
|
|
function __construct( $settings )
|
|
{
|
|
/*
|
|
* name (string) Single word, no spaces. Underscores allowed
|
|
*/
|
|
$this->name = 'mapster-map';
|
|
/*
|
|
* label (string) Multiple words, can include spaces, visible when selecting a field type
|
|
*/
|
|
$this->label = __( 'Mapster Map', 'mapster_acf_plugin_map' );
|
|
/*
|
|
* category (string) basic | content | choice | relational | jquery | layout | CUSTOM GROUP NAME
|
|
*/
|
|
$this->category = 'jquery';
|
|
/*
|
|
* defaults (array) Array of default settings which are merged into the field object. These are used later in settings
|
|
*/
|
|
// $this->default_value = 'default';
|
|
$this->defaults = array(
|
|
'default_value' => '{ "type" : "FeatureCollection", "features" : [] }',
|
|
);
|
|
/*
|
|
* l10n (array) Array of strings that are used in JavaScript. This allows JS strings to be translated in PHP and loaded via:
|
|
* var message = acf._e('FIELD_NAME', 'error');
|
|
*/
|
|
// $this->l10n = array(
|
|
// 'error' => __('Error! Please enter a higher value', 'mapster_acf_plugin_map'),
|
|
// );
|
|
/*
|
|
* settings (array) Store plugin settings (url, path, version) as a reference for later use with assets
|
|
*/
|
|
$this->settings = $settings;
|
|
// do not delete!
|
|
parent::__construct();
|
|
}
|
|
|
|
/*
|
|
* render_field_settings()
|
|
*
|
|
* Create extra settings for your field. These are visible when editing a field
|
|
*
|
|
* @type action
|
|
* @since 3.6
|
|
* @date 23/01/13
|
|
*
|
|
* @param $field (array) the $field being edited
|
|
* @return n/a
|
|
*/
|
|
function render_field_settings( $field )
|
|
{
|
|
/*
|
|
* acf_render_field_setting
|
|
*
|
|
* This function will create a setting for your field. Simply pass the $field parameter and an array of field settings.
|
|
* The array of settings does not require a `value` or `prefix`; These settings are found from the $field array.
|
|
*
|
|
* More than one setting can be added by copy/paste the above code.
|
|
* Please note that you must also have a matching $defaults value for the field name (font_size)
|
|
*/
|
|
acf_render_field_setting( $field, array(
|
|
'label' => __( 'Points', 'mapster_acf_plugin_map' ),
|
|
'instructions' => __( 'Allow Point creation.', 'mapster_acf_plugin_map' ),
|
|
'default_value' => 1,
|
|
'ui' => 1,
|
|
'ui_on_text' => 'On',
|
|
'ui_off_text' => 'Off',
|
|
'type' => 'true_false',
|
|
'name' => 'mapster-draw-type-point',
|
|
) );
|
|
acf_render_field_setting( $field, array(
|
|
'label' => __( 'LineStrings', 'mapster_acf_plugin_map' ),
|
|
'instructions' => __( 'Allow LineString creation.', 'mapster_acf_plugin_map' ),
|
|
'default_value' => 1,
|
|
'ui' => 1,
|
|
'ui_on_text' => 'On',
|
|
'ui_off_text' => 'Off',
|
|
'type' => 'true_false',
|
|
'name' => 'mapster-draw-type-linestring',
|
|
) );
|
|
acf_render_field_setting( $field, array(
|
|
'label' => __( 'Polygons', 'mapster_acf_plugin_map' ),
|
|
'instructions' => __( 'Allow Polygon creation.', 'mapster_acf_plugin_map' ),
|
|
'default_value' => 1,
|
|
'ui' => 1,
|
|
'ui_on_text' => 'On',
|
|
'ui_off_text' => 'Off',
|
|
'type' => 'true_false',
|
|
'name' => 'mapster-draw-type-polygon',
|
|
) );
|
|
acf_render_field_setting( $field, array(
|
|
'label' => __( 'Multiple Features', 'mapster_acf_plugin_map' ),
|
|
'instructions' => __( 'Allow user to add multiple features in a single map field.', 'mapster_acf_plugin_map' ),
|
|
'default_value' => 1,
|
|
'ui' => 1,
|
|
'ui_on_text' => 'On',
|
|
'ui_off_text' => 'Off',
|
|
'type' => 'true_false',
|
|
'name' => 'mapster-draw-type-multiple',
|
|
) );
|
|
}
|
|
|
|
/*
|
|
* render_field()
|
|
*
|
|
* Create the HTML interface for your field
|
|
*
|
|
* @param $field (array) the $field being rendered
|
|
*
|
|
* @type action
|
|
* @since 3.6
|
|
* @date 23/01/13
|
|
*
|
|
* @param $field (array) the $field being edited
|
|
* @return n/a
|
|
*/
|
|
function render_field( $field )
|
|
{
|
|
/*
|
|
* Review the data of $field.
|
|
* This will show what data is available
|
|
*/
|
|
// echo '<pre>';
|
|
// print_r( $field );
|
|
// echo '</pre>';
|
|
/*
|
|
* Create a simple text input using the 'font_size' setting.
|
|
*/
|
|
?>
|
|
<input
|
|
type="text"
|
|
id="mapster-map-geojson-<?php
|
|
echo $field['ID'] ;
|
|
?>"
|
|
name="<?php
|
|
echo esc_attr( $field['name'] ) ;
|
|
?>"
|
|
value="<?php
|
|
echo esc_attr( $field['value'] ) ;
|
|
?>"
|
|
style="display:none;"
|
|
/>
|
|
|
|
<?php
|
|
|
|
if ( is_admin() ) {
|
|
?>
|
|
|
|
<div class="mapster-map-container">
|
|
<div>
|
|
<div
|
|
class="mapster-map mapster-submission-map"
|
|
id="mapster-map-<?php
|
|
echo $field['ID'] ;
|
|
?>"
|
|
style="height: 400px; width: 100%;"
|
|
data-point="<?php
|
|
echo esc_attr( $field['mapster-draw-type-point'] ) ;
|
|
?>"
|
|
data-linestring="<?php
|
|
echo esc_attr( $field['mapster-draw-type-linestring'] ) ;
|
|
?>"
|
|
data-polygon="<?php
|
|
echo esc_attr( $field['mapster-draw-type-polygon'] ) ;
|
|
?>"
|
|
data-multiple="<?php
|
|
echo esc_attr( $field['mapster-draw-type-multiple'] ) ;
|
|
?>"
|
|
></div>
|
|
<div class="mapster-mini-buttons mapster-edit-full-width"><?php
|
|
echo __( 'Expand Map', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-linestring'] ) == 1 || esc_attr( $field['mapster-draw-type-polygon'] ) == 1 ) {
|
|
?>
|
|
<div class="mapster-mini-buttons mapster-simplify-shape"><?php
|
|
echo __( 'Simplify Shape', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<div class="mapster-mini-buttons mapster-download-geojson"><?php
|
|
echo __( 'Download GeoJSON', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div class="mapster-mini-buttons mapster-image-base"><?php
|
|
echo __( 'Use image as map base', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<div>
|
|
<div class="mapster-map-input-container">
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-point'] ) == 1 ) {
|
|
?>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Search for address', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Enter address to place a location on the map.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div>
|
|
<input id="mapster-map-geosearch" type="text" placeholder="<?php
|
|
echo __( 'Enter address or location', 'mapster-wordpress-maps' ) ;
|
|
?>" />
|
|
<ul id="mapster-geocoder-results"></ul>
|
|
</div>
|
|
<div class="button-container">
|
|
<div id="mapster-get-results" class="button button-primary"><?php
|
|
echo __( 'Search', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<div class="mapster-map-line">
|
|
<div><?php
|
|
echo __( 'OR', 'mapster-wordpress-maps' ) ;
|
|
?></div> <hr />
|
|
</div>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Select a point manually', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Click below and then press on the map to create a location.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div id="draw-point" class="button button-primary"><?php
|
|
echo ( $field['value'] ? __( 'Replace', 'mapster-wordpress-maps' ) : __( 'Start', 'mapster-wordpress-maps' ) ) ;
|
|
?> <?php
|
|
echo __( 'Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="draw-delete" class="button button-secondary"><?php
|
|
echo __( 'Delete', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div class="mapster-map-line">
|
|
<div><?php
|
|
echo __( 'OR', 'mapster-wordpress-maps' ) ;
|
|
?></div> <hr />
|
|
</div>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Manual Entry', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
</div>
|
|
<div>
|
|
<div class="point-inputs">
|
|
<input id="mapster-map-point-longitude" type="text" placeholder="<?php
|
|
echo __( 'Longitude', 'mapster-wordpress-maps' ) ;
|
|
?>" />
|
|
<input id="mapster-map-point-latitude" type="text" placeholder="<?php
|
|
echo __( 'Latitude', 'mapster-wordpress-maps' ) ;
|
|
?>" />
|
|
</div>
|
|
<div id="set-manual-point" class="button button-primary"><?php
|
|
echo __( 'Set Point', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-linestring'] ) == 1 ) {
|
|
?>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Search for address', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Enter address to move the map closer to your desired area.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div>
|
|
<input id="mapster-map-geosearch" type="text" placeholder="Enter address or location" />
|
|
<ul id="mapster-geocoder-results"></ul>
|
|
</div>
|
|
<div class="button-container">
|
|
<div id="mapster-get-results" class="button button-primary"><?php
|
|
echo __( 'Search', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Draw a line manually', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Click below and then click multiple times on the map to create a line. Click twice on the last point to complete the line.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div id="draw-linestring" class="button button-primary"><?php
|
|
echo ( $field['value'] ? __( 'Replace', 'mapster-wordpress-maps' ) : __( 'Start', 'mapster-wordpress-maps' ) ) ;
|
|
?> <?php
|
|
echo __( 'Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="edit-linestring" class="button button-secondary"><?php
|
|
echo __( 'Edit Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="draw-delete" class="button button-tertiary"><?php
|
|
echo __( 'Delete', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="finish-drawing">
|
|
<div class="button button-primary"><?php
|
|
echo __( 'Done Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<?php
|
|
?>
|
|
<div class="mapster-map-line">
|
|
<div><?php
|
|
echo __( 'OR', 'mapster-wordpress-maps' ) ;
|
|
?></div> <hr />
|
|
</div>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Upload a GeoJSON', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Upload a GeoJSON with a single LineString feature.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div>
|
|
<input id="mapster-map-upload" data-type="LineString,MultiLineString" type="file" />'
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-polygon'] ) == 1 ) {
|
|
?>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Search for address', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Enter address to move the map closer to your desired area.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div>
|
|
<input id="mapster-map-geosearch" type="text" placeholder="Enter address or location" />
|
|
<ul id="mapster-geocoder-results"></ul>
|
|
</div>
|
|
<div class="button-container">
|
|
<div id="mapster-get-results" class="button button-primary"><?php
|
|
echo __( 'Search', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Draw a polygon manually', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Click below and then click multiple times on the map to create a polygon. Connect to the beginning of the polygon to complete the shape.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div id="draw-polygon" class="button button-primary"><?php
|
|
echo ( $field['value'] ? __( 'Replace', 'mapster-wordpress-maps' ) : __( 'Start', 'mapster-wordpress-maps' ) ) ;
|
|
?> <?php
|
|
echo __( 'Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="edit-polygon" class="button button-secondary"><?php
|
|
echo __( 'Edit Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="draw-delete" class="button button-tertiary"><?php
|
|
echo __( 'Delete', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="finish-drawing">
|
|
<div class="button button-primary"><?php
|
|
echo __( 'Done Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<?php
|
|
?>
|
|
<div class="mapster-map-line">
|
|
<div><?php
|
|
echo __( 'OR', 'mapster-wordpress-maps' ) ;
|
|
?></div> <hr />
|
|
</div>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Upload a GeoJSON', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Upload a GeoJSON with a single Polygon feature.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div>
|
|
<input id="mapster-map-upload" data-type="Polygon,MultiPolygon" type="file" />'
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
</div>
|
|
<?php
|
|
?>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
<?php
|
|
|
|
if ( !is_admin() ) {
|
|
?>
|
|
|
|
<div class="mapster-map-container mapster-map-submission-frontend">
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-point'] ) == 1 ) {
|
|
?>
|
|
<div class="mapster-tab-buttons">
|
|
<div class="acf-label mapster-search-label active">
|
|
<label><?php
|
|
echo __( 'Search for address', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
</div>
|
|
<div class="acf-label mapster-manual-label">
|
|
<label><?php
|
|
echo __( 'Add a point manually', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
</div>
|
|
</div>
|
|
<div class="mapster-search-container">
|
|
<p class="description"><?php
|
|
echo __( 'Enter address to place a location on the map.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
<?php
|
|
$freeOrMapbox = "free";
|
|
if ( get_field( 'geocoder' ) == 'mapbox-geocoder' && get_field( 'access_token' ) !== "" ) {
|
|
$freeOrMapbox = 'mapbox';
|
|
}
|
|
|
|
if ( $freeOrMapbox == "free" ) {
|
|
?>
|
|
<div>
|
|
<input id="mapster-map-geosearch" type="text" placeholder="Enter address or location" />
|
|
<ul id="mapster-geocoder-results"></ul>
|
|
</div>
|
|
<div class="button-container">
|
|
<div id="mapster-get-results" class="button button-primary"><?php
|
|
echo __( 'Search', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<?php
|
|
} else {
|
|
|
|
if ( $freeOrMapbox == 'mapbox' ) {
|
|
?>
|
|
<div>
|
|
<div id="mapster-geocoder-mapbox" data-access_token="<?php
|
|
echo get_field( 'access_token' ) ;
|
|
?>"></div>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
}
|
|
|
|
?>
|
|
</div>
|
|
<div class="mapster-manual-container">
|
|
<p class="description"><?php
|
|
echo __( 'Click below and then press on the map to create a location.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
<div>
|
|
<div id="draw-point" class="button button-primary"><?php
|
|
echo ( $field['value'] !== '{ "type" : "FeatureCollection", "features" : [] }' ? __( 'Replace', 'mapster-wordpress-maps' ) : __( 'Add', 'mapster-wordpress-maps' ) ) ;
|
|
?> <?php
|
|
echo __( 'Point', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="draw-delete" class="button button-secondary"><?php
|
|
echo __( 'Delete', 'mapster-wordpress-maps' ) ;
|
|
?> <?php
|
|
echo __( 'Point', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-linestring'] ) == 1 || esc_attr( $field['mapster-draw-type-polygon'] ) == 1 ) {
|
|
?>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Search for address', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Enter address to move the map closer to your desired area.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div>
|
|
<input id="mapster-map-geosearch" type="text" placeholder="Enter address or location" />
|
|
<ul id="mapster-geocoder-results"></ul>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<div>
|
|
<div
|
|
class="mapster-map mapster-submission-map"
|
|
id="mapster-map-<?php
|
|
echo $field['ID'] ;
|
|
?>"
|
|
style="height: 400px; width: 100%;"
|
|
data-point="<?php
|
|
echo esc_attr( $field['mapster-draw-type-point'] ) ;
|
|
?>"
|
|
data-linestring="<?php
|
|
echo esc_attr( $field['mapster-draw-type-linestring'] ) ;
|
|
?>"
|
|
data-polygon="<?php
|
|
echo esc_attr( $field['mapster-draw-type-polygon'] ) ;
|
|
?>"
|
|
data-multiple="<?php
|
|
echo esc_attr( $field['mapster-draw-type-multiple'] ) ;
|
|
?>"
|
|
></div>
|
|
</div>
|
|
<div>
|
|
<div class="mapster-map-input-container">
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-linestring'] ) == 1 ) {
|
|
?>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Draw a line manually', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Click below and then click multiple times on the map to create a line. Click twice on the last point to complete the line.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div id="draw-linestring" class="button button-primary"><?php
|
|
echo ( $field['value'] ? __( 'Replace', 'mapster-wordpress-maps' ) : __( 'Start', 'mapster-wordpress-maps' ) ) ;
|
|
?> <?php
|
|
echo __( 'Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="edit-linestring" class="button button-secondary"><?php
|
|
echo __( 'Edit Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="draw-delete" class="button button-tertiary"><?php
|
|
echo __( 'Delete', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="finish-drawing">
|
|
<div class="button button-primary"><?php
|
|
echo __( 'Done Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
<?php
|
|
|
|
if ( esc_attr( $field['mapster-draw-type-polygon'] ) == 1 ) {
|
|
?>
|
|
<div class="acf-label">
|
|
<label><?php
|
|
echo __( 'Draw a polygon manually', 'mapster-wordpress-maps' ) ;
|
|
?></label>
|
|
<p class="description"><?php
|
|
echo __( 'Click below and then click multiple times on the map to create a polygon. Connect to the beginning of the polygon to complete the shape.', 'mapster-wordpress-maps' ) ;
|
|
?></p>
|
|
</div>
|
|
<div id="draw-polygon" class="button button-primary"><?php
|
|
echo ( $field['value'] ? __( 'Replace', 'mapster-wordpress-maps' ) : __( 'Start', 'mapster-wordpress-maps' ) ) ;
|
|
?> <?php
|
|
echo __( 'Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="edit-polygon" class="button button-secondary"><?php
|
|
echo __( 'Edit Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="draw-delete" class="button button-tertiary"><?php
|
|
echo __( 'Delete', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
<div id="finish-drawing">
|
|
<div class="button button-primary"><?php
|
|
echo __( 'Done Drawing', 'mapster-wordpress-maps' ) ;
|
|
?></div>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
|
|
<?php
|
|
}
|
|
|
|
/*
|
|
* input_admin_enqueue_scripts()
|
|
*
|
|
* This action is called in the admin_enqueue_scripts action on the edit screen where your field is created.
|
|
* Use this action to add CSS + JavaScript to assist your render_field() action.
|
|
*
|
|
* @type action (admin_enqueue_scripts)
|
|
* @since 3.6
|
|
* @date 23/01/13
|
|
*
|
|
* @param n/a
|
|
* @return n/a
|
|
*/
|
|
function input_admin_enqueue_scripts()
|
|
{
|
|
// vars
|
|
$url = $this->settings['url'];
|
|
$version = $this->settings['version'];
|
|
|
|
if ( function_exists( 'get_current_screen' ) ) {
|
|
$current_screen = get_current_screen();
|
|
|
|
if ( $current_screen && ($current_screen->id == "mapster-wp-location" || $current_screen->id == "mapster-wp-line" || $current_screen->id == "mapster-wp-polygon" || $current_screen->id == "mapster-wp-user-sub") ) {
|
|
// register & include JS
|
|
wp_enqueue_media();
|
|
$settings_page_id = get_option( 'mapster_settings_page' );
|
|
$access_token = get_field( 'default_access_token', $settings_page_id );
|
|
$editing_map_style = get_field( 'pro_editing_map_style', $settings_page_id );
|
|
$default_latitude = get_field( 'pro_default_map_view_default_latitude', $settings_page_id );
|
|
$default_longitude = get_field( 'pro_default_map_view_default_longitude', $settings_page_id );
|
|
$default_zoom = get_field( 'pro_default_map_view_default_zoom', $settings_page_id );
|
|
$params_to_include = array(
|
|
'access_token' => $access_token,
|
|
'editing_map_style' => $editing_map_style,
|
|
'mapster_default_lat' => $default_latitude,
|
|
'mapster_default_lng' => $default_longitude,
|
|
'mapster_default_zoom' => $default_zoom,
|
|
);
|
|
|
|
if ( MAPSTER_LOCAL_TESTING ) {
|
|
wp_enqueue_script(
|
|
'mapster_map_field_turf_js',
|
|
"{$url}../../admin/js/vendor/turf.js",
|
|
array( 'acf-input' ),
|
|
$version
|
|
);
|
|
wp_enqueue_script(
|
|
'mapster_map_field_maplibre_js',
|
|
"{$url}../../admin/js/vendor/maplibre-1.15.2.js",
|
|
array( 'mapster_map_field_turf_js' ),
|
|
$version
|
|
);
|
|
wp_enqueue_script(
|
|
'mapster_map_field_mapbox_draw_js',
|
|
"{$url}../../admin/js/vendor/mapbox-gl-draw.js",
|
|
array( 'mapster_map_field_maplibre_js' ),
|
|
$version
|
|
);
|
|
wp_enqueue_script(
|
|
'mapster_map_field_geosearch_js',
|
|
"{$url}../../admin/js/vendor/leaflet-geosearch-3.0.5.js",
|
|
array( 'mapster_map_field_mapbox_draw_js' ),
|
|
$version
|
|
);
|
|
wp_enqueue_script(
|
|
'mapster_map_field_geojsonhint_js',
|
|
"{$url}../../admin/js/vendor/geojsonhint.js",
|
|
array( 'mapster_map_field_mapbox_draw_js' ),
|
|
$version
|
|
);
|
|
$last_enqueue = 'mapster_map_field_mapbox_draw_js';
|
|
wp_register_script(
|
|
'mapster_mapbox_field_js',
|
|
"{$url}assets/js/input.js",
|
|
array( $last_enqueue ),
|
|
$version
|
|
);
|
|
wp_localize_script( 'mapster_mapbox_field_js', 'mapster_editor', $params_to_include );
|
|
wp_enqueue_script( 'mapster_mapbox_field_js' );
|
|
// register & include CSS
|
|
wp_enqueue_style(
|
|
'mapster_map_field_maplibre_css',
|
|
"{$url}../../admin/css/vendor/maplibre-1.15.2.css",
|
|
array( 'acf-input' ),
|
|
$version
|
|
);
|
|
wp_enqueue_style(
|
|
'mapster_map_field_geosearch_css',
|
|
"{$url}../../admin/css/vendor/leaflet-geosearch-3.0.5.css",
|
|
array( 'mapster_map_field_maplibre_css' ),
|
|
$version
|
|
);
|
|
wp_enqueue_style(
|
|
'mapster_map_field_maplibre_draw_css',
|
|
"{$url}../../admin/css/vendor/mapbox-gl-draw.css",
|
|
array( 'mapster_map_field_geosearch_css' ),
|
|
$version
|
|
);
|
|
wp_enqueue_style(
|
|
'mapster_map_field_css',
|
|
"{$url}assets/css/input.css",
|
|
array( 'mapster_map_field_maplibre_draw_css' ),
|
|
$version
|
|
);
|
|
} else {
|
|
$script_to_load = "{$url}assets/dist/acf-mapster-map.js";
|
|
wp_enqueue_script(
|
|
'mapster_mapbox_field_js',
|
|
$script_to_load,
|
|
array( 'acf-input' ),
|
|
$version
|
|
);
|
|
wp_localize_script( 'mapster_mapbox_field_js', 'mapster_editor', $params_to_include );
|
|
wp_enqueue_script( 'mapster_mapbox_field_js' );
|
|
// register & include CSS
|
|
wp_enqueue_style(
|
|
'mapster_map_field_css',
|
|
"{$url}assets/dist/acf-mapster-map.css",
|
|
array(),
|
|
$version
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
// initialize
|
|
new mapster_acf_field_map( $this->settings );
|
|
// class_exists check
|
|
}
|