Grote update Plate: 9 april

Mappenstructuur themabestanden, Content Types uitgebreid

De afgelopen tijd zijn we druk bezig geweest met een grote update aan de Plate software. Dit betekent ook een aantal veranderingen voor hoe je website werkt en in elkaar steekt. De update is grofweg op te delen in twee grote aanpassingen:

  • Content Types toepasbaar op verschillende soorten content: Posts, Secties, Elementen en Abstracte content
  • De mappenstructuur en bestandsnamen van themabestanden zijn veranderd

Content Types

Allereerst de Content Types. Je kunt nu bij het aanmaken of bewerken van een Content Type aangeven voor welke soort content het Content Type beschikbaar moet zijn. Deze soorten content zijn:

  • Posts

  • Secties

  • Elementen

  • Abstracte content


De eerste drie zijn al bekend uit Plate, maar de laatste is nieuw. Abstracte content zijn Content objecten binnen Plate, maar worden niet gebruikt als Post, Element of Sectie. Ze vertegenwoordigen dus data die niet rechtstreeks een template hebben, maar alleen worden opgeslagen, en op andere plekken kunnen worden gebruikt. Deze objecten kunnen gebruikt worden in de referentievelden.


Denk bijvoorbeeld aan een categorie van een blog, of een tag voor een bepaald product op je site. Om dit te maken moest je voorheen kiezen tussen een referentie naar een Post of Element Content Type, en bij het maken van content voor referentievelden werd dan vaak gekozen voor element. Eigenlijk is een element of post niet bedoeld om dergelijke referenties te maken, vandaar deze uitbreiding.

Bij het maken of aanpassen van een Content Type kies je voor welke soort content het Content Type beschikbaar moet zijn.

Een andere verandering die met de update wordt doorgevoerd is dat je nu ook contentvelden die in Posts worden gebruikt kunt uitzetten voor verschillende templates. Oftewel: je kunt voor de index van een Post Type bepaalde velden uitzetten.

Mappenstructuur themabestanden

Deze opsplitsing van Content Types zorgde ervoor dat themabestanden niet meer op de oude manier getoond kunnen worden. Immers, een Content Type dat zowel een post als een element kan zijn, hoe hou je dat overzichtelijk in je themabestanden? Daarom is dat ook op de schop gegaan. Voor elke soort content is een apart mapje beschikbaar in de root van je thema: “elements”, “posts” en “sections”. Daarbinnen hou je de originele mappenstructuur aan.

Naast deze mappen zijn de welbekende mappen trays (voor de trays), layout (voor de theme.plate en andere layout bestanden), en assets (voor CSS/JS bestanden) nog altijd aanwezig. Abstracte content heeft geen eigen mapje in de root, maar daarvoor kan de includes (of een andere, eigen naam) map gebruikt worden, net als voor andere themabestanden die je zelf aanmaakt. Als je wil weten hoe dit allemaal in de praktijk werkt, lees dan het voorbeeld.

Bestandsnamen themabestanden

De underscore (_) vóór de bestandsnamen verdwijnt! De underscore was om inline content mee aan te duiden, maar het bleek dat dat niet altijd even goed begrepen werd, en de toegevoegde waarde is niet heel groot gebleken. Themabestanden beginnen dus niet meer met een underscore. Maar als je het zelf prettig vindt om te gebruiken kan het natuurlijk wel, in combinatie met de include tag.

Voorbeelden Themabestanden:

{% include person %} is hetzelfde als: {% include ‘elements/people/person’, person: person %} (als person een element is).

met als resultaat dat het themabestand elements/people/person.plate erbij gehaald wordt, met als variabele person


{% include ‘includes/test_bestand’ %} heeft als resultaat dat het themabestand includes/test_bestand.plate opgezocht wordt.


{% include ‘includes/_test_bestand’ %} heeft als resultaat dat het themabestand includes/_test_bestand.plate opgezocht wordt.

Voorbeeld Content Types:

Stel je voor dat je een Content Type ‘Personen’ maakt. Je wil zowel een inline Element kunnen maken voor een persoon, als een Post. Dan vink je dus Elementen en Posts aan bij het aanmaken van het Content Type. De bestanden die je dan kunt maken zijn:

Voor Element:

elements/people/person.plate

Voor Post:

posts/people/show.plate

posts/people/index.plate

Zo kun je hetzelfde Content Type gebruiken voor verschillende soorten content.

1 x per maand tips voor de ontwikkeling van je websites met Plate ontvangen?

Kobus Post Chef de Code

Weten wat Plate voor jou kan betekenen?

Blijf op de hoogte van nieuwe updates en features via onze nieuwsbrief