Inleiding
-- Deze oefening werd bedacht door Dirk Bernaert, ik heb de oefening onderverdeeld in iets meer tussenstappen --
"Deze les laat je kennismaken met hiërarchie in taxonomie en bijhorende modules. Ook de knappe module 'If Then Else' gaan we gebruiken. .. Er zit zowat van alles in..
De opdracht is simpel...
Het komt hier op neer dat een anonieme gebruiker kan ingeven hoeveel dieren (en vogels) er zich in de tuin bevinden op een bepaald ogenblik. Er wordt een inhoudstype open gezet om dit te doen, met de nodige tool om dit vlot te laten verlopen. De presentatie van deze bijdrage is ook een didactische uitdaging. Er wordt ook een overzicht gegenereerd en bij elke nieuwe bijdrage wordt er een mailtje verstuurd naar ... jou natuurlijk..."
De oefening kan je afgewerkt terugvinden op drupalfun.nl je kan daar inloggen met hetzelfde wachtwoord als jullie sites. Kijk gerust eens rond, maar gelieve niets aan te passen
Heb je een vraag, of zit je ergens mee vast, mail gerust
Voorbereiding
Nodige modules:
- Simple hierarchical select
- Term Reference Tree
- Hierarchical Taxonomy Import (de dev-versie)
- Paragraphs + Entity Reference Revisions
- Views Table Rowspan
- If Then Else
- EVA
Taxonomie importeren
- Maak eerst een nieuwe woordenlijst aan: Dieren
- Ga nu naar instellingen en kies Ontwikkelingen - Taxonomy Importer
- Selecteer de correcte woordenlijst
- Kies vervolgens bij het uploaden voor DIT BESTAND
- Na de vermelding van succes, controleer je het resultaat:
- Herhaal bovenstaande stappen opnieuw om ook de straatnamen van Lokeren en Waasmunster toe te voegen. Gebruik DIT BESTAND
Paragraaftype om naar te refereren
- We maken een nieuw paragraaftype om later in het inhoudstype naar te kunnen referen:
- Voeg nu en eerste veld toe aan dit paragraaftype:
- Label: Getal
- Soort: Integer
- Voeg een tweede veld toe:
- Label: Dieren
- Referentie naar de woordenlijst Dieren, hier zet je de waarden op onbeperkt. Dat is eigenlijk niet logisch omdat mensen nu meerdere gaan kunnen aanvinken, echter geeft dit een vervelende error indien deze op beperkt staat.
- Pas vervolgens de weergave en de formulierweergave aan:
Inhoudstype voor indienen
- De volgende stap is het opstellen van een inhoudstype dat vervolgens kan worden opengesteld voor de anonieme gebruiker. We gebruiken hiervoor verschillende velden.
- Het verplichte titelveld geven we een ander label: Naam en voornaam
- Drie velden:
- Referentie naar onze vers gemaakte paragraaf
- Een e-mail-veld
- Een referentie naar onze woordenlijst 'Straatnamen'
- Pas nu de formulierweergave aan:
Menulink
- Voeg inhoud toe van het type Dierentelling
- Voeg nu geen feitelijke inhoud toe maar kopieer de URL
- Maak van deze URL een link in het hoofdmenu
Overzicht met resultaten
- Maak een nieuw overzicht aan
- Naam: Telling resultaten
- Inhoud van het type dierentelling
- Maak een page aan
- Een table rowspan van velden
- Geen paginering
- Menulink in het hoofdmenu
- Voeg een eerste relatie toe:
- Voeg een tweede relatie toe:
- Voeg een eerste veld toe:
- Voeg een tweede veld toe:
- Verwijder het veld Title
- Zet het aggregeren aan, zo kunnen we totalen berekenen
- Voeg opnieuw dit veld toe:
- Kies SOM als aggregatietype
- Een label hoeft niet
- Groepeer bij de instellingen de Table Row Span op het juiste veld.
- Wanneer iemand 5 konijnen input zullen die verschijnen in het overzicht, wanneer er echter later nog iemand 5 konijnen ziet, dan zullen die er gewoon onder verschijnen. Beter is dat deze worden opgeteld bij de eerste 5 konijnen. We passen dat aan bij de sorteercriteria
- We willen boven het overzicht een melding van het totaal aantal ingevoerde inzendingen. We doen dit door een overzicht te laten verschijnen in de kop boven onze view. Maar, we hebben dergelijk overzicht nog niet. We maken dat dus eerst aan
- Sla eerst op!
- Voeg een nieuw overzicht toe
- Naam: Aantal tellingen
- Inhoud van Dierentelling
- Page maken
- Onopgemaakte lijst van velden
- Geen menulink, geen paginering
- Voeg het veld Content Type toe, sluit uit van weergave
- Zet aggregeren aan
- Bij de titel kies je bij de instellingen aggregatiefuntie voor Aantal
- Herschik de velden zodat de titel op de tweede plaats komt te staan
- Verwijder de sorteercriteria
- Bij het veld Titel kan je een achtervoegsel toevoegen:
- Dit overzicht is klaar. Sla op.
- Open opnieuw de instellingen van het eerdere overzicht
- Voeg een kop toe:
- Kies het juiste overzicht uit de lijst:
- Resultaat:
- Sla dit alles even uit en doe een eerste test.
EVA om na het inzenden te doen verschijnen
- Maak een nieuw overzicht aan:
- Voeg bij dit overzicht twee relaties toe:
- Voeg twee velden toe, beide hebben geen label nodig, verwijder ook het veld title
- Om de juiste info te krijgen op de juiste moment voegen we een contextuele filter toe:
- Voeg nu EVA toe:
- We koppelen EVA aan het juiste inhoudstype:
- Sla het geheel op
- Kijk je bij de weergave van het inhoudstype Dierentelling, dan kan je EVA daar nu een plaats geven:
- Met een beetje CSS laat je de standaardinfo die verschijnt na het toevoegen van de node niet in beeld komen:
.paragraph--type--dieren-telling
{
display:none;
}
- Wanneer iemand nu een telling doorgeeft krijgt hij/zij volgende te zien:
Een mailtje met If Then Else
- Onderstaande toont een afbeelding van de rule om een mail naar de webmaster te laten verzenden wanneer er een nieuwe inzending is. Om dit uiteindelijk te testen zal je ook de toegangsrechten moeten aanpassen daar de Rule werd opgesteld voor de anonieme gebruiker.