In opdracht van Interassur ontwikkelde Prosite een multisite platform voor de verzekeringssector in Drupal.
Het platform moest voldoen aan volgende functionaliteiten:
- Eenvoudig toevoegen van inhoud op 1 locatie
- Inhoud word verspreid en zichtbaar op meerdere 'dochter' of 'sub' sites
- Nodes dienen per site zelf aangepast of herschreven te kunnen worden
- Elke dochter- of subsite dient zijn eigen adminstrator/beheerders te kunnen bevatten met de nodige rechten om zelf het volledige beheer van de website in handen te kunnen nemen.
- Verschillende basis templates, elk uitbreidbaar naar de eigen huisstijl
- Administrators/beheerders van subsites dienen eerst de nieuwe inhoud te kunnen bezichten alvorens deze te publiceren op hun website.
- Snel uitrollen van nieuwe websites
Aangezien we op Prosite reeds ervaring hadden met multisite projecten leek ons dit de beste oplossing. Door dat de inhoud beschikbaar en aanpasbaar moet zijn op elke website en elke beheerder volledig alle mogelijkheden moest kunnen gebruiken was het ook niet mogelijk om verschillende tabellen van de Drupal database te gaan delen.
Bij aanvang van het project hadden we niet lang daarvoor onze tienen.info RSS website afgerond welke ons op het idee bracht om alle inhoud via RSS feeds te gaan doorsturen tussen de verschillende websites.
We gingen aan de slag met een Acquia Drupal installatie voor de moedersite (hoofdsite), hierop voegden we verschillende inhoudstypes toe met elk zijn eigen custom velden. Dit zijn bv documenten, banners, nieuwsartikelen, filmpjes, afbeeldingen, ...
Met de views en Contemplate module konden we onze eigen custom RSS feeds samen stellen en zo de volledige controle krijgen over welk we in de feed wilden tonen.
Nadat er al een groot deel van de inhoud op de website werd geplaatst was het tijd om aan de slag te gaan met de ontwikkeling van de dochter websites.
Om alle inhoud te kunnen binnen loodsen op de websites kozen we om gebruik te maken van de FeedAPI module, voor deze module zijn er tal van extra plugins of andere modules beschikbaar die het mogelijk maken om allerlei soorten van inhoud, velden over te nemen. Echter bleken er bepaalde functionaliteiten nog niet te voldoen waardoor er verschillende custom Drupal modules werden ontwikkeld om alles vlot te laten verlopen.
Daarnaast werden er door ons ook verschillende Drupal templates op maat gemaakt en toegevoegd aan het platform. Om het hele template gebeuren beheerbaar te houden kozen we er in samenspraak met de klant voor om gebruik te gaan maken van de Fusion basis theme, alle andere templates werden dan als subtheme ontwikkeld om zo overal dezelfde structuur te kunnen handhaven.
Het grote voordeel van te werken met een subthemes is opnieuw dat je wijzigingen maar op 1 locatie hoeft door te voeren. Voor de custom huisstijl op de dochterwebsites (denk aan kleuren, logo's, layout, ...) maakten we gebruik van de CSS Injector module aangezien deze website afhankelijk is. Op deze manier kan bv een template op 50 verschillende websites gebruikt worden maar kan via de CSS Injector module toch de hele opmaak gewijzigd worden indien nodig.
Enkele andere modules die nog door ons werden voorzien in het systeem zijn:
- Accordion (Accordion slider voor Views)
- Block visibilty (Voorziet de mogelijkheid om een hoofd beheerder blokken te laten selecteren, welke door een andere rol mogen verplaatst worden, zonder dat deze laatste toegang moet hebben tot de blokken pagina)
- Comparison table (Inhoudstype dat bestaat uit een tabel waarin verschillende diensten kunnen worden vergeleken door deze eenvoudig toe te voegen, inclusief logo's)
- Flash frontpage (View met Flash popup blokken)
- Jquery Chat (Voor anonieme en geregistreerde gebruikers)
- Tags management (Selecteer uit vooraf gedefinieerde woordenschatten op welke tags gefilterd moet worden bij het importeren van nodes uit een feed)
- Template settings (Laat administrators via color wheel bepalen welke lettertype te gebruiken of welke kleur titels, links, achtergrond mogen hebben)
- Webform multistep Lightbox (Multistep webformulier in een Lightbox tonen)