From 01e9a8e40351a87f6548a4f55de842d6f6918ad0 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Tue, 15 Sep 2026 02:44:28 +0000
Subject: [PATCH] =Found little glitch with auto-adding rewrite rules to taxonomy Registrar instances where we have the post type as the base in the url rewrite
---
inc/meta/Form.php | 113 +++++++++++++++++++++++++-------------------------------
1 files changed, 51 insertions(+), 62 deletions(-)
diff --git a/inc/meta/Form.php b/inc/meta/Form.php
index 638bcc1..c09f280 100644
--- a/inc/meta/Form.php
+++ b/inc/meta/Form.php
@@ -83,6 +83,7 @@
}
}
+
$allFields = $meta->getAll($fields);
foreach ($allFields as $name => $value) {
@@ -1453,75 +1454,63 @@
protected static function renderLocation(string $name, mixed $value, array $config): string
{
- if (!Site::hasIntegration('maps')) {
- return '';
- }
- $googleMaps = GoogleMaps::getInstance();
- if (!$googleMaps->isSetUp()) {
- return '<div class="notice notice-warning"><p>Google Maps not configured. Please configure in Integrations settings.</p></div>';
- }
+ $location = is_array($value) ? $value : [];
+ $fields = ['address', 'street', 'city', 'province', 'postal_code', 'country', 'lat', 'lng'];
- $field_id = esc_attr($name);
- $map_id = sprintf('%s_map', $field_id);
- $components = ['address', 'lat', 'lng', 'street', 'city', 'province', 'postal_code', 'country'];
- if (!empty($value)) {
- $lat = (float)$value['lat']??'';
- $lng = (float)$value['lng']??'';
- $coords = [
- 'lat' => $lat,
- 'ng' => $lng
- ];
- } else {
- $coords = null;
- }
- if (!array_key_exists('data', $config)) {
- $config['data'] =[];
- }
- $js_config = [
- 'fieldId' => $field_id,
- 'initialCoords' => $coords
- ];
-
- $json_config = htmlspecialchars(json_encode($js_config), ENT_QUOTES, 'UTF-8');
- $config['data']['location-field-init'] = $json_config;
-
- $input = '';
- if (!empty($value) && array_key_exists('address', $value)) {
- $input = sprintf(
- '<p><b>Current location:</b> %s</p><p class="hint">Search below to change:</p>',
- esc_html($value['address'])
- );
- }
- $links = (!empty($value)) ? jvbLocationLinks($value) : '';
- $input .= sprintf(
- '<div class="location-search-wrapper">
- <div class="autocomplete-wrapper"></div>
- <div class="location-preview">
- <div id="%s" class="location-map"></div>
- %s
- </div>',
- esc_attr($map_id),
- $links
+ $input = sprintf(
+ '<h3>%s</h3><input type="search" id="%s-search" placeholder="%s" autocomplete="off" data-ignore data-location-search />
+ <p class="message" hidden aria-live="polite">{ <span>Searching locations</span> }</p>
+ <ul class="search-results"></ul><p><small><i>{ All Results © OpenStreetMap contributors, ODbL 1.0 }</i></small></p>',
+ $config['label'],
+ esc_attr($name),
+ esc_attr($config['placeholder'] ?? 'Search for an address…'),
);
- if (!empty($value)) {
- foreach($components as $el) {
- $input .= sprintf(
- '<input type="hidden"
- name="%s[%s]"
- value="%s"
- data-location-field="%s">',
- esc_attr($name),
- $el,
- $value[$el]??'',
- $el
- );
- }
+ $input .= '<fieldset class="location"><legend>Current Location</legend>';
+ foreach ($fields as $field) {
+ $title = match($field) {
+ 'address' => 'House Number',
+ 'lat' => 'Latitude',
+ 'lng' => 'Longitude',
+ 'postal_code' => 'Postal Code',
+ default => ucfirst($field)
+ };
+ $open = match($field) {
+ 'address','postal_code','lat' => '<div class="row">',
+ default => '',
+ };
+ $close = match ($field) {
+ 'street','country','lng' => '</div>',
+ default => '',
+ };
+ $input .= sprintf(
+ '%s<div><label for="%s|%s">%s</label>
+ <input type="text" name="%s" data-field-name="%s" id="%s|%s" value="%s" /></div>%s',
+ $open,
+ esc_attr($name),
+ esc_attr($field),
+ $title,
+ esc_attr("{$name}|{$field}"),
+ esc_attr($field),
+ esc_attr($name),
+ esc_attr($field),
+ esc_attr($location[$field] ?? ''),
+ $close
+ );
}
+ $input .= '</fieldset>';
- $input .= '</div>';
+// if (!empty($location['lat']) && !empty($location['lng'])) {
+// $input .= sprintf(
+// '<div class="location-preview" data-lat="%s" data-lng="%s"></div>',
+// esc_attr($location['lat']),
+// esc_attr($location['lng'])
+// );
+// }
+ $config['skipInput'] = true;
+ $config['label'] = false;
return static::fieldWrap($name, $input, $config);
}
--
Gitblit v1.10.0