![Page 1: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/1.jpg)
Jeroen Bolle
![Page 2: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/2.jpg)
1. Inleiding2. Geschiedens3. Technology Stack4. Multi-site5. Modules6. Theming7. LNE theme8. Extra functionaliteit
![Page 3: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/3.jpg)
1. Inleiding
![Page 4: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/4.jpg)
1. Inleiding
![Page 5: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/5.jpg)
1. Inleiding
![Page 6: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/6.jpg)
2. Geschiedenis
dorp.orgDries Buytaert
![Page 7: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/7.jpg)
3. Technology stack
Server
Operating System
Webserver
PHP
Drupal
Database
![Page 8: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/8.jpg)
3. Installatie
1. Download de laatste versie op http://www.drupal.org/
2. Pak het bestand uit naar een directory op de webserver
3. Voer het installatiescript uit door naar de directory te surfen
4. Geef de gegevens op om met de MySQL-database te verbinden
Standaardinstallatie
![Page 9: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/9.jpg)
Standaardinstallatie
Database wordt aangemaakt en opgevuld
Default site wordt aangemaakt adhv. settings.php./sites/default/settings.php
5. Aanmaken eerste gebruiker: super user
3. Installatie
![Page 10: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/10.jpg)
Standaardinstallatie
De Drupal website is klaar voor gebruik!
3. Installatie
![Page 11: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/11.jpg)
4. Multi-site
Verschillende websites gebruiken dezelfde programmatie als backend!
defaultStandaardwebsite bij installatie
allModules en themes voor alle websites
.../.../...Oneindig aantal websites
![Page 12: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/12.jpg)
sites\default
sites\default\modules\ Extra modules voor default sitesites\default\themes\ Extra themes voor default site
sites\default\settings.php Instellingen voor default site
sites\all
sites\all\modules\ Extra modules voor alle sitessites\all\themes\ Extra themes voor alle sites
sites\xxx
sites\xxx\modules\ Extra modules voor site xxxsites\xxx\themes\ Extra themes voor site xxx
sites\xxx\settings.php Instellingen voor site xxx
4. Multi-site
![Page 13: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/13.jpg)
Voorbeelden multi-site
./sites/all/
modules/themes/
default/settings.php
voorbeeld.com/settings.phpthemes/
voorbeeld.com.site3/settings.phpmodules/themes/
sub.voorbeeld.com/settings.phpthemes/modules/
4. Multi-site
![Page 14: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/14.jpg)
5. Modules
Contributed modules
Required Optional
Core modules
![Page 15: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/15.jpg)
Block Besturen van de boxes die rond de inhoud getoond worden.
Filter Zorgt dat de inhoud gefilterd wordt voor het wordt weergeven
Node Laat toe dat inhoud naar de site kan gestuurd worden en op pagina’s weergeven kan worden.
System Verzorgt de algemene configuratie van de site voor de beheerders
User Beheert het registreren van gebruikers en het systeem om aan te melden.
Watchdog Loggen en opnemen van systeemgebeurtenissen.
Core modules - required
5. Modules
![Page 16: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/16.jpg)
Contact Persoonlijke en algemene contact formulieren
Help Beheert het tonen van online help
Locale Zorgt voor de vertaling van de User Interface naar talen buiten het Engels
Menu Hiermee kunnen beheerders menu’s maken en beheren.
Path Het vertalen van de URL’s naar eenvoudige woorden
Taxonomy Indelen van de inhoud in categorieën
Upload Laat gebruikers toe om bestanden up te loaden en als bijlage toe te voegen.
Core modules - optional
Extra functionaliteiten die standaard meegeleverd worden bij een Drupal installatieAanzetten afhankelijk van functionele eisen van de website
5. Modules
![Page 17: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/17.jpg)
5. Modules
Contributed modules
http://drupal.org/project/Modules
Functionaliteit die niet is opgenomen in de core modules is hoogst waarschijnlijk te vinden in één van de honderden contributed modules
![Page 18: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/18.jpg)
5. Modules
Contributed modules
CAPTCHA Beveiliging van formulieren tegen geautomatiseerde bots
FCKEditor Invoegen van inhoud in MS-Word stijl (WYSIWYG)
Guestbook Een gastenboek
Image Uploaden, verkleinen en bekijken van afbeeldingen
Localizer Mogelijkheid om inhoud naar meerdere talen te vertalen
Simplenews Versturen van nieuwsbrieven naar geabonneerde adressen.
Site_map Maakt automatisch een site map voor de website
Views Zelfgemaakt views van nodelijsten
![Page 19: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/19.jpg)
Beheer van modulesInstalleren van modules
Afhankelijk van door welke sites ze gebruikt wordenGedownloade map kopiëren naar de modules directory
/sites/all/modules/
Module dependenciesSommige modules zijn afhankelijk van een andere modules om hun taak uit te voeren
Beheer van modulesHet uitschakkelen, aanzetten en deïnstalleren van modules gebeurt in de Administer sectie
/sites/all/modules/
5. Modules
![Page 20: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/20.jpg)
5. Modules
![Page 21: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/21.jpg)
6. Theming
Uitdenken en uitwerken van een ontwerp
Uitwerking aan de hand van Macromedia Fireworks MX
![Page 22: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/22.jpg)
Vertalen van het ontwerp naar een webpagina
XHMTLIndelen van het ontwerp in verschillende onderdelenDe onderdelen krijgen een semantische betekenis
CSSOpmaken van de verschillende XHTML onderdelenPositioneren van de verschillende elementen
Complexe taak!
- Browser incompatibiliteit (Internet Explorer)- Sommige constructies zijn moeilijk te vertalen
6. Theming
![Page 23: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/23.jpg)
Identificeren van secties in het ontwerp
header
intro
main
sidebar
6. Theming
![Page 24: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/24.jpg)
Omzetten van secties naar XHTML
<body><div id="header">
...</div><div id="intro">
...</div><div id="content" >
<div id="sidebar">...
</div><div id="main">
...</div>
</div><div id="footer">
...</div>
</body>
<ul id="menu"><li class="collapsed"><a href="">...</a></li><li class="leaf"><a href="/">...</a></li><li>
<ul class="menu"><li class="collapsed"><a href="">...</a></li><li class="collapsed"><a href="">...</a></li><li class="collapsed"><a href="">...</a></li>
</ul></li><li class="leaf"><a href="">...</a></li>
</ul>
Verdere uitwerking elementen
XHMTL
6. Theming
![Page 25: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/25.jpg)
Opmaken van XHTML element met CSSCSS
#header { color: #336633;background: #ccff66;overflow: hidden;background-image: url(bg-lijn-header.gif);background-repeat: repeat-x;height: 50px;overflow: hidden;
}
#intro #intro_links {float: left;width: 425px;text-align: right;height: 192px;position: relative;margin-bottom: 10px;
}
ul.menu {list-style: none;border: none;text-align:left;
}
ul.menu li {margin-left: 15px;
}
li.expanded {list-style-type: none;margin: 0;text-align: right;background: url(img/arrowD.gif) no-repeat;padding-top: 4px;background-position: 0 .7em;
}
6. Theming
![Page 26: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/26.jpg)
Na verloop van tijd uitgewerkte webpagina
= template
TEMPLATE vormt de basis voor THEME
6. Theming
![Page 27: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/27.jpg)
Drupal theme systeem
Elegante architectuur om de drupal website van een lay-out te voorzien
Perfecte scheiding van opmaak en programmatie
Minimalisering van code en gemakkelijker onderhoud
6. Theming
![Page 28: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/28.jpg)
Drie abstractiniveaus
1. Template language
Taal gebruikt om de template bestanden te vullen met gegevens die van Drupal afkomstig zijn.
2. Theme engine
De interface die het mogelijk maakt dat Drupal de template files kan lezen en interpreteren
3. Theme
Verzameling bestanden die de look & feel van de website vormen.
6. Theming
![Page 29: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/29.jpg)
Drie abstractiniveaus
1. Template language
Taal gebruikt om de template bestanden te vullen met gegevens die van Drupal afkomstig zijn.
2. Theme engine
De interface die het mogelijk maakt dat Drupal de template files kan lezen en interpreteren
3. Theme
Verzameling bestanden die de look & feel van de website vormen.
6. Theming
![Page 30: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/30.jpg)
Template languages en theme engines
Abstractie van Drupal theme engine
Eender welke PHP template language kan
gebruikt worden
Smarty
PHPTAL
PHPTemplate
XTemplate
...
Template language speciaal voor Drupal
ontwikkeld
PHPTemplate wordt standaard meegeleverd en gebruikt
6. Theming
![Page 31: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/31.jpg)
Installeren van theme engines
1. Theme engines kunnen gedownload worden op http://drupal.org/project/Theme+engines
2. Theme engines worden geïnstalleerd voor de sites die ze gebruiken
6. Theming
![Page 32: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/32.jpg)
PHPTemplate theme engine bevindt zich standaard in Drupal core
Beste keuze is PHPTemplate:volledig afgestemd op Drupal
6. Theming
![Page 33: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/33.jpg)
![Page 34: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/34.jpg)
Enkele drupal objectenNode
Alle vormen van inhoud in Drupal worden opgeslaan als een node. Dit kan bijvoorbeeld een afbeelding, een pagina of een download zijn.
node
node
6. Theming
![Page 35: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/35.jpg)
Enkele drupal objecten
Block
Blocks zijn navigatie of inhoud elementen die meestal aan de linker of rechter kant van de website geplaatst worden. Blocks zijn geen nodes, ze worden gebruikt om gegevens in de website te positioneren.
language selection
Menu’s
Newsletter subscription
6. Theming
![Page 36: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/36.jpg)
Theme: template files
page.tpl.php
block.tpl.php
comment.tpl.php
template.php
node.tpl.php
Het bepalen van de lay-out van een pagina
Het bepalen van de lay-out van een block
Het bepalen van de lay-out van een node
Het bepalen van de lay-out van een comment
Theme overriding en andere theme functies
box.tpl.php Het bepalen van de lay-out van een comment
6. Theming
![Page 37: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/37.jpg)
7. LNE theme
Opmaken van de standaardpagina1. Maak een nieuwe directory aan, rekening houdend met de sites waarvoor het
theme kan gebruikt worden.
./sites/all/themes/lne/
2. Maak een nieuw bestand aan dat de basis zal vormen voor alle pagina’s van de drupal website.
./sites/all/themes/lne/page.tpl.php
3. Plaats de inhoud van het XHTML file in page.tpl.php en kopieer de bestanden naar waar verwezen wordt ook naar de directory van het theme.
./sites/all/themes/lne/page.tpl.phpcss/
style.cssnav.css
images/...
![Page 38: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/38.jpg)
Opmaken van de standaardpagina4. De lay-out is nu opgenomen in Drupal en kan weergeven worden door naar de
website te surfen.
De inhoud en instellingen van de Drupal websitemoeten nu in de lay-out opgenomen worden!
7. LNE theme
![Page 39: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/39.jpg)
Integratie van Drupal elementen in de lay-out
Site configuration
De beheerder kan een aantal parameters instellen voor de website via het Administer gedeelte van de website.
/admin/settings/site-information
Integratie van PHP variabelen
De Drupal Theme Engine maakt automatisch een aantal variabelen aan die in de website geïntegreerd kunnen worden.
Vb. De instellingen van Site Configuration kunnen met deze variabelen benaderd worden.
Aan- of uitzetten van PHP variabelen
Sommige standaard PHP variabelen kunnen aan- of uitgezet worden.
/admin/build/themes/settings/lne
7. LNE theme
![Page 40: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/40.jpg)
![Page 41: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/41.jpg)
![Page 42: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/42.jpg)
PHP variabelen voor page.tpl.php$base_path
Geeft een base URL pad van de Drupal installatie.$breadcrumb
HTML voor het weergeven van een ‘breadcrumb’.$closure
Moet weergeven worden op het einde van de pagina voor dynamische javascript, die enkel maar mogen uitgevoerd worden wanneer de pagina reeds geladen is.
$contentDe HTML-inhoud die Drupal gegenereerd heeft en weergeven moet worden.
$cssEen array met alle CSS bestanden voor de huidige pagina.
$directoryDe map waar in het theme geplaatst is.
$feed_iconsEen string met alle feeds (RSS) voor de huidige pagina
$footer_messageHet footer bericht dat opgegeven is in de Administer sectie
$headHTML gegenrereerd door drupal_get_html_head().
$head_titleDe tekst die moet weergeven worden als pagina titel.
$helpDynaminsche help tekst voor admin pagina’s
7. LNE theme
![Page 43: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/43.jpg)
PHP variabelen voor page.tpl.php$is_front
Variabele is true wanneer de pagina de front page is.$language
De taal waarin de website weergeven wordt.$logo
Pad naar de locatie van het logo, gedefinieerd in de theme instellingen$messages
HTML voor status en error berichten.$mission
De missie tekst, opgegeven in de Administer sectie.$scripts
HTML om javascript bestanden te laden en de JS instellingen benaderbaar te maken.$search_box
Variabele is true als de search box enabled is.$site_name
De naam van de website$site_slogan
Toont de slogan van de website$styles
Toont de nodige style tags. Nodig voor stylesheet switching$tabs
HTML voor het tonen van tabs$title
Titel van de node
7. LNE theme
![Page 44: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/44.jpg)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="<?php print $language ?>" xml:lang="<?php print $language ?>"><head>
<title><?php print $head_title ?></title><?php print $head ?><?php print $styles ?><?php print $scripts ?><script type="text/javascript"></script>
</head><body>
<!-- START HEADER --><div id="header">
<div class="inner"><div id="logo" style="float: left;"><a href="<?php print base_path(); ?>" title=""></a></div><div id="langbar"><?php print $header; ?></div>
</div></div><!-- EINDE HEADER --><!-- START INTRO --><?php if ( $is_front ) { ?>
<div id="intro" class="clearfix"><div class="inner">
<div id="intro_links"><div style="position: absolute; right: 0px; bottom: 0px;">
<h1><?php print $site_slogan; ?></h1><p><?php print $mission; ?></p>
</div></div><div id="intro_rechts">
<div id="intro_foto"></div></div>
</div></div>
<?php } ?>
![Page 45: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/45.jpg)
<div id="content" class="clearfix"><div class="inner">
<div id="contentcontainer" class="clearfix"><div id="sidebar">
<?php print $customleft ?></div><div id="main">
<h1 class="title"><?php print $title ?></h1><div class="tabs"><?php print $tabs ?></div><?php print $help ?><?php print $messages ?><?php print $content; ?><?php print $feed_icons; ?>
</div></div>
</div></div>
</div><div id="footer">
<div class="cont"><div id="adres" style="float: left; width: 300px; text-align: left;">
<?php print nl2br($footer_message); ?></div><div id="footerlinks" style="float: right; width: 500px;">
<?php print $customfooter; ?></div>
</div></div>
</body></html>
![Page 46: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/46.jpg)
Verschillende lay-out voor een pagina
Uitgangspunt: Enkel de front page moet de introtekst en foto tonen
Template file kan op basis van de system URL gekozen worden
- page-node-edit.tpl.php- page-node-1.tpl.php- page-node.tpl.php- page.tpl.php
Vb. Pagina om node 1 te wijzigen: node/1/edit
PHPTemplate theme engine zoekt of vlgende bestanden bestaan
7. LNE theme
![Page 47: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/47.jpg)
Extra mogelijkheid: instellen van voorpagina
page-front.tpl.php
Front page is dynamisch en kan bij Site Administration ingesteld worden.
page-front.tpl.php wordt altijd geladen bij als de pagina als front page is ingesteld
Toepassing: We kopiëren de page.tpl.php naar page-front.tpl.php en verwijderen in het originele bestand de XHTML code om de introductietekst te tonen.
7. LNE theme
![Page 48: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/48.jpg)
Block regions
Regions zijn locaties in de lay-out waar blocks kunnen geplaatst worden.
sidebar-left sidebar-right content header footer_message
5 standaard regions door PHPTemplate:
LNE theme heeft slechts 3 regions nodig
sidebar links header footer vanonder
Custom regions: theme overriding
7. LNE theme
![Page 49: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/49.jpg)
Custom regions: theme overriding
PHPTemplate bevat een functie om de standaard theme regions aan te maken
theme_regions()
lne_regions()
Override:Door functie opnieuw te definiëren met naam van het theme
/* * Verschillende regio's in het theme waar content geplaatst kan worden * Header wordt voor taalkeuze gebruikt */
function lne_regions(){ return array( 'customleft' => t('sidebar links'), 'header' => t('header'), 'customfooter' => t('footer vanonder'), );}
7. LNE theme
![Page 50: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/50.jpg)
Custom regions: plaatsen van blocks
admin/build/block
Blocks kunnen in een region geplaatst worden
Blocks kunnen een gewicht toegekend krijgen om hun volgorde tov. andere blocks te bepalen
Region
Weight
7. LNE theme
![Page 51: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/51.jpg)
Opmaken van een block
Zelfde principe voor de opmaak van een pagina.
- block-modulenaam-delta.tpl.php- block-modulenaam.tpl.php- block-region.tpl.php- block.tpl.php
Block template file volgorde
Block template file variabelen
$blockHet volledige block object
$block_idInteger die telkens verhoogt wordt als het block gegenereerd wordt en de template file geladen is.
$block_zebraTelkens $block_id verhoogt wordt, verandert deze variabele naar de waarde odd of even.
7. LNE theme
![Page 52: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/52.jpg)
Block: theme overriding
Soms voldoet de output die een block geeft niet aan de vooropgestelde eisen van de website
vb. Localizer module: language selection block
Standaard block lay-out Gewenste block lay-out
theme override
Dit kan niet aan de hand van een block.tpl.php file bereikt worden!
7. LNE theme
![Page 53: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/53.jpg)
Block: theme overriding
<?php print_r ( $block ); ?> toont alle eigenschappen van dit block
stdClass Object(
[module] => localizer[delta] => 0[theme] => garland[status] => 1[weight] => 0[region] => left[custom] => 0[throttle] => 0[visibility] => 0[content] => <div class="item-list"><ul><li><a href="/drupal-new/?q=en/admin" class="uilanguage">English</a></li><li><a href="/drupal-new/?q=fr/admin" class="uilanguage">français</a></li></ul></div>
)
Dit moet veranderen!
7. LNE theme
![Page 54: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/54.jpg)
Block: theme overriding
Opzoeken van originele theme function die de inhoud bepaalt, in de source van de module
function theme_localizer_block_switch_language($links){ return theme('item_list', $links);}
OVERRIDE
function lne_localizer_block_switch_language($links){ ...}
template.php
7. LNE theme
![Page 55: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/55.jpg)
Block: theme overriding
Herschrijven van functie om de juiste lay-out toe te passen
/* * Switch language block herschreven voor output om het in het design te doen passen (images) */
function lne_localizer_block_switch_language($links){
foreach ( $links as $key => $value ) {$links[$key] = str_replace ( 'English', '<img src="' . base_path() . path_to_theme() . '/images/lang_en.gif" alt="english" />', $links[$key] );$links[$key] = str_replace ( 'français', utf8_encode('<img src="' . base_path() . path_to_theme() . '/images/lang_fr.gif" alt="français" />'), utf8_decode($links[$key]) );$output .= $links[$key];
} return utf8_encode($output);}
7. LNE theme
![Page 56: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/56.jpg)
8. Extra functionaliteit
Extra functionaliteit aan de Drupal website toevoegen
Eigen module ontwikkelen
Views & Content Construction Kit modules
Custom functions
![Page 57: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/57.jpg)
ViewsModule die een methode aanbiedt om te bepalen hoe lijsten van nodes aan de gebruiker getoond worden
Slimme query builder die met genoeg informatie inhoud op zeer verschillende manieren kan weergeven
Full Nodes
Teaser view
List view
Table view
User contributed views
- Toegangsbeperking- Filters- Velden selecteren- Page/Block- Arguments- Sort criteria- Exposed filters
8. Extra functionaliteit
![Page 58: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/58.jpg)
The power of Drupal: download systeem
Content type: Publication
Taxonomy:Publcations
Views:Table view
Publication content type:- Enkel titel veld- Mogelijkheid om bestanden toe te voegen
(Upload module)
Publications category:- Met terms: Quarterly bulletin, Yearly report, ...- Content type: Publication- Required: Yes
Taxonomy term View:- Table view: use pager- Fields: title (without link), file (with link), size- Filter: published = yes- Sort criteria: sticky, created time DESC
8. Extra functionaliteit
![Page 59: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/59.jpg)
The power of Drupal: download systeem
8. Extra functionaliteit
![Page 60: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/60.jpg)
Content Construction Kit (CCK)Module waarmee de gebruiker de functionaliteit kan uitbreiden door zelfgemaakte velden toe te voegen aan content types.
Komt in actie bij specifieke eisen waar Drupal niet standaard kan voorzien
User reference
Node reference
Text
Decimal
Integer
- Text field- Select list- Checkboxes / Radio buttons- Single checkbox
- Select list - Autocomplete text field
8. Extra functionaliteit
![Page 61: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/61.jpg)
Custom (theme) functions
Quik & dirty
Snel een functionaliteit aan een module toevoegen die met Views of CCK niet bereikt kan worden.
Functies gaan omschrijven in template.php die onmiddellijk functionaliteit bijvoegen op de plaats waar ze aangeroepen worden.
Tijdsbesparend omdat geen extra module moet bijgeprogrammeerd worden
8. Extra functionaliteit
![Page 62: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/62.jpg)
function next_prev($huidig_nid, $type, $knopType, $label, $class) { $tid = db_result(db_query(db_rewrite_sql("SELECT tn.tid FROM {term_node} tn LEFT JOIN {node} n ON tn.nid=n.nid WHERE tn.nid = $huidig_nid"))); if (empty($tid)){ return ''; } switch ($knopType) { case 'next': $sort = 'DESC'; $case = '< '; break; case 'prev': $sort = 'ASC'; $case = '> '; break; default: return NULL; break; } $sql = "SELECT n.nid, n.title FROM {node} n INNER JOIN {term_node} t ON n.nid = t.nid "; $sql .= "INNER JOIN {term_data} r ON t.tid = r.tid WHERE n.type = '". $type ."' AND n.nid ". $case; $sql .= $huidig_nid ." AND r.tid = ". $tid ." AND n.status = 1 ORDER BY nid ". $sort; $result = db_fetch_array(db_query(db_rewrite_sql($sql))); if (!$result) { return NULL; return l($label.$name, "$type/tid/$tid", array('title' => $name, 'class' => $class)); } else { return l($label, 'node/'. $result['nid'], array('title' => $result['title'], 'class' => $class)); }}
template.php
Image pager
![Page 63: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/63.jpg)
<?phpif ($terms && arg(0) == 'node' && is_null(arg(2))){
$next = next_prev($node->nid, 'image', 'next', 'next >', 'imgprev'); $previous = next_prev($node->nid, 'image', 'prev', '< previous', 'imgnext');print '<ul id="pagernav" class="clearfix">';if ($previous) {
print '<li class="left">' . $previous . '</li>';}if ($next) {
print '<li class="right">' . $next . '</li>';}print '</ul>';
}?>
node-image.tpl.php
8. Extra functionaliteit
![Page 64: Jeroen Bolle. 1. Inleiding 2. Geschiedens 3. Technology Stack 4. Multi-site 5. Modules 6. Theming 7. LNE theme 8. Extra functionaliteit](https://reader033.vdocuments.mx/reader033/viewer/2022060109/5551a0ef4979591f3c8b8a0e/html5/thumbnails/64.jpg)