Een kennismaking met Twigs

Inleiding

Wat zijn Twigs?

To twig (Eng -straattaal-: get wise, understand something)

Onbekend? Je hebt er reeds gebruik van gemaakt... Bij het herschrijven een view kan je variabelen tussen {{ }} gebruiken. Dit zijn Twigs.

Twig is een simpele programmeertaal die door Drupal standaard wordt voorzien. Twig is een uitbreiding van de Symfony PHP taal, die Drupal nu gebruikt. De pagina die je maakt heet een 'template'. Die levert dus verschillende webpagina's op al naar gelang de variabelen.

If Then Else

Zou kunnen de vervanger van Rules worden. Men heeft een knappe interface gemaakt die het mogelijk maakt om tamelijk overzichtelijk te programmeren, zonder dat men moet kunnen programmeren... Straf.

Installeer en activeer.. (men raadt aan om het met composer/drush te doen..;)

Je kunt naar de instellingen gaan op deze manier..


Voorwaardelijke links

Drupal is sterk in referenties... taxonomie, gebruikers, inhoudsreferenties....  In een inhoudstype kan je makkelijk via een referentieveld naar andere inhoud verwijzen.

Zo kan je bij het inhoudstype films opsommen wie de acteurs/actrices waren. Je kan dan deze verwijzing als label of als link weergeven. Alle acteurs worden dan met of zonder link weergegeven. Je moet één van de twee opties kiezen.

Maar wat als je bij een acteur (nog) niet echt iets te vertellen hebt. Dan klikken de mensen op de acteur en komen via de link op ... niets bruikbaars terecht, enkel de naam.

Clever Theme Switcher

In combinatie met de module 'Mobile Device Detection' kan je hiermee van thema veranderen al naar gelang het toestel (phone, tablet, desktop).

Handig want niet alle thema's zijn mobiel vriendelijk en anderzijds zijn niet alle mobiele thema's knap op een desktop.

Eerst maak je een 'rule' aan:

Geef het een naam en kies een (actief) thema. Je kunt hier ook bijkomende voorwaarden voor pagina's instellen. Met een * geef je weer dat je alle pagina's wilt aanspreken.

Field Formatter Condition

Zeer bruikbare module die net zoals Conditional Fields voor de input, nu geldt voor de weergave van het veld. Je kunt er velden mee verbergen volgens voorwaarden van een ander veld.

Ik heb hier een prijs van een artikel in een webshop

Als het product in promotie is, wordt er nog een ander veld getoond. Deze veldwaarde is reeds vooraf aanwezig, maar wordt enkel getoond als er een vinkje 'promotie' werd aangeduid.

Voorwaardelijke CSS in nodes en views

Maak je site aantrekkelijk door saaie inhoud zeer visueel voor te stellen. Ik werk de volgende case uit... In een inhoudstype kan je een dagdeel kiezen (voormiddag, namiddag of avond). Je kunt dit gebruiken voor een lokaalbezetting, cursus, bijeenkomst, boeking,...

We gebruiken een tekstlijst voor de input

Screen001685.png

Met Chosen ziet dit er zo uit.

Screen001683.png

Voorwaardelijke Lees Meer...

Als je een view maakt waarbij je gebruik maakt van een ingekort tekstveld (of samenvatting), dan wil je dat de bezoeker via Lees Meer... de volledige tekst kan lezen.

Probleem: de Lees Meer... link verschijnt altijd. Ook daar waar de verkorte tekst ook de volledige tekst is. Dit is storend aangezien bij klikken identiek dezelfde tekst verschijnt. Compleet overbodig.

We kunnen dit probleem oplossen. In onderstaande print zie je geen Lees  meer... verschijnen in de tweede rij. Alle tekst staat er blijkbaar.

Views Conditional

Velden al of niet tonen, afhankelijk van de inhoud van andere velden... Meer nog de inhoud aanpassen afhankelijk van de inhoud van andere velden.. Dit is de geknipte module.

Ik maak 2 artikels aan met elk een foto van een kat.

Screen000006.png

In de view is er een artikel dat geen foto toont, niettegenstaande er wel degelijk een is.. 

Screen000005.png

Conditional Fields

Een veld verbergen of laten verschijnen al naar gelang de waarde van een ander veld.. Met deze module komt er bij het inhoudstype een tabblad bij.

Drupal8_002753.png

Je kunt er een 'Control' veld en een 'Target' veld mee instellen. De status of waarde van het 'Control' veld zal bepalen of het 'Target' veld zal getoond worden of niet.

Drupal8_002754.png