Voorconfiguratie van de website voor een sociaal netwerk op Drupal
In deze les zal ik Drupal voor een sociaal netwerk vooraf configureren. Ik zal de volgende modules installeren:
Gebruikersprofiel in Drupal
De profielpagina in Drupal
De profielpagina is het meest complexe en tegelijk leukste onderdeel van elk sociaal netwerk. Ik hoop dat het voor jou ook interessant zal zijn na het lezen van dit artikel. Drupal biedt ons verschillende mogelijkheden om gebruikersprofielen te realiseren. De eerste optie is de standaardmodule Profile. Deze module is geschikt als je slechts een heel eenvoudig profiel wilt. Maar we hebben het hier over een sociaal netwerk.
Instellen van de profielpagina in Drupal
Profieldvelden
Onze profielinhoud is voorlopig vrijwel leeg. Laten we de belangrijkste informatievelden toevoegen, die ik "profielvelden" zal noemen. Deze stap vereist wat nadenken om te bepalen welke velden nodig zijn. Enkele gebruikelijke voorbeelden zijn: over mij, geslacht, hobby’s, beroep. Om extra velden te kunnen definiëren, moeten we de module Profile2 gebruiken. Ik plaats meestal alle velden samen in een fieldset. Je kunt veldgroepen toevoegen, gewoon het veld invullen, slepen en klaar.
Moduleontwikkeling voor Drupal 7
In dit gedeelte van de handleiding zal ik laten zien dat Drupal niet alleen een CMS is. We gaan bekijken waaruit Drupal-modules bestaan en we zullen ook een aantal eigen modules maken.
Drupal 7 – Werken met databases via PHP PDO
Met de overgang naar Drupal 7 stappen we over op de nieuwe Drupal Database Abstraction Layer API, die is gebaseerd op PDO. PDO wordt al lange tijd gebruikt in het Zend Framework en in vele andere PHP-frameworks. Alles werkte prima in Drupal 6 met gewone SQL-query’s — dus waarom hebben we iets nieuws nodig?
Laten we eerst begrijpen wat PDO precies is.
Werken met de database in Drupal 7 – Les 1 – Drupal Database API
Als je eerder modules hebt geschreven voor Drupal 6, zal het voor jou niet moeilijk zijn om over te stappen naar de nieuwe Database API van Drupal 7. De nieuwe DB API werkt op basis van de PHP-extensie PDO, waardoor het met verschillende databases kan werken, zoals MySQL, PostgreSQL, MSSQL en mogelijk Oracle. Wat eenvoud betreft, is het even wennen aan de nieuwe syntaxis — het schrijven van ruwe SQL-query’s blijft voor velen vertrouwd.
Hier is een stukje uit de officiële documentatie:
Werken met de database in Drupal 7 – les 2 – Databaseconfiguratie
Het belangrijkste mechanisme om een databaseverbinding te definiëren in Drupal is de array $databases in het bestand settings.php
. Zoals de naam al aangeeft, kun je via $databases meerdere databaseverbindingen configureren. Het ondersteunt ook het definiëren van meerdere targets (doelen). Een verbinding wordt pas geopend (de verbinding wordt pas werkelijk aangemaakt) wanneer een stuk code voor het eerst een query naar de database uitvoert.
Werken met de database in Drupal 7 – les 3 – Statistische query’s (SELECT)
De meest gebruikte vorm van een query in Drupal is de statische query. Een statische query wordt letterlijk doorgestuurd naar de database. Alleen een SELECT-query kan statisch zijn.
Gebruik statische query’s uitsluitend voor zeer eenvoudige bewerkingen. Wanneer je complexe, dynamisch opgebouwde of later aan te passen query’s moet schrijven, gebruik dan dynamische query’s.
Een eenvoudige manier om een statische query uit te voeren is via de querymethode:
Werken met de database in Drupal 7 – les 4 – Dynamische query’s (SELECT)
We zijn nu aangekomen bij het meest interessante deel van de Database API van Drupal: dynamische query’s. Ze worden “dynamisch” genoemd omdat Drupal de querystring automatisch uitbreidt tijdens de uitvoering. Alle query’s voor invoegen (INSERT), bijwerken (UPDATE), verwijderen (DELETE) of samenvoegen (MERGE) kunnen dynamisch zijn. Ook SELECT-query’s kunnen dynamisch of statisch zijn, maar het is aan te raden om ook voor SELECT-query’s dynamische query’s te gebruiken.
Werken met de database in Drupal 7 – les 5 – Extenders (uitbreidingen)
Select-query’s in Drupal ondersteunen zogenaamde extenders (uitbreidingen). Een extender maakt het mogelijk om extra functionaliteit toe te voegen aan een query tijdens de uitvoering. Deze functionaliteit kan bestaan uit aanvullende methoden of wijzigingen in het gedrag van bestaande methoden.