Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
minLevel3
maxLevel3
include
outlinefalse
indent
exclude
typelist
class
printablefalse

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')) }}