Les 5

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:

Taxonomie importeren

  1. Maak eerst een nieuwe woordenlijst aan: Dieren
  2. Ga nu naar instellingen en kies Ontwikkelingen - Taxonomy Importer

importer

  1. Selecteer de correcte woordenlijst
  2. Kies vervolgens bij het uploaden voor DIT BESTAND
  3. Na de vermelding van succes, controleer je het resultaat:

tax

  1. Herhaal bovenstaande stappen opnieuw om ook de straatnamen van Lokeren en Waasmunster toe te voegen. Gebruik DIT BESTAND

straatnamen

Paragraaftype om naar te refereren

  1. We maken een nieuw paragraaftype om later in het inhoudstype naar te kunnen referen:

type para

  1. Voeg nu en eerste veld toe aan dit paragraaftype:
    1. Label: Getal
    2. Soort: Integer
  2. Voeg een tweede veld toe:
    1. Label: Dieren
    2. 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.
  3. Pas vervolgens de weergave en de formulierweergave aan:

weergave

formulierweergave

Inhoudstype voor indienen

  1. De volgende stap is het opstellen van een inhoudstype dat vervolgens kan worden opengesteld voor de anonieme gebruiker. We gebruiken hiervoor verschillende velden.
  2. Het verplichte titelveld geven we een ander label: Naam en voornaam

naam en voornaam

  1. Drie velden:
    1. Referentie naar onze vers gemaakte paragraaf
    2. Een e-mail-veld
    3. Een referentie naar onze woordenlijst 'Straatnamen'

drie velden

  1. Pas nu de formulierweergave aan:

form

Menulink

  1. Voeg inhoud toe van het type Dierentelling
  2. Voeg nu geen feitelijke inhoud toe maar kopieer de URL
  3. Maak van deze URL een link in het hoofdmenu

menulink

Overzicht met resultaten

  1. Maak een nieuw overzicht aan
    1. Naam: Telling resultaten
    2. Inhoud van het type dierentelling
    3. Maak een page aan
    4. Een table rowspan van velden
    5. Geen paginering
    6. Menulink in het hoofdmenu
  2. Voeg een eerste relatie toe:

relatie 1

  1. Voeg een tweede relatie toe:

relatie 2

  1. Voeg een eerste veld toe:

term

instellingen

  1. Voeg een tweede veld toe:

dieren

dieren instellingen

  1. Verwijder het veld Title
  2. Zet het aggregeren aan, zo kunnen we totalen berekenen

aggregatie

  1. Voeg opnieuw dit veld toe:

aantal opnieuw

  1. Kies SOM als aggregatietype

SUM

  1. Een label hoeft niet
  2. Groepeer bij de instellingen de Table Row Span op het juiste veld.

groeperen

  1. 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

sorteer1

sorteer2

sorteer3

  1. 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
  2. Sla eerst op!
  3. Voeg een nieuw overzicht toe
    1. Naam: Aantal tellingen
    2. Inhoud van Dierentelling
    3. Page maken
    4. Onopgemaakte lijst van velden
    5. Geen menulink, geen paginering
  4. Voeg het veld Content Type toe, sluit uit van weergave
  5. Zet aggregeren aan
  6. Bij de titel kies je bij de instellingen aggregatiefuntie voor Aantal

aantal

  1. Herschik de velden zodat de titel op de tweede plaats komt te staan
  2. Verwijder de sorteercriteria
  3. Bij het veld Titel kan je een achtervoegsel toevoegen:

achtervoegsel

  1. Dit overzicht is klaar. Sla op.
  2. Open opnieuw de instellingen van het eerdere overzicht
  3. Voeg een kop toe:

kop

  1. Kies het juiste overzicht uit de lijst:

aantal tellingen

  1. Resultaat:

resultaat

  1. Sla dit alles even uit en doe een eerste test.

EVA om na het inzenden te doen verschijnen

  1. Maak een nieuw overzicht aan:

eva

  1. Voeg bij dit overzicht twee relaties toe:

realaties

  1. Voeg twee velden toe, beide hebben geen label nodig, verwijder ook het veld title

velden

  1. Om de juiste info te krijgen op de juiste moment voegen we een contextuele filter toe:

filter

url

  1. Voeg nu EVA toe:

EVA

  1. We koppelen EVA aan het juiste inhoudstype:

koppelen

  1. Sla het geheel op
  2. Kijk je bij de weergave van het inhoudstype Dierentelling, dan kan je EVA daar nu een plaats geven:

EVA plaatsen

  1. 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;
}
 

  1. Wanneer iemand nu een telling doorgeeft krijgt hij/zij volgende te zien:

test

Een mailtje met If Then Else

  1. 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.

if then else