De meeste websites die meer zijn dan een digitaal visitekaartje hebben een datastructuur nodig om informatie in op te slaan, te filteren en uiteindelijk te tonen aan de gebruiker. De data wordt meestal opgeslagen in een database. Een database kan meerdere tabellen bevatten om verschillende soorten data in op te slaan. De tabellen kunnen onderling verbonden zijn en bieden zo inzicht in de relatie tussen de verschillende soorten data.
Om dynamische pagina’s te genereren op basis van dataregels in een database heeft HubSpot HubDB ontwikkeld. Binnen deze tool heb je de mogelijkheid om verschillende tabellen aan te maken en de relaties tussen deze tabellen aan te geven. Elke dataregel in de tabel kan staan voor een dynamische pagina op de front-end van de website. Het is ook mogelijk meerdere lagen diep te gaan in de getoonde informatie door tabellen aan elkaar te koppelen.
Als voorbeeld kan een hotelketen worden gebruikt met verschillende locaties. In de hoofdtabel zijn de diverse locaties opgenomen. Op de pagina https://hotelketen.nl/locatie vind je een overzicht van deze locaties, de url-structuur van een detailpagina zou dan https://hotelketen.nl/locatie/rotterdam zijn. Op een niveau dieper wil je per locatie de details van een kamer laten zien. Deze kamers staan in een andere tabel en zijn dan op de volgende manier toegankelijk: https://hotelketen.nl/locatie/rotterdam/tweepersoonskamer.
De tabellen bestaan uit kolommen die naar eigen inzicht toe te voegen zijn. Als de tabellen gemaakt worden om dynamische pagina’s te tonen wordt automatisch een kolom voor de paginatitel en voor de url toegevoegd. Alle kolommen kunnen vervolgens gebruikt worden om de inhoud van de dynamische pagina’s in te vullen. Sinds kort is het ook mogelijk om de dataregels van een tabel in te vullen vanuit het template van de dynamische pagina. Deze visuele weergave is een stuk gebruiksvriendelijker dan de originele tabelweergave.
Voor het weergeven van data op de front-end wordt een specifiek template gemaakt. Dit template wordt geschreven in de HubSpot CMS taal HubL. Het boilerplate template biedt een developer een goed uitgangspunt voor dit HubDB template. In het template wordt de data uit de verschillende kolommen een plekje gegeven. Kolommen kunnen verschillende soorten data bevatten, naast tekst zijn dit bijvoorbeeld afbeelding, video’s, linkjes, nummers en diverse meerkeuze opties. Hiermee heb je alle mogelijkheden om de dynamische pagina’s zo op te maken alsof het een normale websitepagina zou zijn.
Het is niet altijd noodzakelijk om een datastructuur in HubDB onder te brengen. Voor blogs zijn er binnen het HubSpot CMS bijvoorbeeld al voldoende mogelijkheden. Ook als de hoeveelheid data beperkt is kan je overwegen om normale websitepagina’s te gebruiken in plaats van een datastructuur in HubDB. Je hebt dan geen developmentwerkzaamheden nodig om het HubDB template te realiseren. Ook als het uiterlijk van de verschillende pagina’s steeds anders moet zijn, is HubDB geen goede optie.
Waar HubDB juist wel geschikt voor is zijn grote hoeveelheden data die op een uniforme manier op de website tonen. Onderhoud van deze data is centraal vanuit HubDB te regelen. En als er wijzigingen op de front-end nodig zijn dan hoeft dat maar op één plek aangepast te worden. Ook het zoeken en filteren van data is een reden om voor HubDB te kiezen.
Uiteindelijk is HubDB hét onderdeel dat HubSpot CMS een volwaardig Content Management Systeem maakt. Het geeft developers de vrijheid om alles wat nodig is te kunnen maken. HubSpot CMS is daarmee een uitstekend alternatief voor een van de andere bekende CMS systemen, ook vanuit het perspectief van een developer.