Installatie

Op de website van Typo3 kunnen niet alleen pakketten van de laatste stabiele versies 4.1 en 4.2 worden gedownload, maar ook de alpha-versie van 4.3. Als je Typo3 eerst op je eigen computer wilt uitproberen, kun je gebruikmaken van verschillende installatiebestanden voor Windows of Mac OS, waarin behalve het contentmanagementsysteem ook meteen de prima geconfigureerde XAMPP-omgeving zit. Zo biedt Typo3 Winstaller bijvoorbeeld een eenvoudige bedieningsinterface voor het starten en stoppen van de Typo3-werkomgeving. Het gratis programma draait onder alle gangbare Windows-versies, maar ook vanaf een usb-stick, cd of dvd. Na de installatie kun je in de opties van Typo3Winstaller de browser van je voorkeur opgeven, anders wordt de standaardbrowser gebruikt. Bij het werken met Typo3 merkten we dat die nog niet lekker samenwerkt met Internet Explorer 8, zowel onder Windows XP als Vista. De snelmenu's van Typo3 (bij rechtsklikken) werkten niet. Met Firefox 3.5 hadden we dat probleem niet. Vervolgens heb je een bedieningsinterface met Frontend, Backend en Install Tool voor de Quickstart-site, een testsite en een dummysite. In het bestandssysteem vind je deze sites in de subdirectory htdocs. Voor de eerste installatie op een web-server heb je de twee bestandsarchieven (als tar.gz of zip) 'dummy' en 'source' nodig. Laatstgenoemde bevat de Typo3-broncode. Het dummypakket levert het raamwerk voor een Typo3-website. Na het uitpakken in de website directory, meestal 'htdocs', ligt het voor de hand de directory 'dummy' een andere naam te geven, bijvoorbeeld 't3':

tar -xzvf typo_src-4.2.6.tar.gz
tar -xzvf dummy-4.2.6.tar.gz
mv dummy-4.2.6 t3

Omdat in de directory's fileadmin, typo3conf, typo3temp en uploads (in de t3-directory) de bestanden van je eigen projecten worden opgeslagen, moet de webserver daarin kunnen schrijven. Hetzelfde geldt voor het bronbestand typo3_src-4.2.6/typo3/ext. Op een Debiansysteem verander je de eigenaar en groep van de t3-map als volgt: chown -R www-data:www-data t3. Op andere systemen gaat dit op een vergelijkbare wijze, maar kan de webserver een andere eigenaars- en groepsnaam hebben. Omdat de directory nu bij de groep van de web-server hoort, volstaat het om de rechten op 0775 te zetten:

chmod -R 0775 t3
chmod -R 0775 typosrc-4.2.6/typo3/ext/

Bij een Typo3-update download je het nieuwe broncodepakket (bijv op de commandline van de server met wget) en pak je het archief uit. Verwijder nu de oude directory en koppel de nieuwe via een symlink aan de naam typo3_src:

rm typo3_src
ln -s typo3_src-4.x.x typo3_src

1-2-3-Go!

De verdere installatie verloopt via de Typo3-installatietool in de 'I-2-3-Go-modus'. Die start automatisch als je het adres van de installatie-directory voor de eerste keer in de browser oproept. Als beveiliging tegen onbevoegd gebruik moet hiervoor in de map typoconf een bestand staan met de naam ENABLE_INSTALL_ TOOL. Dit bestand mag verder leeg zijn. De installatiewizard begeleidt je door de vier installatiestappen, waarbij je een MySQL¬gebruiker en een wachtwoord opgeeft, een database selecteert of nieuw aanmaakt en de noodzakelijke tabellen toevoegt of uit een eerdere installatie importeert. Tot slot kun je de 1-2-3-modus uitschakelen en word je automatisch doorgeleid near de normale installatiemodus. Hier moetje om te beginners het standaardwachtwoord ('joh316') veranderen. De vele configuratiemogelijkheden van de Install Tool zijn een uitvoerige inspectie waard: database analyse, backwards compatibility voor projecten, omgang met afbeeldingen en een heleboel algemene en specifieke instellingen kunnen hier worden vastgelegd. De instellingen bij het onderdeel 'Image Processing' (afhankelijk van de gebruikte versies van ImageMagick/GraphicsMagick en GDlib) moet je in elk geval controleren. De geautomatiseerde tests bij de menuopties '1: Basic Configuration' en '4: Image Processing' bieden hulp bij het configureren van de grafische functies. Om UTF-8 als tekenset in je website en database te gebruiken, zet je de volgende variabelen onder '5: All Configuration' van de Install Tool:

