...
De viewer gebruikt de javascriptversie van Twig, genaamd TwigJS (of twig.js). De javascriptversie probeert zo compatibel mogelijk te zijn met de PHP-versie, maar het kan zijn dat niet alle mogelijkheden uit de PHP-Twig-documentatie ook in de viewer werken. Hier kom je pas achter als je het probeert.
Table of Contents | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Voorbeelden feature info
Bepalen welke velden aanwezig zijn in een kaartlaag
...
Code Block |
---|
{% set urls_array = urlstring | split(';') %}
{% for url in urls_array %}
<p>Link: <a href="{{url}}" target="_blank">Linktekst</a></p>
{% endfor %} |
Laatste deel van url tonen
Een variatie op het splitsen van strings is het laatste deel van een url tonen. Dit kan door te splitten op '/'
en dan het laatste deel te tonen.
Code Block |
---|
{{url | split('/') | last}} |
Dit kan handig zijn om een link op te maken die alleen een bestandsnaam toont in de feature info, maar wel linkt naar het volledige pad.
Code Block |
---|
<a href="{{url}}" target="_blank">{{url | split('/') | last}}</a> |
Lookup tables
Als een veld een numerieke waarde of stringwaarde bevat met een betekenis, wil je in deze in feature info vertalen naar een voor de gebruiker begrijpelijke tekst. Een handige manier om dit te doen is door javascript objects te definiƫren waar de keys de waardes zijn en de values de vertalingen.
...
Code Block |
---|
{% set labels = { 1: 'Een', 2: 'Twee', 3: 'Veel' } %} {# Gebruik enkele quotes als de keys strings zijn #} {% set colors = { 1'#FF0000': 'red', 2'#008800': 'darkgreen', 3'#0000FF': 'blue' } %} {# Gebruik ?? om defaults op te geven als het attribuut leeg is #} {% set typeLabel = labels[type] ?? '?' %} {% set typeColor = colors[type] ?? '#ccc' %} <h3>Type</h3> <p style="color:{{typeColor}};">{{typeLabel}}</p> |
Datum opmaken
Het is mogeljik om een datum volgens een opgegeven format op te maken.
Code Block |
---|
{{ datumveld | date('d-m-Y') }} {# opgemaakt als (dag-maand-jaar(4 cijfers) #} |
Noot: dit werkt ook voor tekstvelden. Gebruik quotes rond de keys als de veldwaarde een spatie of andere niet-alfanumerieke karakters bevat.Zie voor opmaakopties hier: https://arigato.docs.bonify.io/article/281-formatting-dates-in-twig
Noot: de opties hierboven zijn voor de php-versie van twig. Het kan zijn dat sommige formats niet werken in de viewer. De optionele timezone parameter in die documentatie wordt niet ondersteund in Onemap.
Alleen gevulde velden opmaken
Het voorbeeld hierboven heeft een mogelijk onverwacht nadeel. Als een datumveld leeg is, wordt die opgemaakt als de huidige datum. Als je lege datumvelden leeg wil laten, kan je dit als volgt doen:
Code Block |
---|
{% if datumveld %}{{ datumveld | date('d-m-Y') }}{% else %}Onbekend{% endif %} |
Een kortere manier om dit te doen is met de ?:
operators.
Code Block |
---|
{{ datumveld ? (datumveld | date('d-m-Y')) : 'Onbekend' }} |
Of om het veld gewoon leeg te laten als het niet is gevuld:
Code Block |
---|
{{ datumveld ? (datumveld | date('d-m-Y')) }} |