Orchestra Map
Orchester verwalten · Auf der Karte präsentieren · Live in WordPress
Orchestra Map ist ein professionelles Plugin für Musikverbände, Dachorganisationen und Chöre. Verwalte Orchester-Einträge mit Standort und zeige sie auf einer interaktiven Leaflet-Karte sowie in einer Listenansicht direkt im Frontend an – ohne extra Infrastruktur, ohne separaten Login.
✓ Interaktive Leaflet-Karte · ✓ Import & Export per Excel / CSV · ✓ Geocoding & Custom Fields
Orchestra Map – Changelog
Aktuelle Version: 1.9.49
1.9.49
- Fix: Mobile list view no longer shows a stray colon before fields that have no label (data-label=\"\").
1.9.49
- Fix: Mobile list view no longer shows a stray colon before fields that have no label (data-label="").
1.9.48
- Fix: Clicking a map marker now also opens the corresponding list accordion. Map marker click dispatches `om:select` (source: map); the list responds with accordion open + scroll; the map skips its own zoom/popup logic for source:map to avoid a double-popup flicker.
1.9.47
- Fix: List accordion now reliably opens when selecting an orchestra via the standalone search bar. The `selectId` is passed directly in the `om:filter` event so the accordion is opened immediately after the list re-renders, eliminating the previous inter-event timing issue.
1.9.46
- Fix: Clicking an orchestra in the standalone search bar (`[orchestra_search]`) now correctly opens the map popup, list accordion, and panel. Previously `om:filter` fired after `om:select` and hid the panel again; the event order is now reversed and the list gained an `om:select` listener.
1.9.45
- Fix: Geocoding warning box now hides immediately after a successful single auto-geocode (triggered on Add/Edit), without requiring a page reload.
1.9.44
- Fix: Data initialization moved from IIFE top-level to inside `DOMContentLoaded` in all three JS modules. When a theme outputs scripts in `<head>` without `defer`, the IIFE executed before the page body was parsed and `document.getElementById('orchestra-map-config')` returned null. Now the `#orchestra-map-config` div is read at DOM-ready time when it is always present.
1.9.43
- Fix: Orchestra data (`window.orchestraMapData`) was never available on the frontend in environments where `wp_add_inline_script` is intercepted or dropped (Block Themes / FSE, caching/optimisation plugins). Added a guaranteed HTML fallback: each shortcode now embeds a hidden `<div id="orchestra-map-config" data-config="[JSON]">` directly in its output. All three JS modules (`orchestra-map-public.js`, `orchestra-map-list.js`, `orchestra-map-search.js`) now read from this element when `window.orchestraMapData` is not set, and then share the parsed data via `window.orchestraMapData` for subsequent scripts.
1.9.42
- Fix: `window.orchestraMapData` was never set on sites running a Block Theme (FSE / WordPress 7+). Block Themes print scripts inside `wp_head()` before `the_content()` processes shortcodes, so any `wp_add_inline_script()` calls from shortcode renderers arrived too late. Added `preload_if_needed()` hooked to `wp_enqueue_scripts` at priority 11: it detects orchestra-map shortcodes in the post content and pre-enqueues scripts + inline data during the normal enqueue phase, guaranteeing the global is available regardless of when the theme prints its scripts.
1.9.41
- Fix: `window.orchestraMapData` was undefined on the frontend when a JS-optimisation plugin (Autoptimize, LiteSpeed Cache, WP Rocket, etc.) stripped inline scripts attached to the virtual `orchestra-map-data` handle (src=false). The inline data is now attached to a real script handle (`orchestra-map`, `orchestra-map-list`, or `orchestra-map-search`) with a `before` position, falling back to the virtual handle only when no optimiser is present. Also removed duplicate localisation logic from the `[orchestra_search]` shortcode.
1.9.40
- Fix: Built-in field labels (Orchestra Name, Website, Email, Rehearsal Venue/Street/City, Postal Code, Country) are now translatable – labels are resolved via __() at runtime instead of being hardcoded in the static defaults array.
1.9.39
- Fix: German translation (de_DE) now loads correctly – load_plugin_textdomain() was empty; added explicit call with __FILE__-based path.
1.9.38
- Fix: German translation (de_DE) cleaned up – removed Pro-plugin strings that belong in Orchestra Map Pro, added 19 missing Free-plugin strings, updated PO/MO.
1.9.37
- Fix: Replace raw inline `<script>` / `<style>` output with `wp_add_inline_script()` and `wp_add_inline_style()` to comply with WP.org coding standards. Introduces a virtual `orchestra-map-data` script handle that carries `window.orchestraMapData` as an inline script. Admin column-visibility CSS is now applied via JavaScript on page load instead of a PHP-echoed `<style>` tag.
1.9.36
- Fix: Popup min/max width percentage calculation now uses Leaflet's own container measurement (map.getSize().x) instead of offsetWidth, which could return 0 before layout is complete.
1.9.35
- Feature: Popup min. width configurable in Design tab (default 30% of map width) – prevents narrow popups when the orchestra name is short.
1.9.34
- Feature: Popup max. width configurable in Design tab – accepts pixels (e.g. 300) or percent of map width (e.g. 40%).
1.9.33
- Cleanup: Shortcode generator – removed obsolete "Combined (Map + List)" box and the search-bar toggle from [orchestra_map] (search is now a standalone [orchestra_search] shortcode).
1.9.32
- Feature: New [orchestra_panel] shortcode – renders the detail panel as a standalone element, freely positionable on the page.
- Refactor: [orchestra_map] no longer bundles search or panel; compose your layout freely with [orchestra_map], [orchestra_list], [orchestra_panel], [orchestra_search]. All shortcodes sync automatically when on the same page.
- Refactor: Map center/lat/lng/zoom moved from orchestraMapData to data-attributes on the map div, so any shortcode can safely initialize the shared data first.
1.9.31
- Feature: List view now has an inline accordion – clicking a row expands a detail panel with the configured panel fields directly within the table.
1.9.30
- Feature: Title checkboxes (label_popup, label_panel, label_list) now take effect in the frontend – controls whether the field label is shown before each value in popup, panel and list.
1.9.29
- Enhancement: Fields table redesigned – elegant grouped column headers with vertical sub-labels (Field/Title), hover rows, compact inputs, and scroll wrapper.
1.9.28
- Feature: Fields table now shows Field/Title sub-columns for Popup, Panel and List locations – allows hiding the field label per display context.
1.9.27
- Fix: German translation now loads correctly – added explicit load_plugin_textdomain() call (WP auto-load only applies to WP.org-hosted plugins).
1.9.26
- Fix: Full WordPress.org Plugin Check (PCP) compliance – suppressed all remaining PHPCS warnings (DirectDatabaseQuery, NonceVerification, PrefixAllGlobals, MissingUnslash, SchemaChange); global functions renamed to prefix-first convention.
1.9.25
- Fix: Resolved all WordPress.org Plugin Check coding standards issues (output escaping, wp_unslash, translators comments).
1.9.24
- Fix: Built-in field labels (venue, address, ZIP, city, country) are now English by default; one-time migration resets old German defaults for existing installs.
1.9.23
- Tweak: Default style colors updated to SWu Labs CI (navy + teal).
1.9.22
- Fix: Custom fields in the add/edit form are now hidden when Orchestra Map Pro has no valid license.
For older versions see changelog.txt.
Orchestra Map Pro – Changelog
Aktuelle Version: 1.0.7
1.0.7 – 2026-05-31
- Fix: `enqueue_scripts()` now returns early on non-Orchestra Map admin pages (performance guard, matches free plugin pattern).
1.0.7 – 2026-05-31
- Fix: `enqueue_scripts()` now returns early on non-Orchestra Map admin pages (performance guard, matches free plugin pattern).
1.0.6 – 2026-05-29
- Fix: German translation (de_DE) cleaned up – removed obsolete strings (`Action`, `Delete`, `Show field label in list`), added missing strings (`Delete field`, `Always shown as heading – not configurable`), updated PO/MO.
1.0.5 – 2026-05-22
- Feature: Fields table now shows Field/Title sub-columns for Popup, Panel and List – allows showing or hiding the field label per display location.
1.0.4 – 2026-05-22
- Fix: German translation now loads correctly – added explicit load_plugin_textdomain() call using __FILE__-based path (WP auto-load only applies to WP.org-hosted plugins).
1.0.3 – 2026-05-22
- Fix: License validate_remote() now sets a negative cache immediately on wp_error or invalid JSON response, preventing a request death spiral when the license server is unreachable (matches known-issues fix pattern).
- Fix: All $_POST reads in the admin class now call wp_unslash() before sanitize_*() to correctly strip WordPress magic quotes.
- Fix: Removed $table variable in DB queries; table name is now inlined as {$wpdb->prefix}orchestra_map with correct phpcs:ignore directives.
- Fix: Requires PHP updated from 7.4 to 8.2 to match the free plugin and reflect actual syntax used (true|WP_Error return type).
- Changed: Removed deprecated load_plugin_textdomain() call; WordPress auto-loads text domains since 4.6.
1.0.2 – 2026-05-21
- Fix: Custom fields no longer appear in the free plugin's add/edit orchestra forms when the Pro license is invalid. The `orchestra_map_custom_fields_enabled` filter now controls this — set to `true` only when a valid license is active.
1.0.1 – 2026-05-21
- Fix: Pro features (Import/Export, Fields, Design) now require an active license.
1.0.0
- Initial release.