Webapplicaties bouwen met Drupal (World Press Photo case)

Drupal is vooral bekend als een van de populairste Content Management Systemen die worden gebruikt op het internet. De Drupal gemeenschap noemt Drupal echter liever een Content Management Framework, een hulpmiddel waarmee je de mogelijkheid hebt om snel en efficiënt een webapplicatie aan te passen aan je behoeften. Drupal is niet alleen een content publishing tool, maar kan voor veel toepassingen worden gebruikt.

Webapplicaties bevatten vaak functionaliteiten die Content Management Systemen ook hebben. Zo moeten gebruikers zich registreren en inloggen en is een autorisatie nodig om rechten te verdelen. Een ‘template engine’ scheidt gegevens van de lay-out. Diverse api classes staan ter beschikking voor een consistente interface. Bijvoorbeeld om een sorteerbare tabel te genereren. Dit zijn een paar belangrijke functies die je waarschijnlijk in iedere webapplicatie gebruikt. Maar er zijn nog veel meer mogelijkheden die nuttig zouden kunnen zijn in de meer specifieke toepassingen in uw project.

Een belangrijk deel van het Drupal framework is het module-systeem. Het geeft je de mogelijkheid om aangepaste code te scheiden van de Drupal core en modules. Dit maakt het upgraden van Drupal naar nieuwere versies eenvoudiger en het verpakt functionaliteit op een correcte manier. Drupal biedt bovendien de mogelijkheid om in te haken in de core functionaliteit waarmee tijdens bepaalde gebeurtenissen in Drupal extra functionaliteit kan worden uitgevoerd of aangepast. Bijvoorbeeld om nieuwe url's te maken of om formulieren te veranderen.

Een goed voorbeeld van een webapplicatie is de jaarlijkse World Press Photo wedstrijd. Deze applicatie bestaat uit 3 delen:

1. Een front-end, waarin fotografen zich kunnen registreren, foto’s uploaden en beheren.
2. Een backend voor het beheer van fotografen en geüploade foto's.
3. Een backend voor het jureren van foto's.

Een op maat toegesneden webapplicatie is nodig voor deze high traffic website met complexe functionaliteit. Bovendien is een goede performance noodzakelijk om 100.000 zware fotobestanden te uploaden in een kort tijdsbestek. Het merendeel van de foto's word geüpload in de laatste dagen voor de deadline. Tijdens het uploadproces dienen er een aantal cpu en geheugen intensieve acties gedaan te worden om beelden om te zetten in een aangepast formaat. Hiervoor is een aparte ImageServer ingezet. De webservers communiceren met de ImageServer via SOAP webservices. Aan de front-end wordt de YUI uploader gebruikt om een gebruiksvriendelijkere methode van uploaden te creëren met hoge prestaties (meerdere files tegelijkertijd selecteren, snellere upload, asynchrone processen).

De backend functionaliteit voor administratie en jurering implementeren de wedstrijdregels. Deze schermen maken gebruik van de Drupal Form API om efficiënt formulieren te creëren. Middels rollen en rechten beheer kan de autorisatie wordt gerealiseerd.

Een meer specifieke functionaliteit is de link naar Salesforce CRM. De salesforce community module werd gebruikt om de verbinding te maken met Salesforce. Daarop aansluitend hebben wij een module geschreven om het aangepaste drupal gebruikersprofiel te synchroniseren met velden in de CRM-database.

Drupal biedt een uitstekende omgeving als je een CMS wilt combineren met de specifieke functionaliteit van een applicatie. Je kunt eenvoudig gebruik maken van wat Drupal standaard te bieden. Modules uit de community kunnen meer specifieke functies bieden en zijn gemakkelijk uitbreidbaar met maatwerk modules. Dit maakt Drupal een flexibel en krachtig tool. En is daarmee geschikt voor meer dan alleen maar Content Management.

Origineel artikel:
Colours blog: Building webapplications on top of drupal

Drupalversie: 
7.x
Auteur: 
mjgmaas
Bookmark and Share

Drupal is een geregistreerd merk van Dries Buytaert. | Powered by Pantheon.

Drupal.be/Drupal.nl is de website van de Nederlandstalige Drupalgemeenschap.