Inhoudstypen vervolmaking

Leseenheid

Viewfield module

Een uitgewerkt voorbeeld... Je kunt een view als veld invoegen. Je ziet hieronder een view met de schilderijen, horend bij het Louvre museum, als veld tussen de andere velden:

Installeer de viewfield module en maak een inhoudstype dat dit veld toegewezen krijgt. Je moet eerst een view maken natuurlijk. Je hoeft dit voorbeeld niet te volgen. Maak iets analoog met boeken en auteurs.

Selecteer welke view je wenst:

Als je je view wilt filteren, kan dit makkelijk met een contextuele filter. In dit voorbeeld zullen in de view alle schilderijen getoond worden, maar in de node zal enkel die van het betrokken museum aanwezig zijn.

Maak dat als je een auteur kiest, je de werken als view van deze persoon ziet.

Field Group Module

Een mooie module met veel mogelijkheden: tabs, accordion, ... Hier hebben we gekozen voor horizontale tabs:

Maak volgend inhoudstype aan: (field collection en table field komen later aan bod). Je moet dus een horizontal tabs groep maken vooraleer je items kunt toevoegen.

Ook zorgt de module voor de output. Hier zie je een 'veldengroep' die je kunt uitgevouwen of dichtgeklapt weergeven:

Een mogelijk resultaat:

Table Field Module

Dit zorgt dan weer een tabel als inputmogelijkheid. Hier een simpel voorbeeldje. Je kunt er ook een twee dimensionele tabel van maken met labels in rijen en kop.

De tabel komt ook als tabel zichtbaar in de node, in een view is dit niet mogelijk als je daar voor tabelvoorstelling kiest (je zou dus een tabel in een tabel krijgen) Bij de standaard weergave, lukt het wel.

Conditional Fields Module

Deze module laat toe om velden te laten verschijnen op voorwaarde dat ander velden een bepaalde waarde hebben. Zo laat ik hier bij woon-werk verkeer met de wagen een veldje voor de nummerplaat verschijnen. Iemand die met het openbaar vervoer komt, zal dit niet te zien krijgen.

Het resultaat: vink je wagen af, dan zal het veld verdwijnen. Alle dependencies (afhankelijkheden) kan je ook beheren via Structuur.

Field Collection Module

Hiermee geef je te kennen dat deze velden bij elkaar horen. Ik heb als voorbeeldje een collectie gemaakt met de naam Burgerlijke stand. Je begint met in een inhoudstype dit veld in te voeren:

Daarna ga je naar structuur:

Je maakt nu velden aan, net zoals je in een inhoudstype zit.

Ook de weergave kan je beheren:

In een view zal je zien dat de gegevens van een collectie gegroepeerd worden voorgesteld. Merk ook op dat er standaard knoppen bij zijn op te bewerken, wijzigen,..(je kunt dit uitschakelen)

Field Conditional States

deze module zorgt er voor dat je velden al of niet kan tonen, afhankelijk van de waarde van een ander veld. Zo heb ik ooit voor de input van een uurrooster een veld 'Educatief verlof' aangemaakt. Als je dit aanvinkt dan verschijnt er een tekst met meer uitleg over dit verlofstelsel, anders zie je niets. Hieronder zie je de 2 velden. De eerste is een keuzevakje. De tweede zorgt voor de tekst.

Bij statussen van het tweede veld, klik je en maak je een conditionele status aan. Kies bij Zichtbaar. We willen deze eigenschap instellen.

Je kunt nu het vinkveld verborgen houden, het is de tekst die telt...

Het reultaat, wanneer aangevinkt natuurlijk.

Deze module is dus net zoals Conditional Fields module, maar specifiek voor de bezoeker. Conditional Fields is eerder voor de input.

Field Formatter Class en Field Formatter Settings API

zorgen voor een class toewijzing aan een veld. Dit kwam reeds terloops aan bod tijdens de CSS intro oefening van Drupal2. Hier gaan we er dieper op in. Je kunt namelijk alle velden een opmaak geven, niet enkel die van de afbeeldingen.

Simple Hierarchical select

