Jira ICT www.jira.nl
050608
Voorbeelden van Drupal websites
• • • • • • •
http://hamptonroads.com http://www.theonion.com http://www.spreadfirefox.com/ http://evolt.org/ http://creativebits.org/ http://kerneltrap.org/ http://www.linuxjournal.com/
7
Over het algemeen is Drupal meer populair onder ontwikkelaars dan onder designers, waardoor het aantal Drupal-gebaseerde websites met een sterk grafisch concept beperkt zijn. In de bovenstaande lijst van websites valt het misschien ook op dat het veelal gaat om technisch-georienteerde websites. Dat wil niet zeggen dat Drupal alleen voor de techneuten is. Drupal is een systeem dat weliswaar door een techneut opgezet en onderhouden moet worden, maar het legt geen beperkingen qua grafische vormgeving. De meeste webdesigns kunnen geschikt worden gemaakt voor Drupal, terwijl er ook manieren zijn om Drupal te voorzien van geavanceerdere Web 2.0 effecten (veelal via het jQuery JavaScript framework).
Drupal 6 Administrators cursus
7
Jira ICT www.jira.nl
050608
Acquia: Carbon project
• Acquia − Opgericht door Dries • Carbon project − Commerciele distributie van Drupal −
Compleet met alle bruikbare modules
−
Gemakkelijker in het gebruik
11
Drupal biedt een heleboel mogelijkheden maar is voor de beginner vaak complex in het gebruik. Om de commerciele wereld toch te voorzien van een stabiele distributie heeft Drupal-oprichter Dries een nieuwe entiteit in het leven geroepen met de naam Acquia (acquia.com). Onder Acquia zijn verschillende projecten ondergebracht, waaronder het Carbon project dat als doel heeft een selectie van Drupal-modules aan te bieden die stabiel, gemakkelijk en tergelijkertijd handig zijn voor de business-markt.
Drupal 6 Administrators cursus
11
Jira ICT www.jira.nl
050608
Installatie stap 1: Taalselectie
Mogelijkheid tot andere standaardtaal: ●
Downloaden taalbestand en uitpakken in Drupal-root
18
Zodra naar de URL van de website wordt genavigeerd, start de installatie-wizard van Drupal. De eerste stap bestaat uit een taalselectie. Standaard is alleen de Engelse taal beschikbaar, maar op de webpagina http://drupal.org/project/translations zijn vertalingen aanwezig. Voor de Nederlandse taal kan hier bijvoorbeeld het bestand “nl-6.x-1.0.tar.gz” gedownload worden, waarbij “6.x” aangeeft dat het taalbestand geschikt is voor Drupal 6. Het is belangrijk om te weten dat hiermee de standaard taal van Drupal wordt veranderd. Deze verandering kan naderhand niet ongedaan worden gemaakt. Dit is vervelend als de website eigenlijk een meertalige website moet zijn. Stel dat de website zowel in het Engels, Nederlands als Duits aanwezig moet zijn, dan is het nodig om voor zowel het Nederlands als het Duits een taalbestand te downloaden en installeren. Als tijdens de installatie het Nederlandse taalbestand al aanwezig is, en het Duitse taalbestand achteraf wordt geinstalleerd, dan zou dit theoretisch geen problemen moeten geven. Maar als een Engelse string wel in het Nederlands maar niet in het Duits is vertaald, dan krijgen de Duitstalige gebruikers de Nederlandse string te zien – niet de Engelse. Bij meertaligheid is het vaak dus verstandig gewoon Drupal in het Engels te installeren en pas achteraf extra talen te installeren.
Drupal 6 Administrators cursus
18
Jira ICT www.jira.nl
050608
Multi-site installaties
• Globale wijzigingen in “sites/all” − “sites/all/modules” −
• • • •
“sites/all/themes”
Wijzigingen voor “domain.com” in “sites/domain.com” Configuratie van .htaccess voor correcte routing 3PD Module: Multisite Manager Issues: − Meertaligheid −
Single-Sign On (SSO)
−
Shared database of meerdere databases
24
De directory "sites" bevat twee folders die voor alle websites gebruikt worden: Een "default" folder met standaardinstellingen en een "all" folder met daarbinnen subfolders zoals "themes" en "modules". Modules en thema's kunnen op deze manier geinstalleerd worden voor meerdere websites. Als een Drupal-installatie wordt gebruikt voor meerdere websites wordt dit een multisite genoemd. In dit geval kan per website een nieuwe map binnen "sites" worden aangemaakt - normaliter wordt als foldernaam de domeinnaam gebruikt (zoals bijvoorbeeld "www.drupal.nl" en "www.drupal.com"). Een module die wordt uitgepakt in de folder "sites/www.drupal.nl/modules" zal alleen door de website "www.drupal.nl" worden gebruikt.
Drupal 6 Administrators cursus
24
Jira ICT www.jira.nl
050608
Post-install tip 3: Input filters
Standaard worden de “Input Filters” voor het filteren van content redelijk streng gezet. Dit is goed voor normale gebruikers, maar minder handig voor een beheerder. We kunnen specifiek voor de beheerder de permissies minder streng zetten.
28
Standaard worden er twee input-filters gebruikt bij het invullen van content binnen modules: Een filter dat een strenge controle uitvoert op de ingevoerde HTML en een filter dat helemaal geen controle uitvoert. Een filter wordt vervolgens aan een rol gekoppelt. Het filter dat geen controle uitvoert is standaard echter aan geen enkele rol gekoppelt, terwijl het vrij invullen van HTML-code toch erg handig kan zijn bij het invullen van de website. Bijvoorbeeld kunnen we beslissen om de nieuwe "administrator user" rol het recht te geven willekeurige HTML in content te zetten. Hiervoor moet via "Input formats" binnen het filter "Full HTML" de rol "administrator user" aangevinkt worden.
Drupal 6 Administrators cursus
28
Jira ICT www.jira.nl
050608
Date and Time
37
Via “Date and Time” is niet alleen de tijdszone en het begin van de week te configureren, maar ook hoe datumvelden op de website worden getoond. Er kan gekozen worden uit een aantal voorgeconfigureerde datumformaten, maar er kan ook gekozen worden voor een eigen datumopmaak waarbij de syntax van de PHP date()-functie wordt gebruikt.
Drupal 6 Administrators cursus
37
Jira ICT www.jira.nl
050608
CCK
CCK = Content Construction Kit ●
Aanpassen bestaande content-types
●
Aanmaken nieuwe content-types
45
Met behulp van de Content Construction Kit (afgekort CCK) zijn via de browser allerlei velden binnen content-types aan te passen of toe te voegen, maar het is ook mogelijk geheel nieuwe content-types aan te maken. Bestaande content-types moeten wel voortkomen uit modules die opgebouwd zijn volgens de CCKstandaard. Practisch betekent het gebruik van CCK dat er vrij simpel nieuwe velden aan bijvoorbeeld een content-item van het type "story" toe te voegen zijn (zoals een extra commentaar-veld of een bericht dat het artikel verouderd is). Binnen de CCK zijn geavanceerde mogelijkheden voor het aanmaken van nieuwe velden. Bij het tonen van een select-box kan er zelfs gekozen worden voor een stuk custom PHPcode dat de select-box dynamisch vult met de juiste opties. Zodra er echter custom checks moeten plaatsvinden op de ingevoerde waarden van een bepaald veld, dan schiet de CCK tekort en zal er toch gekozen moeten worden voor een eigen maatwerkmodule.
Drupal 6 Administrators cursus
45
Jira ICT www.jira.nl
050608
Subthema's
●
Locatie binnen map van “base theme” – Eigen THEME.info bestand – Eigen screenshot.png
●
Eventueel bestanden overschrijven – CSS – images – logo.png – template.php – ... 62
Het thema-systeem biedt ook de mogelijkheid om gemakkelijk een nieuw thema te baseren op een bestaand thema. Het nieuwe thema vormt hierbij een onderdeel van dat bestaande thema, waarbij alle bestanden binnen een submap van de originele template worden gezet. Omdat het in principe wel gaat om een nieuw thema, moet het bestand .info aangepast worden. Hierbinnen moet de variabele “base theme” geplaatst worden om Drupal te vertellen dat alle bestanden in principe uit de originele template gehaald moeten worden, tenzij anders wordt bepaald door het subthema. Dankzij subthema's kan de basisstructuur van een goede template iedere keer hergebruikt worden. Als de opmaak van het subthema dermate anders is, is het ook handig om een nieuwe “screenshot.png” aan te maken. Let er ook op dat bij het schrijven van CSS-code er vaak relatieve verwijzingen naar afbeeldingen worden gemaakt. Moeten de afbeeldingen van de originele template opnieuw gebruikt worden, dan moet aan de paden in de nieuwe CSS-code een extra diepte (“..”) worden toegevoegd. Het thema Minelli dat standaard wordt meegeleverd met Drupal is gebaseerd op het basis thema Garland, en dient als een goed uitgangspunt. Bij het overschrijven van “template.php” moet er wel gelet worden op de naamgeving van functies. Binnen Garland worden vaak thema-hooks gemaakt met als naam-prefix “phptemplate” (zoals de functie “phptemplate_breadcrumb()”). In de eigen template moet dit worden vervangen met bijvoorbeeld “minelli_breadcrumb()” om te voorkomen dat functienamen conflicteren (met een PHP Fatal Error als gevolg).
Drupal 6 Administrators cursus
62
Jira ICT www.jira.nl
050608
Menu-items aanmaken: Taxonomies
Als er een taxonomie “cars” bestaat met twee termen: De term “volvo” met ID 1 en de term “opel” met ID 2, dan worden de URLs als volgt opgebouwd: ●
“taxonomy/term/1” – Toon alleen nodes met term “volvo”
●
“taxonomy/term/1,2” – Toon alleen nodes met term “volvo” EN “opel”
●
“taxonomy/term/1+2” – Toon alleen nodes met term “volvo” OF “opel” 74
De module Taxonomy kan gebruikt worden om een pagina te vullen met nodes met een bepaalde term. De termen zijn voorzien van unieke nummers (IDs) die via de Taxonomy-module (“Content Management”) terug te vinden zijn. De URL wordt opgebouwd met de modulenaam “taxonomy” gevolgd door “term” gevolgd door een specificatie welke termen getoond moeten worden. Deze specificatie kan bestaan uit een enkel getal, of meerdere termen: Bij meerdere termen wordt een komma gebruikt als AND-operator, een plusteken als ORoperator. Achter de term-specificatie is het ook mogelijk een diepte te definieren. Stel dat de term met ID 4 allerlei subcategorieen bevat, dan kan met deze diepte vastgesteld worden hoeveel niveaus diep Drupal nodes op zal moeten zoeken. Standaard is de diepte gelijk aan 0, wat dus betekent dat alleen nodes van het huidige niveau worden meegenomen (bijvoorbeeld “taxonomy/term/4/0”). Als diepte kan een getal worden meegegeven of het sleutelwoord “all”, waarbij alle niveaus worden meegenomen. Als het aantal nodes op een pagina beperkt moet worden dan is de standaard Taxonomy-module niet geschikt. Er kan dan beter voor de Views-module gekozen worden.
Drupal 6 Administrators cursus
74
Jira ICT www.jira.nl
050608
Een eigen View aanmaken
87
Het configureren van een eigen View is gelijk aan het openen van Pandora's box. Er zijn tal van opties waarmee een bepaalde View in elkaar gezet kan worden. Allereerst wordt een selectie gemaakt op basis van welke type (node, commentaar, gebruiker) een view gegenereerd moet worden. Hiermee ontstaat een verzameling van gegevens die hierna volledig op maat kan worden gesneden. Er zijn mogelijkheden om bijvoorbeeld een node-pagina te tonen, waarbij alleen nodes van een bepaald content-type (story, page, forum-thread) met bepaalde termen (taxonomy) op een bepaalde manier worden gesorteerd (op basis van de aanmaakdatum bijvoorbeeld). Een View is in principe niets meer dan een abstracte selectie, die vervolgens via een “Page” of een “Block” op de pagina kan worden getoond. De standaard configuratie van de View gebeurt via “Defaults” terwijl voor een “Page” of een “Block” specifieke parameters mee te geven zijn. Een “Page” heeft bijvoorbeeld de mogelijkheid om direct een menu-item te genereren en vanuit een URL (path) toegankelijk te zijn. Een “Block” is toegankelijk vanuit het “Site Building – Blocks” menu zodat deze toegewezen kan worden aan een bepaalde regio.
Drupal 6 Administrators cursus
87
Jira ICT www.jira.nl
050608
Authorisatie: Roles
Een gebruiker heeft altijd minimaal een rol als “authenticated user” maar kan ook meerdere rollen toebedeeld krijgen. Aan rollen kunnen permissies gekoppeld worden.
99
Drupal maakt gebruik van rollen om gebruikers toegang tot verschillende onderdelen te geven. Toegang op het niveau van individuele gebruikers geven is niet mogelijk, en daarom is het verkeerd om te stellen dat Drupal een volledig ACL (Access Control Lists) systeem gebruikt. Er zijn standaard drie rollen beschikbaar: “Anonymous” (wanneer iemand niet is ingelogd), “Authenticated” (wanneer iemand wel is ingelogd) en een verborgen administrator-account dat is aangemaakt tijdens de installatie van Drupal. Het is niet mogelijk om deze rollen te verwijderen, maar wel om de permissies die hieraan zijn gekoppeld te veranderen. Ook kunnen er nieuwe rollen toe worden gevoegd. Het is mogelijk om vanuit de “Roles” pagina direct voor een bepaalde rol de permissies in te stellen, maar op de aparte “Permissions” pagina is dit gemakkelijker te regelen. De rol is in principe niets meer dan een leeg kader waarin permissies gezet kunnen worden.
Drupal 6 Administrators cursus
99