Werken aan een Drupal site

Drupal is een Content Management System. Dit betekent dat de content, de inhoud, door het systeem gemanaged wordt. Drupal slaat de inhoud van Nodes op in de database, naast ook alle systeem instellingen over modules, templates, blokken, gebruikers etc. De layout van die content wordt bepaald door stylesheets, bijna nergens vind je rechtstreekse HTML opmaak van die inhoud. Om die reden heb je veel meer te maken met CSS dan met HTML waar het gaat om het aanpassen van de layout. Een basiskennis van de HTML tags is natuurlijk wel vereist, maar van CSS kan je in het geval van het aanpassen of maken van Drupal templates niet genoeg weten.

Voor een uitgebreid overzicht en een goede online cursus over CSS verwijs ik naar w3schools, http://www.w3schools.com/css/. Als je liever tutorials in het Nederlands doet, dan is Google je vriend.

Werken aan een website kan op een aantal manieren:

  • Rechtstreeks op je website. Via FTP gewijzigde bestanden uploaden of via een editor met FTP mogelijkheden.
  • Op een testsite naast je website.
  • Op je lokale PC

De eerste optie is niet aan te raden, het is heel makkelijk om een syntaxfout te maken in een stylesheet of php bestand waardoor je site plat gaat of er compleet niet uitziet. Als je een aantal wijzigingen hebt doorgevoerd kan het ook zo maar zijn dat je de fout niet makkelijk meer terug vindt.

De tweede optie is al beter, maar nogal omslachtig. Je moet bij elke wijziging immers het bestand uploaden om het resultaat te zien.

De derde optie heeft alleen voordelen. Je hebt op die manier standaard een backup van je code op je PC, en wijzigingen zijn meteen te zien als je een WAMP, XAMP of LAMP configuratie hebt draaien. Als je het goed wil doen heb je naast je ontwikkel machine nog een ‘staging site’, dat is dan een kopie van je productie website waar je nadat lokale wijzigingen ok zijn bevonden je kan kijken of het ook werkt op de machine waar je site echt draait.

Drupal lokaal installeren

Ik zelf gebruik de derde optie. Ik heb wampserver geïnstalleerd en geconfigureerd voor een lokale multisite installatie van Drupal. De installatie van WAMP is een fluitje van een cent. Over de configuratie van Drupal multisite op een Windows PC vertel ik nu wat meer.

Wamp staat bij mij in D:\wamp. Mijn document root is d:\wamp\www. Drupal staat in d:\wamp\www\drupal.

Open c:\windows\system32\drivers\etc\hosts met een text editor. Voeg onderin de volgende entries toe:

127.0.0.1       site1
127.0.0.1       site2

Sla het bestand op. Als je niet gemachtigd bent om dit te doen, open dan kladblok als administrator en probeer het  opnieuw.

Wat je nu gedaan hebt, is ervoor zorgen dat als je http://site1 in je browser typt, dit wordt doorgeleid naar je lokale PC. Dit is dan stap 1.

Hierna start je wampserver, klik je op het icoontje in je taskbar en kies je httpd.conf, het configuratiebestand van je Apache webserver.

image

Hierin voeg je dan het volgende toe:

<VirtualHost *:80>
    DocumentRoot "d:/wamp/www/drupal"
    ServerName site1
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "d:/wamp/www/drupal"
    ServerName site2
</VirtualHost>

Wat dit doet is het volgende: Als je http://site1 intypt in je browser, wordt het request via je hosts bestand en daarna httpd.conf omgeleid naar Drupal. Drupal ziet dan dat je request site1 betreft, en gaat via z’n index.php de site benaderen onder d:\wamp\www.drupal\sites\site1. Dus zorg voor een settings.php in die directory en een directory voor themes als je een theme alleen voor die site gebruikt, en modules als je modules installeert alleen voor site1. Je site1 kan ook themes en modules gebruiken uit de standaard directories d:\wamp\www\drupal\sites\all\modules en d:\wamp\www\drupal\sites\all\themes. Een settings.php kan je neerzetten door de default.settings.php te kopiëren uit d:\wamp\www\sites\default. Open het bestand met een PHP editor of kladblok en zoek naar de volgende regels:

$db_url = 'mysql://username:password@localhost/databasename';
$db_prefix = '';

De eerste regel bevat de usernaam en het password van de database. Die database kan je aanmaken via phpMyAdmin dat meegelevert wordt met wampserver. De tweede regel is een prefix, een voorvoegsel dat Drupal gebruikt voor de tabellen. Als je de ontwikkel- en de productiedatabase heen en weer wil kopiëren moet je deze hetzelfde maken als de prefix van je productiedatabase.

image

Ontwikkel tools

Als je dit werkend hebt, kun je beginnen met lokaal ontwikkelen aan je site. Ikzelf haal af en toe via phpMyAdmin –> export de productie database op en met phpMyAdmin –> import overschrijf ik dan de ontwikkeldatabase. Als je dit doet, zorg dan dat ‘schone URLs’  even uit staat op de productieserver.

Je zal vrijwel uitsluitend werken met php en css code. Het makkelijkst is dan dus een editor te kiezen die beide bestandstypen aankan. Ik gebruik meestal Dreamweaver, maar PHPEclipse is een heel goed gratis alternatief, waar je met wat moeite zelfs een runtime debugger in kan integreren. Beide editors hebben wel wat configuratie nodig, zo gebruikt drupal bestandsextensies als .admin en .inc die ze niet herkennen maar die je wel kan opvoeren als zijnde php bestanden. Voor dreamweaver is er een extension beschikbaar die het werken met Drupal bestanden makkelijker maakt. Het heerlijke van dreamweaver is dat je voor je site een lokale installatie en een remote installatie kan definiëren. Dat betekent dat je lokaal kan aanpassen en testen, en daarna via dreamweaver automatisch kan synchroniseren met de live site. Via Dreamweaver kan je ook je versiebeheer regelen met ingebouwde svn toegang. Ik doe dat niet, ik heb svn apart geïnstalleerd met de tortoise windows client. Ik moet zeggen dat ik er niet veel gebruik van maak omdat je als je lokaal werkt sowieso de vorige versie op de server hebt staan.

Reacties

Nieuwe reactie inzenden

  • Adressen van webpagina's en e-mailadressen worden automatisch naar links omgezet.
  • Toegelaten HTML-tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Regels en paragrafen worden automatisch gesplitst.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag dient om te bevestigen dat u een mens bent en geen spam robot.
Beeld-CAPTCHA
Enter the characters shown in the image.