Twig filters

Een variabele kun je bewerken met een filter. Een filter wordt gebruikt met een | tussen de variabele en het filter. Je kan meerdere filters achter elkaar gebruiken om tot de gewenste waarde van de variabele te komen. De uitkomst van het ene filter wordt doorgegeven aan het volgende filter. Hierdoor kun je dus meerdere filters achterelkaar plakken. In onderstaand voorbeeld maken we van een array een string, gescheiden door '-', die we vervolgens naar hoofdletters zetten.

1{% set foo = ['foo', 'bar'] %}
2{{ foo|join(' - ')|upper }}
3{# result: 'FOO - BAR' #}

|t (translate string)

Om tekst vertaalbaar te maken binnen een template kun |t achter de tekst plakken. Bijvoorbeeld een toevoegen aan winkelwagen button kun je als volgt vertaalbaar maken.

1<button class="btn btn-success">
2  {{"Toevoegen aan winkelwagen"|t}}
3</button>

Er bestaat in onze editor ook een shortcut om deze formattering op een string toe te voegen. Selecteer de tekst die je vertaalbaar wil maken en druk tegelijk ALT+T in (mac: OPTION+T).

|keys

twig docs: https://twig.symfony.com/doc/3.x/filters/keys.html

Wanneer je op zoek bent naar data in een dump is het soms erg onoverzichtelijk om door alle geneste data te moeten scrollen. Daarom is het filter |keys een uitkomst.

Als je bijvoorbeeld alle keys van het tekstblokken object wil bekijken kun je het volgende doen.

1{{dump(blocks|keys)}}

Je zal nu een array zien met alleen de keys van alle entries binnen blocks.

|date

twig docs: https://twig.symfony.com/doc/3.x/filters/date.html

|date_modify

twig docs: https://twig.symfony.com/doc/3.x/filters/date_modify.html

|upper

twig docs: https://twig.symfony.com/doc/3.x/filters/lower.html

|lower

twig docs: https://twig.symfony.com/doc/3.x/filters/upper.html

|first

twig docs: https://twig.symfony.com/doc/3.x/filters/first.html

|last

twig docs: https://twig.symfony.com/doc/3.x/filters/last.html

|length

twig docs: https://twig.symfony.com/doc/3.x/filters/length.html

|merge

twig docs: https://twig.symfony.com/doc/3.x/filters/merge.html

|replace

twig docs: https://twig.symfony.com/doc/3.x/filters/replace.html

Met replace kun je een gedeelte tekst vervangen voor een andere tekst. Door middel van een object waarin de key is wat je wil vervangen en de waarde wat je er wil van maken kun je dit gebruiken.

Parameters

Optiebeschrijving
configEen object met welke waardes voor wat vervangen moeten worden. De key is waarnaar wordt gezocht, de waarde is wat er voor in de plaats komt.

Gebruik

1// input: Blauw wit vest ([label])
2
3{{ product.name|replace({ "[label]": "Uitverkocht" }) }}
4
5// output: Blauw wit vest (uitverkocht)

|price

Het prijs filter voegt een opmaak toe aan de variabele waarop je hem gebruikt. Hierdoor krijg je altijd de juiste opbouw en het correcte valuta symbool.

Parameters

Optiestandaard waardebeschrijving
afkortentrueGeeft aan of 1,00 (false) moet worden afgekort naar 1,- (true)
valuta symbool'€ 'Het symbool dat voor het bedrag staat. Om ruimte tussen het symbool en het bedrag te krijgen is een spatie aan het einde nodig.

Gebruik

Standaard

1{{ product.price|price }}

Zonder valuta symbool

1{{ product.price|price(true, '') }}

|image

Het image filter is een hulpstuk wat voor Quicq gemaakt is. Dit transformeert de afbeelding URL uit de database naar een Quicq URL. Aan deze functie kun je ook de Quicq URL-parameters meegeven. Let er wel op dat het gebruik van dit filter in combinatie met Quicq er voor zorgt dat altijd de full size afbeelding wordt gebruikt. Wil je dus van een thumbnail van 400x400 weer een 400x400 afbeelding maken via Quicq, dan zul je dus de parameters hiervoor moeten toevoegen.

Parameters

De parameters die je kan gebruiken in dit filter zijn gelijk aan de omschreven parameters in: https://afosto.com/nl/docs/apps/quicq/afbeeldingen-bewerken-via-url/. Je geeft deze als object mee aan het filter.

Optiestandaard waardebeschrijving
wnullDe breedte van de afbeelding. Wanneer deze leeg is en hoogte wel is meegegeven wordt deze op basis van aspect ratio uitgerekend.
hnullDe hoogte van de afbeelding. Wanneer deze leeg is en breedte wel is meegegeven wordt deze op basis van aspect ratio uitgerekend.
cnullMogelijke waardes: 0 en 1. Bij 0 wordt de afbeelding aangevuld met witte vlakken als deze niet binnen het opgegeven formaat dekkend is. Bij 1 wordt de afbeelding altijd dekkend over het opgegeven formaat getoond, maar wordt de afbeelding bijgesneden.
bnullMogelijke waardes: 0, 1, 2 en 3. Dit zijn gradaties in het blurren van de afbeelding.
qnullEen percentage dat de kwaliteit van de afbeelding aangeeft. Hoe lager de kwaliteit, hoe kleiner het bestandformaat.

Gebruik

standaard

1{{ product.image_default.filename|image }}

Met parameters

1{{ product.image_default.thumbs.400|image({ "w": 400, "h": 400, "q": 20, "b": 3 }) }}