Strona

Widget mapa

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.