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.