Automatisch inhoud aanmaken

Moeilijkheidsgraad

Deze studie gaat over het aanmaken van inhoud zonder dat deze inhoud moet worden ingeput.

1) Standaard waarden

Neem gelijk welk veld (een afbeeldingsveld bijvoorbeeld om een banner te maken voor een bepaald inhoudstype of zoals hier een stukje tekst) en zet er een standaard inhoud in:

Drupal8_002704.png

Zet het veld bij de formulier weergave onzichtbaar. Klus geklaard.
Drupal8_002705.png

Er zijn modules zoals de Markup module die hetzelfde doen.. Ik weet echter niet wat deze module meer kan dan dit..

2) Referentie velden

Een referentieveld kan bij de weergave 'rendered entity' weergeven. Je kunt verfijnen met de weergavemodus. Zoals je weet in Drupal 8 kan je zelf weergavemodi bij creëren. Eigenlijk kan je dus gelijk welke velden tonen...

Drupal8_002713.png

Hier kies ik gewoon voor de teaser modus.


Drupal8_002715.png

3) Gebruik van Tokens

met dank aan: https://www.ostraining.com/blog/drupal/prepopulate/

Je kunt in elk tekstveld tokens gebruiken als je de token filter module installeert: https://www.drupal.org/project/token_filter

Ga naar de text format die je wenst toegang te geven voor deze tokens en vink de instelling aan.

Drupal8_002706.png

Vanaf dan kan je gebruik maken van tokens in gelijk welk tekstveld.


Drupal8_002707.png

Het resultaat. Ik voeg eigenlijk drie velden samen. Als je dan sommige velden verbergt, krijg je een beknopte versie...Handig


Drupal8_002709.png

Wat je moet invullen als token vind je bij Help = > Token. Jawel de Help tab heeft dus wel degelijk nut...


Drupal8_002708.png

Helemaal te gek wordt het als je ook een referentieveld hebt in je inhoudstype...

Ik heb in een inhoudstype 'schilderijen' een referentie naar de schilder. Dit inhoudstype heeft foto's van de schilder als veld. Met dezelfde techniek achterhaal je de tokens.

Drupal8_002710.png

Je haalt nu van een ander inhoudstype een veld en integreert dit. Knap.
Drupal8_002711.png

Je kunt er zelfs gebruik van maken in de source modus. Handig om CSS toe te voegen. Hier maak ik de afbeeldingen vierkant.

Drupal8_002712.png

4) Automatic Entity label

https://drupal8.support/nl/modules/automatic-entity-label

Soms is een veld afhankelijk van andere velden. Je kunt dit dan automatisch invullen. Alles wat je leeg laat wordt dan ingevuld.

Een inhoudstype waar een naam en een geboortedatum wordt gevraagd. (normaal maak je dat het titelveld de naam is natuurlijk.. maar om didactische redenen...)

Drupal8_002299.png

Het titelveld is dan eigenlijk overbodig. Vandaar dat we de module aanspreken.


Drupal8_002300.png

Enkel als het niet werd ingevuld, wordt via een automatisch systeem de titel opgebouwd.


Drupal8_002301.png

Voorbeeld...
Drupal8_002302.png

Yep...
Drupal8_002303.png

en als ik iets invul...
Drupal8_002304.png

5) Berekende velden (computed fields)

https://www.drupal.org/project/computed_field

We gaan dit bespreken aan de hand van voorbeelden.

a) bereken de prijs met een maximum van 40 €. Een inschrijving voor een evenement. 10 €/volwassene, 5€/kind

Drupal8_002716.png

Met als mogelijk resultaat:
Drupal8_002717.png

en boven de 40€...


Drupal8_002718.png

b) Genereer automatisch afbeeldingen volgens de inhoud

Ik laat in een veld kiezen welke korting er wordt gegeven..

Drupal8_002721.png

In plaats van de korting toon ik een afbeelding die overeenstemt met de korting.

Drupal8_002719.png

Zie de afbeelding voor de 10 % keuze..


Drupal8_002720.png

Het berekend veld doet de job.. Maak dat de afbeeldingen een naam hebben  zoals10.png en 20.png en dat ze in de correcte map zitten

Drupal8_002722.png

6) PHP veld bij overzichten

Je gelooft het niet maar Drupal kan geen datumvelden aan van voor 1900.. Heeft iets te maken met de PHP blijkt. Dag 1 is 1/1/1900. Daarvoor is er ... niets..

Ik heb hier een view die toch de geboortedata van enkele schilders van vóór 1900 toont, gesorteerd...Er wordt zelfs een verjaardagsmelding gegeneerd..

Drupal8_002723.png

Hoe pakken we dit aan... 3 velden voor de data. Dag, maand en jaar. Logisch.
Drupal8_002724.png

We stellen dit dan samen met een berekend veld naar een datum. Let op dit is geen datumveld. Je kunt er niet op sorteren. Vandaar ook een soort sorteerveld 'daynumber'.
Drupal8_002725.png

De datum wordt samengesteld...
Drupal8_002726.png

Het sorteerveld houdt rekening met schrikkeljaren en het gemiddelde van de dagen in een maand.
Drupal8_002727.png

In de view verschijnt er nu een php veld. https://www.drupal.org/project/views_php
Drupal8_002728.png

Daar kan je pure PHP invullen. Bekijk aandachtig deze code. Het vergelijkt de dag en maand van de geboortedatum en vergelijkt die met de huidige datum. 2 dagen op voorhand wordt de verjaardag reeds aangekondigd. PHP bij views komen niet in de database terecht. ze worden ad hoc aangemaakt boor de view.
Drupal8_002729.png

7) Iframes

https://www.drupal.org/project/iframe

Een module die je toelaat om gedeeltes van een andere site te capteren. Aangezien sommige browser (Chrome) dit niet toelaten is dit dus niet meer bruikbaar. Zelfs als je op de server instellingen wijzigt om dit toch toe te laten, is dit een beetje tegen alle afspraken in. Men vreest dat sommige gebruikers niet weten op welke site ze kijken en/of gegevens invullen... Vandaar... We gaan dit dus niet gebruiken. Net als veld en niet in de CKEditor.

8) Devel Generate

Deze module hoort bij Devel: https://www.drupal.org/project/devel

Je krijgt er een mogelijkheid bij om dummy inhoud toe te voegen. 

Drupal8_002735.png

Je kiest het inhoudstype en verder vul je je wensen in.

Drupal8_002730.png

Het resultaat. Inhoudstypes met afbeeldingen, taxonomietermen, referenties... Alles werkt.


Drupal8_002731.png

De inhoud wordt met Lorem Ipsum gevuld.
Drupal8_002733.png
9) Rules

Met Rules kan je ook inhoud automatisch genereren.. Waarde instellen... Op dit ogenblik is de Drupal 8 verzie van Rules nog niet gebruiksvriendelijk genoeg om mee te werken..

10) Feeds

CSV import nog niet mogelijk in Drupal 8. 

11) Node Export

Yep... nog niet in Drupal 8 op dit ogenblik. 

12) VBO

Views Bulk operations is nu ingebouwd in Drupal 8 kern. Je kunt er inhoud mee (de)publiceren, promoveren tot de frontpagina, verwijderen,... Maar de inhoud kan je niet in bulk aanpassen.

De module Bulk Update Fields (https://www.drupal.org/project/bulk_update_fields) zal daar verandering in brengen. Ik krijg een foutmelding bij de installatie er van. Blijkbaar nog prematuur...

13) Views

Met Viewfield of de EVA module (zie besprekingen) kan je ook in een node inhoud weergeven.