Webform MySQL Views

Leseenheid

Moeilijkheidsgraad

3

De resultaten weergeven van onze formulier input is bij Drupal standaard nogal pover. Wat er ontbreekt is de mogelijkheid om de zelfgemaakte velden uit het formulier te gebruiken in de view. Drupal is fantastisch wat webforms betreft, maar om nu de velden ook aan anderen te tonen... hou je vast aan de takken van de bomen.

Eerst installeren we Webform Mysql Views:

Via inhoud => Webforms => MySQLViews halen we onze webform binnen als view.

Onze view beschikt echter nog niet over de mogelijkheid om de velden, die door ons werden gemaakt, te integreren in onze view. Dze 'man-made' velden zijn niet bekend bij Drupal... We moeten daarvoor de module DATA installeren.

Deze Data module heeft nog enkele andere nodig; Entity API en Schema. Deze laatste controleert bvb. van alles in de database. Zo kijkt Schema of de datum velden wel goed ingesteld staan. Iets wat Webform nogal eens slordig doet...

Als je alles hebt geïnstalleerd, dan kan je via structuur => Datatables, de tabellen de 'man-made' tabellen importeren:

Je ziet dat ze de naam weestabellen hebben, ocharme... Merk ook al eens het protest van schema op voor het datumtype. We negeren dit op dit ogenblik. Dit komt voornamelijk omdat er telkens als je webform gebruikt er ook een datumstempel meekomt. Deze staat op z'n Amerikaans en past niet in ons datum schema.

Je ziet dat er een Overzicht (=view) aangemaakt werd. Probeer eens...

Je kunt ook een eigen view maken, maar gebruik maken van de kant en klare view is natuurlijk makkelijker. Bewerk die volgens je eigen voorkeur... een voorbeeldje:

met als resultaat:

Je ziet dat er een verbinding gemaakt werd met een andere tabel. Die met postnummers en de provincies. Dit stelt je in staat om te filteren en te sorteren. ik heb een nieuwe tabel gemaakt en de gegevens geïmporteerd:

Daarna moet ik een relatie leggen:

nu kan ik dit in de view verwerken. Door de relatie kan ik aan de nieuwe tabel met postnummers.

Ik kan er ook op filteren:

Je stelt die zo in:

Je ziet dat ook een link naar de afbeelding verschijnt. Dit zie je niet standaard. Je krijgt als je het fotoveld toevoegt een nummer van de afbeelding te zien. Je moet echter de waarde gaan halen van dit veld en niet z'on stom nummer.

Zo voeg je die waarde toe:

en instellen:

Zo krijg je een overzicht van de gegevens die werden ingebracht via webform. Als je zelf een view wilt maken dan moet je nog even verder kijken..

Facultatief:

Als je zelf een view maakt en geen gebruik maakt van de view van mysqlviews dan moet je eerst maken dat deze view een link vormt met onze tabel. Klik op 'bewerken'.

en stel de join in. Deze term is zeer gebruikelijk in databastermen (vb ook in Access). Later als we een les besteden aan databases zal dit zeker aan bod komen..

Goed kijken dat je de juiste join legt...

Nu gaan we onze view aanpassen. We moeten een relatie leggen. Je view moet nu duidelijk gemaakt worden dat al onze voorbereidingen ook voor hem bereikbaar zijn. Hieronder zie je het resultaat.

Ga naar relaties en selcteer je webform views...

stel de relatie in.

Vanaf nu verschijnen de zelfgemaakte velden als optie in de view. Klik op toevoegen en kies de velden die je wenst:

Een mogelijke view:

Een mogelijk resultaat....

Via rearrange kan je de volgorde van de velden bepalen, zoals altijd natuurlijk.

We hebben in dit thema de installatie, het maken,  gebruiken én het tonen van een formulier gezien. Tenslotte kan je nog Captcha op je formulier instellen. Geen slecht idee als je formulier open staat voor iedereen. Vergeet niet het vinkje aan te zetten zoals hieronder getoond. Dan pas komen de webform mogelijkheden zichtbaar. Wil je het ene formulier beschermen en het andere niet... geen probleem. Kijk in de broncode welke ID het formulier heeft en pas zo je instellingen aan. Hier heeft mijn formulier de ID; client_webform_10

Mijn manier is de volgende: zet het vinkje aan en ga naar het formulier in de front. Je zult daar een captcha-instelling vinden. Zet deze aan. Dan komt automatisch het formulier bij de instellingen (=bij de admin pagina's) te staan.