Sådan opsætter du faner på detaljesiden
Når brugeren klikker på et søgeresultat, åbnes en detaljeside med ét eller flere faneblade — fx "Oplysninger", "BBR", "Husnumre" eller "Skråfoto". Fanerne kaldes detailhandlers i konfigurationen.
Denne vejledning viser hvordan du bruger de indbyggede standardfaner og hvordan du opretter egne.
Faner konfigureres samme sted som søgninger — i config.yml
Hvor placeres faner?
Der er to måder at placere faner på — vælg den der passer til din situation.
Lokalt på én søger
Fanerne er kun relevante for den ene søger:
yaml
searchers:
biblioteker:
_type: Septima.Search.DataSearcher
_options: { ... }
detailhandlers:
- _type: Septima.Search.Details
_options: { ... }Delt bibliotek
Hvis samme fane skal bruges på flere søgere, så definér den én gang i en detailhandlers:-blok øverst i config.yml og genbrug den med _ref:
yaml
detailhandlers:
minFane:
_type: Septima.Search.Details
_options: { ... }
searchers:
adresser:
_ref: $.standardkommune.dawa
detailhandlers:
- _ref: $.detailhandlers.minFane
matrikler:
_ref: $.standardkommune.gsearch
detailhandlers:
- _ref: $.detailhandlers.minFaneGenbrug standardfaner fra standardkommune
Når I har importeret standardkommune-biblioteket (se Søgninger), har I også adgang til et bibliotek af færdige faner. Tænd dem på jeres søger ved at tilføje _ref:-linjer under detailhandlers::
yaml
searchers:
dawa:
_ref: $.standardkommune.dawa
detailhandlers:
- _ref: $.standardkommune.detailhandlers.skraafoto
- _ref: $.standardkommune.detailhandlers.bbrInfoOgSager
- _ref: $.standardkommune.detailhandlers.sqHusnumreDe mest brugte standardfaner
| Navn | Hvad viser den? |
|---|---|
skraafoto | Skråfotos fra Dataforsyningen, projiceret på resultatets geometri. |
bbrInfoOgSager | BBR-oplysninger og aktive BBR-sager for ejendom/bygning. |
ejendomsInfo | Ejendomsoplysninger fra Datafordeleren. |
sqHusnumre | Husnumre der ligger indenfor resultatets geometri. |
sqJordstykker | Jordstykker der ligger indenfor resultatets geometri. |
dagiInfo | Sogn, retskreds, politikreds og andre administrative enheder. |
planInfo | Planer (lokal-, kommuneplanrammer m.fl.) der rammer geometrien. |
Overskriv felter på en delt fane
Du kan ændre enkelte felter på en delt fane uden at ændre biblioteket — læg bare _options: på din _ref:
yaml
- _ref: $.standardkommune.detailhandlers.sqHusnumre
_options:
targets: [{ source: '*', typeId: matrikelnumre }]
buttonText: Husnumre på matriklenEgne faner — kogebog
Nedenfor er fem mønstre du kan kopiere. Felterne id og buttonText styrer fanens identitet og titel; targets styrer hvilke søgeresultater den vises for (se Styr hvornår fanen vises).
Eksempel A: Statisk info-fane
Vis udvalgte felter fra resultatet som label/værdi-rækker og et link:
yaml
searchers:
biblioteker:
_type: Septima.Search.DataSearcher
_options: { ... }
detailhandlers:
- _type: Septima.Search.Details
_options:
id: bibliotekInfo
buttonText: Oplysninger
details:
- type: labelvalue
label: Navn
value: $.properties.navn
- type: labelvalue
label: Adresse
value: $.properties.adresse
- type: link
linkTitle: Åbn bibliotekets hjemmeside
link: https://min-kommune.dk/biblioteker/{$.properties.id}Eksempel B: Samlefane med flere under-faner
Saml flere visninger under én titel med ComposedDetailsHandler:
yaml
- _type: Septima.Search.ComposedDetailsHandler
_options:
id: omEjendommen
buttonText: Om ejendommen
detailhandlers:
- _ref: $.standardkommune.detailhandlers.ejendomsInfo
- _ref: $.standardkommune.detailhandlers.bbrInfoOgSager
- _ref: $.standardkommune.detailhandlers.sqHusnumreEksempel C: Find data indenfor geometrien
Brug SqDetailsHandler til at søge i andre søgere med resultatets geometri — fx "planer på ejendommen":
yaml
- _type: s3.SqDetailsHandler
_options:
id: planerIOmraadet
buttonText: Planer i området
polygonIntersectsBuffer: -1
searchers:
- _ref: $.searchers.plansystempolygonIntersectsBuffer: -1 kræver præcis overlap (undgår at inkludere naboplaner der kun rammer linjen).
Eksempel D: Hop til relateret resultat
Brug type: result til at lave et klikbart link der åbner et andet søgeresultat — fx fra en virksomhed til dens adresse:
yaml
- _type: Septima.Search.Details
_options:
id: virksomhedsdetaljer
buttonText: Virksomhed
details:
- type: labelvalue
label: Navn
value: $.navn
- type: link
linkTitle: Se {$.navn} på virk.dk
link: https://datacvr.virk.dk/enhed/virksomhed/{$.cvrnummer}
- type: result
label: Adresse
result:
searcher: { _ref: $.searchers.dawa }
type: adresse
id: $.husnummeridEksempel E: Feature info fra QGIS / WMS
På en OwsUtils.Searcher (fx QGIS Server) giver OwsUtils.InfoHandler automatisk en fane med alle attributter fra det ramte feature:
yaml
searchers:
qgis:
_type: Septima.Search.OwsUtils.Searcher
_options:
url: https://qgis.min-kommune.dk/ows?MAP=/data/kommune/projekt.qgz
detailhandlers:
- _type: Septima.Search.OwsUtils.InfoHandler
_options:
buttonText: AttributterStyr hvornår fanen vises
targets styrer hvilke søgeresultater fanen skal dukke op på. Hvis targets udelades, vises fanen for alle resultater søgeren returnerer.
| Syntaks | Betydning |
|---|---|
source: '*' | Matcher enhver kilde. |
typeId: '*' | Matcher enhver resultattype. |
typeId: [a, b] | Matcher flere typer (ELLER). |
Flere {source, typeId} | Én match er nok (ELLER). |
Eksempel — fanen skal kun vises på matrikler og på DAWA-adresser:
yaml
targets:
- { source: '*', typeId: matrikelnumre }
- { source: dawa, typeId: [adgangsadresse, adresse] }Værdier fra resultatet — $.…-placeholders
Du kan hente værdier fra det aktuelle resultat på to måder:
- Hele feltet:
value: $.properties.foolæser feltet direkte. - Indlejret i en streng:
link: https://example.dk/{$.properties.id}indsætter værdien. Flere{$.…}kan optræde i samme streng.
Stierne er JSONPath mod resultatets data — typisk $.properties.<feltnavn> for GeoJSON-baserede søgninger, eller $.<feltnavn> for REST/PostgREST.
Fejlfinding
| Symptom | Hvad skal du tjekke? |
|---|---|
| Fanen vises ikke | targets matcher ikke hittet. Fjern targets midlertidigt, eller brug source: '*' og typeId: '*'. |
| Fanen er tom | Dine $.…-stier rammer ikke dataen. Prøv at logge et hit fra søgningen for at se den faktiske struktur. |
| To faner smelter sammen | Giv hver fane en unik id:-værdi. |
| Ændring i delt fane slår ikke igennem | Du har overskrevet _options lokalt. Hvis du vil ændre biblioteket for alle, så ret der — ellers læg ændringen i din lokale _ref. |
| Spatial fane tom, selv om data findes | SqDetailsHandler kræver at resultatet har geometri. Tjek at søgeresultatet rent faktisk er geografisk. |
| Fanen står forkert i rækkefølgen | Rækkefølgen i detailhandlers:-listen afgør rækkefølgen på skærmen. Flyt linjen op/ned. |