Zorgt er voor dat je in een taxonomiestructuur met echelons, keuzelijsten kunt maken die filteren op de parent link.

Dit werkt voor enkel de mensen die inhoud kunnen toevoegen! Het is een node formulier.

Hierzie enkele straten van Lokeren

Kiezen we Zele dan krijg je de straten van Zele.

Je moet dan wel een structuur hebben aangemaakt in je woordenlijst.

Je kunt ook aanvinken bij de instellingen dat je ook items toevoegt. Als je nu opslaat heb je in de taxonomie een term toegevoegd onder de term Zele.

Een practische module... Mooie integratie tussen node en taxonomie.

References (node reference) en views reference filter

Laten we beginnen met de basismodule: References. Deze module stelt je in staat om een ander inhoudstype te integreren in een veld. Vb. Je hebt cursussen (Drupal 1, 2, 3..) en klassen (donderdag avond Lokeren) Als je nu moet toekennen wat er in d eklas van doav Lokeren wordt gegeven dan kan je kiezen uit de cursussen, zelf een inhoudstype.

Je hebt er deze module voor nodig.

Vink tevens deze module aan. Het is een uitbreiding op bovenstaande en we hebben ze straks nodig:

In ons inhoudstype van klassen heb ik 2 velden (van elke module één) klaar gezet.

De eerste geeft dit als mogelijkheid. Je kiest uit de node titels va het inhoudstype cursussen.

Daarvoor moet je een view aanmaken van het type referenties.

Probeer eerst eens uit:

Nu kan je in je inhoudstype bij de instellingen van het veld, dit kiezen:

Bij het intikken van letters in klas_cursus zal nu de view worden getoond. Merkop dat de node ID ook bij d ekeuze komt te staan.

Nu gaan we dit verfijnen door een entitity reference te nemen. Dit stelt je in staat om ook op andere velden te zoeken. Andere velden dan de titel. (Praktisch als je bvb ook op een postnummer én gemeente wil zoeken.) Hier vullen we ons voorbeeld aan met de locatie als zoekveld toe te voegen. Je ziet dat ik 'zel' intik en dat toch Drupal 1 te voorschijn komt.

Maak weer een view.

Je kunt kiezen welke zoekvelden je toevoegt:

In het inhoudstype krijg je nu volgende instelling:

 

References worden veel gebruikt in Drupal. Het combineren van inhoudstypes is zeer interessant. Een product is altijd onderdeel van een groter geheel (vb categorie). Het inhoudstype 'categorie' levert dan via references de categorie voor het product.

Scheduler

Deze module laat je toe om een begin- en einddatum van publicatie in te stellen  voor een node. Er is ook nog Rules Scheduler (een andere module), om desnoods inhoud te verwijderen na een bepaalde datum.

Bij de instellingen wel eerst je voorkeur qua datumnotatie invullen.

Daarna ga je naar het inhoudstype en zet je de mogelijkheid om dit per node te gebruiken in.

Nu kan je telkens je nieuwe inhoud aanmaakt, begin en eind van publicatie instellen. Dit gebeurt met cron. Er kan dus enige vertraging op zitten! Soms wordt de cron pas geactiveerd als je als admin inlogt. Later komt cron als aparte les aan bod.

Field display Label

Zorgt er voor dat je kan afwijken van de ingegeven veldnaam. Zeer handig. ik gebruik nogal technische namen voor mijn velden; Zo los je dit op. Deze module wijst zichzelf uit..

Tenslotte...er bestaat ook een entity contsruction kit. dit laat je toe om een inhoudstype te maken die zelf als basis kan gebruikt worden voor andere inhoudstypes. Bvb. Je maakt een entity type (hier inhoudstype) aan met de naam fruit. Je bepaalt de gemeenschappelijke velden die gelden voor elke fruitsoort. Daarna ga je een inhoudstype 'appels' maken op basis daarvan. Je kunt nu velden toevoegen, specifiek voor appels. zo doe je dit bvb ook voor bananen enz.. Bekijk maar eens deze handleiding:

https://swsblog.stanford.edu/blog/entity-construction-kit-what-it-and-wh...