Gotowe — drugi widget: wp-content/mu-plugins/kmst-linie-mapa.php.
Użycie
[kmst_linia_mapa] — wszystkie aktywne linie, pigułki, h=520px
[kmst_linia_mapa wysokosc="700"] — wyższa mapa
[kmst_linia_mapa pigulki="0"] — bez filtrów (same trasy)
[kmst_linia_mapa linie="0,104"] — tylko wybrane numery
[kmst_linia_mapa zoom="13"] — wymuś początkowy zoom (zamiast auto-fit)
Co robi
- Pobiera te same linie co poprzedni widget (sezon_koniec ≥ dziś)
- Każdy kierunek = osobna polylinia w kolorze linii (kierunki nieaktywne — przerywane i półprzezroczyste)
- Każdy przystanek = okrągły marker w kolorze linii
- Auto-fit mapy do wszystkich punktów (lub
zoom="X"żeby narzucić) - Pigułki nad mapą = toggle widoczności linii (klik = ukryj/pokaż warstwę, opacity .45 gdy ukryte)
- Identyczny styling pigułek + pulsująca kropka „Dziś kursuje” jak w poprzednim widgecie
- Dark mode w pełni obsłużony (pigułki, popup Leaflet, ramki)
Popup przystanku
Klik w marker → popup z:
- Nazwa przystanku + numer
- Lista linii przechodzących przez ten punkt (indeksowane po lat/lng z 5 miejscami po przecinku — przystanki z tymi samymi koordynatami w różnych liniach mergują się w jeden popup)
- Per linia: badge w kolorze + „Linia X / kier. Nazwa” + zielony pill Odjazdy → linkujący do strony linii z hashem
#stop=NazwaPrzystanku
Deep-link na stronie linii
Dodałem hook wp_footer (specyficzny dla is_singular('linie-turystyczne')), który po załadowaniu strony czyta window.location.hash, szuka #stop=Nazwa i automatycznie klika odpowiedni .kmst-linia-rozklad__pmst[data-stop-name] (z timeoutem 400 ms żeby template zdążył się zinicjalizować). Daje efekt: kliknięcie „Odjazdy →” w mapie → ląduje na stronie linii → przystanek auto-zaznaczony, tabela odjazdów już wyświetla godziny z niego.
Leaflet
Leaflet 1.9.4 jest ładowany przez CDN w wp_footer (jeśli już jest enqueued przez stronę linii, drugi <link>/<script> nie zaszkodzi — przeglądarka cachuje). Dla większego użycia można to przenieść do wp_enqueue_script z dns-prefetch.
