Twigs gebruiken in een view

Wat zijn twigs en wat zijn de mogelijkheden in een view?

Wat is Twig? Wel... je kunt er simpele instructies mee schijven. Een soort brug tussen PHP en HTML. Het is ingebouwd in Drupal. Je hebt het zeker reeds gezien... {{ field_image}} is bijvoorbeeld een twig. Je herkent het aan de dubbele accolades.. Het wordt gebruikt om velden te herschrijven in views.

Tijdelijke velden

Soms is het wenselijk om gedurende een bepaalde periode specifieke inhoud te tonen. Zoals hieronder een melding van nieuwe inhoud, gedurende de eerste 7 dagen na het aanmaken van nieuwe inhoud.

Eerst maken we een view aan. Met views kunnen we namelijk datumvoorwaarden instellen. Ik geef je eerst een algemeen overzicht.

Doodle workaround

Een ex-cursist vroeg me onlangs of er geen Doodle like modules bestaan in Drupal. Dit bleek niet het geval. Ooit moet er in Drupal 7 iets bestaan hebben (Make meeting Scheduler) maar toen al werd deze module niet onderhouden.

We moeten dus zelf aan de slag..

Eerst is er een inhoudstype dat de vergadering of activiteit zal bevatten, met natuurlijk de verschillende mogelijke data en een lijst met mogelijke deelnemers. Deze deelnemers zijn heb ik gelinkt aan ingelogde gebruikers. Logisch.

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.

Aantal items in een view

Hoe zet je het aantal items in een view, zonder te programmeren? Een voorbeeld. Hier zie je een (accordeon) voorstelling van de cast en crew van een film. Het aantal items staat reeds als nummer bij de taak die de personen hadden.

Maak een view (met aggregatie) van het veld dat moet geteld worden. Voeg dit veld 2X toe. Eerst om te groeperen en daarna om te tellen. Zet de aggregatiefunctie aan.

Views Table Rowspan

Een knappe module die het groeperen in een view overzichtelijk maakt.

Als je in een view groepeert in een tabelweergave dan krijg je zo iets... Ik heb een view gemaakt van alle inhoud, gegroepeerd op het inhoudstype. Het groeperen, breekt de tabelstructuur.

Als je deze module gebruikt en goed instelt, dan krijg je dit:

Views Birthday

Deze module zorgt voor een nieuwe views filter en een nieuwe weergave van een datumveld. Het werd gemaakt om de komende verjaardagen van gebruikers te tonen in een view. Handig, zeker als je weet dat de module ook werkt voor elk datumveld in een inhoudstype.

Deze view toont alle verjaardagen van de gebruikers die komen in de eerste 30 dagen.

Bij de filters krijg je een mogelijkheid bij:

Horizontal Slide Out Menu

Een module die een view genereert van een geselecteerd inhoudstype met een afbeeldingsveld. Het afbeeldingsveld kan meerdere afbeeldingen bevatten. Er wordt gefilterd op een taxonomieveld. Per term wordt er een menulink aangemaakt, samen met een algemeen overzicht. Nodes die met meerdere termen getagd zijn, komen in elk van de menulinks voor.

De afbeeldingen worden met hun alt getoond en linken naar een node of naar een colorbox voorstelling. Tevens kan je de kleur van de menubalk via een kleurveldje kiezen.

Content Slider

Mooie voorstelling van de meest recente bijdragen van een inhoudstype. Ik heb de originele code drastisch herwerkt (All credits to Christine Wenniger). Het is een onderdeel van een 'onepage theme' van haar, waar ik het eerste gedeelte van gehouden heb. De laatste zes bijdragen worden getoond aan de hand van een titel en afbeelding. Ik heb ook een knop voorzien om naar de oudere bijdragen te gaan. Deze link moet ingevuld worden en verwijzen naar de view die de oudere bijdragen toont. Deze view maak je zelf.