Apart gebouwd, toch een geheel met ebdb.nl
Precies wat in de vraag stond: de beeldbank staat los van de hoofdsite, zodat een verbouwing aan de een de ander niet raakt. Voor de bezoeker moet het een site lijken. Dat lost dit op.
De beeldbank draait op beeldbank.ebdb.nl. Eigen hosting, eigen back-up, eigen updates. Gaat er iets mis aan de hoofdsite, dan blijft de beeldbank gewoon in de lucht, en andersom.
Kleuren, logo, typografie en menubalk komen overeen met ebdb.nl. In het menu van de hoofdsite komt een link Beeldbank, hier staat een link terug.
Een stukje code in een WordPress-pagina toont een rij beeld uit de beeldbank. Voeg je hier iets toe, dan verschijnt het daar vanzelf. Geen dubbel onderhoud.
Alle velden die je in de bibliotheek ziet, staan straks in Sanity CMS. De EBDB beheert daar zelf, de beeldbank leest het uit.
Een blok op ebdb.nl
Deze regel in een pagina van de hoofdsite plakken. Er verschijnt een rij beeld uit de gekozen verzameling, met een knop naar de beeldbank.
<script src="https://beeldbank.ebdb.nl/embed.js"></script> <div data-ebdb="persmap" data-aantal="6"></div>
Of rechtstreeks de gegevens
Wil een partner of een andere site er zelf iets mee bouwen, dan is er per verzameling en per thema een JSON-adres.
// GET https://beeldbank.ebdb.nl/api/thema/greenport.json { "thema": "greenport", "aantal": 9, "items": [{ "id": "greenport-highlight-2", "titel": "Greenport, highlight 2", "web": "/assets/w1200/...webp", "origineel": "/assets/orig/...jpg", "credit": "Robert Waasdorp" }] }
Diep linken werkt
Elke selectie heeft een eigen adres. Handig in een mail of een nieuwsbrief: je stuurt iemand precies naar wat hij nodig heeft, in plaats van naar de voordeur.
De embedcode en het JSON-adres hierboven laten zien hoe de koppeling eruitziet; ze staan in deze proefopstelling nog niet aan. De beeldbank zelf werkt wel echt: zoeken, filteren, selecteren en downloaden doen wat ze beloven, de zip wordt in je browser gemaakt. Wat er nog bij moet is de serverkant met Sanity, inloggen voor beheer, en het echte subdomein.