$TYP03–CON FURS ['SYS'] ['setDBi nit'] = 'set names utff; $TYP03–CONF–VARS['SYS']
['UTF8fitesystem".– T; $TYP03–CONF–VARS['BE']['forceCharset'] ='utf-8';

Ook veiligheidsrelevante zaken kunnen hier worden ingesteld. Je kunt bepalen of het systeem e-mails moet versturen, bijvoorbeeld na verschillende mislukte inlogpogingen of als iemand zich als admin aanmeldt. Bovendien kun je logins alleen voor bepaalde IP adressen of domeinen toestaan of alleen via SSL-versleutelcle verbindingen. Alle instellingen van de Install Tool worden opgeslagen in het bestand typo3conf/localconf.php, dat je via de menuoptie '9: Edit files in typo3conf/' kunt benaderen. Dat kan ook rechtsreeks via het bestandssysteem. Een link onder in de installatietool 'Backend admin in new window' brengt je bij de back-end, waar je met de loginnaam 'admin' en het wachtwoord 'password' kunt inloggen. Uiteraard moet je deze standaard toegangsgegevens direct wijzigen. Daarna begroet de back-end van Typo3 je met een enorme berg aan mogelijkheden. In de linkerkolom staan verschillende functies gerangschikt onder de hoofdmodules 'Web','File','User tools','Admin tools' en 'Help'. Deze rubrieken kunnen voor een beter overzicht worden ingeklapt. Voordat je met een Typo3-project van start gaat, kun je als je wilt de back-end omzetten naar je eigen taal. Met de Extension Manager ('Ext Manager') installeer je in de module 'Admin Tools' een taalpakket. Daar selecteer je in het dropdown-menu bovenin clat begint met 'Loaded extensions', de optie 'Translation Handling' en dan onder 'Translation Settings / Languages to fetch' 'Dutch'. Druk op de knop 'Save selection' en daarna controleer je met de knoppen bij 'Translation Status' de geYnstalleercle taalmodules ('Check status against repository') en haal je zonodig nieuwe modules op ('Update from repository'). Nu kun je de taal selecteren bij de gebruikersinstellingen (User tools / User settings / Language & Personal data). Aan het begin van een project zul je meestal de module'Web'met zijn submodu¬les 'Page' ('Paging') nodig hebben, dat voor de invoer van inhoud client, en 'Template' ('Sjabloon') voor de TypoScript-configuratie. De submodule 'List' ('Lijst') biedt een snelle toegang tot alle recorcItypen (pagina's, pagi¬na-inhoud, sjablonen, gebruikers, domeinen etc.). Bij een nieuw ge*fnstalleerde Typo3 staat er in de paginaboom niets clan de rootpa¬gina met het wereldbolpictogram en de naam van de website die je in de Install Tool onder'l: Basic Configuration' hebt ingevuld. Omdat je op dit niveau bij alle basisconfigu¬raties kunt, is deze pagina alleen toeganke¬lijk voor beheerders. Voordat de reclacteurs content kunnen gaan invoeren, moet om te beginnen mi¬nimaal een pagina zijn aangemaakt en ge¬configureerd. Na een klik op de menuoptie 'Mack nieuwe pagina' in het snelmenu van de root-pagina of op het groene rondje met het plusteken in het pictogram van een paginaatje boven in de balk, vraagt Typo3 waar de nieuwe pagina ingedeeld moet worden. Daarna geeft een uitroepteken met een gele achtergrond voor het veld 'Pagina-titel' aan clat daar een naam ingevoerd moet worden. De veranderingen sla je op met het pictogram van een 3,5"-diskette boven in de balk. Alsje alleen maar inhoud in een bestaande pagina wilt typen, hoef je die alleen maar te openers in het rechterdeel van het venster in de weergave 'QuickEdit' en in het veld 'Tekst' met schrijven te beginnen. De 'Kolommen'- weergave van het venster biedt meer moge¬lijkheden. Deze vercleelt de content in 'Links', 'Normaal', 'Rechts' en 'Kader'; de namen zijn afgeleid van een typische websitelay-out, maar zeggen nog niets over de werkelijke weergave. In elk van deze kolommen kun je met een klik op de knop 'Nieuwe inhoud' of op het plusteken met groene achtergrond kiezen uit een lijst van mogelijke inhoudselemen¬ten. Door het installeren van extensies kun je deze lijst later nog langer mak~n. De typen 'Regulier tekstelement' en 'Tekst met afbeel¬ding' worden het meeste gebruikt.


Typo3 5.0

als een feniks uit zijn as Typo3 begint met versie 5 (codenaam: Phoenix) helemaal opnieuw. De ontwik¬kelaars willen geen compromissen meer sluiten ten gunste van backwards compa¬tibility, maar willen zich in plaats claarvan focussen op moderne softwareontwikke¬lingsconcepten zoals Domain Driven De¬sign, het Model View Controller-principe en aspectgeorienteerd programmeren.

Templates en TypoScript

Voordat Typo3 wat voor inhoud dan ook laat zien, moet je als beheerder daar een tem¬plate voor uitzoeken. Typo3 heeft daar een eigen configuratietaal voor met de naam TypoScript (kort: TS). TypoScript biedt ver¬eenvoudigde toegang tot de PHP-functies van Typo3. Je integreert er HTML-templates, stylesheets en Java Scri pt-besta nd en mee en stelt paginaconfiguraties in als het doctype en de tekenset. Daarnaast clefinieert TS het gedrag van dynamische elementen (zoals de menu's) en stuurt het de uitvoer van de pagina-inhoud. In deTypo3-terminologie staat het begrip 'sjabloon' ('template') niet alleen voor een paginasjabloon in HTML, maar ook voor de TypoScript-configuratie. Voor een cluidelijk onderscheid spreken we van 'HTML-tem¬plates' als we de paginasjablonen bedoelen en van 'TypoScript-templates' (of 'TS-tem-plates') als het gaat om de TypoScript-confi¬guratie in de sjabloonmodule. Voor het weergeven van de webpagina's is in ieder geval een TypoScript-template nodig, die je aan de bovenste pagina van een website toewijst. Deze zogenaamde root-template, die claarna door alle subpa¬gina's ge6rfd wordt, bevat de configuratie-opties die voor de hele website moeten gel-den. Maak voor dit doel een nieuwe record aan van het type 'template' en druk op de knop 'Create template for a new site'. Deze functie schrijft een eenvoudig sjabloon voor de uitvoer in de front-end in het set-upveld van de pagina. Een klik op het onderste pot¬loodpictogram ('Setup') brengt de broncode tevoorschijn:

page = PAGE
3age.10 = TEXT
oage.10.vatue = Hello World!

TypoScript volgt een eenvoudige, object-geori6nteerde structuur. In het voorbeeld maakt de eerste regel een object aan van het type PAGE (dat is een stanclaardnaam en moet in hoofdletters worden geschreven), waar de vrij te kiezen naam page in zit. Nu kun je voor dit object eigenschappen of ondergeschikte objecten defini6ren. Een bijzonderheid van TypoScript zijn ge¬tallen als subobjecten. Die bepalen de rangor¬de voor de verwerking en uitvoer. Gebruikelijk is (net als vroeger bij de regelnummers van Basic-programma's) clat te doen in stappen van 10, zodatje er later nog regels tussen kunt voegen. Het script maakt op plaats 10 een object van het type TEXT en geeft aan diens eigenschap value de waarde 'Hello World!' mee. Met een klik op het loeppictogram voor 'Beeld' kunje deze pagina bekijken.

HTML-templates

Het is niet de becloeling clat TypoScript alle content genereert, maar clat de redacteuren die invoeren. Daar bestaat normaal gespro-ken een HTML-template voor, die op bepaal¬de plaatsen gevuld kan worden met de in de database opgeslagen content. TypoScript is ook verantwoordelijk voor het toewijzen van paginacontent vanuit de back-end.

De meeste pictogrammen van de back-end van Typo3 behoeven geen nadere uitleg. Typo3 levert kant-en-klare TypoScripts mee, die als 'statische templates' in nieuwe TS-templates opgenomen kunnen worden. Kies hiervoor in het dropdownmenu de weergave 'Info/Modify' in de module'Sjabloon'en klik onderaan op de link voor het bewerken van de hele templaterecord. Kies vervolgens het tabblad 'Opnames' en kijk onder'Statisch op¬nemen (vanuit extensies):' *Daar staat rechts de template 'CSS Styled Content'. Met deze statische template kun je de vier contentkolommen benaderen. Het bereik LINKS kun je met styles.content.getleft aanspreken, NORMAAL met .get, de kolom RECHTS met .getRight en KADER met .getBorder. De volgencle configuratie voert eerst de in¬houd van de kolom NORMAAL uit en clan de kolom RECHTS. De inhoud in de andere twee kolommen verschijnt niet in de uitvoer. De volgorde van de inhoud words hierbij via het <-teken aangewezen.

page = PAGE
page.10 < styles.content.get page.20 < styles.content.getRight
Als je een HTML-template als basis voor een website wilt gebruiken, integreer je die met het standaardobject TEMPLATE:
page.10 = TEMPLATE
page. I O.template = FILE
page. 1 O.temptate.fite = 7 fileadmin/templates/tmpt–main.htm

Alle bereiken in de HTML-template die later moeten worden vervangen door dynamische content markeer je met variabelen. Bij Typo3 heten deze variabelen 'markers' en 'subparts'. Markers bestaan uit een stuk en worden compleet vervangen. Subparts bestaan uit een openende en een afsluitende tag. Typo3 schrijft de content daar clan tussenin. De body van een eenvoudige HTML-template zou er bijvoorbeeld zo uit kunnen zien:

 

###BREADCRUMB###

 

###VOETREGEL### end --> ###DOCUMENT–BODY### end --> De volgencle TypoScript-code vult deze tem¬olate: )age.10 I workOnSubpart = DOCUMENT – BODY marks. BREADCRUM B < temp.breadcrumb subparts.CONTENT < styles.content.get subparts.VOETREGEL < styles.content.getRight

workOnSubpart verwijst naar het bereik tussen Je tags

en

--> waar bij de erdere TypoScript-bewerking rekening -nee gehouden moet worden. De instruc-Jes in de overige regels wijzen aan de mar¬

server gebruiken, maar maakt het ook mogelijk om websitedesigns van externe aanbieders te integreren. Op de website solucija.com staan veel commerciele en gratis templates. Ook het populaire lay¬outframework YAML is er als Typo3-pak¬ket. De ontwikkelaar heeft bovendien een aantal praktische extensies samengesteld, zodat gebruikers een compleet kant-en-klaar-systeem kunnen gebruiken. Een van de grote voordelen van Typo3 is de grote verscheidenheid aan vrij beschik¬bare uitbreidingen (extensies). Het spec¬trum loops uiteen van kleine systeemaan-passingen tot complete functiemodules. Je kunt ze via de submodule 'Extensie Mana¬ger' heel gemakkelijk uit een publieke re¬pository (TER) downloaden en installeren. Met het oog op het grote aantal aanbie¬dingen kun je zelf kijken welke extensies de moeite waard zijn. Het aantal downloads is daar een aardige indicatie voor, evenals de versie, de rating en de datum van de laat¬ste update. De status 'stable' en de aan¬wezigheid van documentatie cluiden op een goed ontwikkelde extensie. Je kunt in de Extensie Manager instellen of je alleen toegang wilt hebben tot de extensies die door het securityteam zijn gecontroleerd – een goed idee, aangezien fouten in de extensieprogrammering een veiligheidsri¬sico kunnen vormen voorje website. In het kader hierboven hebben we een paar van de belangrijkste Typo3-extensies bij elkaar gezet.

Typo3 beveiligen

De populariteit van Typo3 heeft ook zijn schaduwkanten: het maakt het systeem aantrekkelijk voor hackers. De volgende tips helpers je om je Typo3-installatie te beschermen: -Schakel na de installatie de Install Tool weer uit of verwijder die van de web-server. -Stet de directoryrechten zo restrictief mogelijk in en schakel in de webserver de directoryweergave uit. -Verander de standaard wachtwoorden en gebruik wachtwoorden met bijzon¬dere tekens. Gebruik de extensie MD5 FE Password om de wachtwoorden voor front-end-users ook te versleutelen. -Verwijder alle niet gebruikte back-end¬en front-end-users. -Haal oude clatabaseclumps of Typo3- archieven (.t3d) van de server. -Gebruik SFTP of een andere versleu¬telde verbincling in plaats van FTP en beperk de toegang tot de directory file-admin. -Abonneerje op hetTYP03 Security Bul-letin van het Typo3-team en grijp snel in bij bekende veil ig heidsgaten. -Lees deTypo3-veiligheidspolicy. -AlsTypo3-beheerder: lees hetTypo3 Se-curity Cookbook. -Als ontwikkelaar: programmeer je uit-breidingen volgens de Project Coding Guidelines.