# TYPO3

TYPO3 is een in 1998 voor het eerst gepubliceerd gratis opensource-webcontentmanagementsysteem voor middelgrote en grote websites. Het CMS werd in eerste instantie gepubliceerd als commercieel systeem maar begin 2000 gelicenseerd onder de GNU General Public License. Sinds eind 2001 is de software en documentatie van TYPO3 in het Nederlands beschikbaar door inzet van de Nederlandstalige community. TYPO3 is gebaseerd op de server-scripttaal PHP. Als database wordt meestal MySQL ingezet. TYPO3 wordt actief doorontwikkeld.
TYPO3 kan door gebruik van plug-ins (zogenaamde extensies, kleine uitbreidingsprogramma's) aan speciale situaties aangepast worden. Dit wil zeggen dat door middel van deze extensies de functionaliteit van TYPO3 verder uitgebreid kan worden. Op dit moment zijn er meer dan 6700 extensies beschikbaar, waarmee zeer veel toepassingen mogelijk zijn, zonder dat u hiervoor zelf hoeft te programmeren. Voorbeelden hiervan zijn een uitgebreid nieuwssysteem, winkels of discussiefora. Grote voordelen van dit systeem zijn de meertaligheid van Front- en Backend, als de actieve gebruikers- en ontwikkelaarscommunity over de gehele wereld.

## Gebruik

Schattingen zijn dat TYPO3 CMS meer dan 500.000 keer ingezet is voor websites. Toonaangevende gebruikers in de Benelux zijn onder meer ECN, de Technische Universiteit Eindhoven, het Verbond van Verzekeraars, de omroepverenigingen VARA en AVROTROS, Technische Universiteit Delft en wer CNV. TYPO3 is daarnaast veel in gebruik bij centrale en decentrale overheden en overheidsprojecten. TYPO3-gemeenten hebben hun krachten gebundeld in de vereniging TYPO3Gem.
De opleidingsperiode voor een website-ontwikkelaar bedraagt enkele weken, voor een redacteur enkele uren. Zo moet een ontwikkelaar, die een TYPO3 website maken wil, bijvoorbeeld de configuratietaal TypoScript beheersen.
In tegenstelling tot commerciële programmatuur is er bij TYPO3 geen support door de fabrikant/ontwikkelaar, maar verloopt de support via de gebruikerscommunity (fora, nieuwslijsten) en een groot aantal internetbedrijven. Deze bedrijven hebben zich gespecialiseerd door TYPO3 websites te bouwen of hosting aan te bieden met TYPO3 voorgeïnstalleerd.

## Bediening

TYPO3 wordt op een webserver via een webbrowser aangestuurd. Voor de bediening is geen extra programmatuur voor de redacteur nodig, behalve dat de webbrowser ondersteund dient te worden. TYPO3 biedt verschillende toepassingsmogelijkheden, die zich grofweg in de onderdelen ontwerp, TypoScript en inhoud laten onderverdelen. Dit leidt tot een bepaalde complexiteit, die men als sterkte van het systeem, maar wellicht ook als zwakte interpreteren kan.
De verwerking gebeurt in het in de webbrowser zichtbare deel van TYPO3, het backend, waarin inhoud gemaakt en onderhouden kan worden. Met een Rich-Text-Editor, vergelijkbaar met tekstverwerkers als MS Word, kunnen teksten eenvoudig bewerkt en vormgegeven worden door een redacteur. Ook biedt het systeem voor bewerking van inhoud de mogelijkheid dit direct te doen in de website pagina (de “frontend”, tevens het zichtbare gedeelte van de website voor bezoekers). Deze optie dient door de beheerder vrijgegeven en aangeboden te worden aan een redacteur en biedt een snelle ingang in TYPO3.

### Terminologie

Het gebruik van de termen front- en backend wijkt af van de klassieke terminologie. Volgens deze klassieke terminologie zal TYPO3 twee frontends hebben voor verschillende gebruikerscategorieën. Zie Frontend (klassieke definitie) en Backend (klassieke definitie).

## Functionaliteit

Tot de functies behoren onder andere tijdgestuurd publiceren en verwijderen van inhoud, media-beheer, redactiestraat, een rollen en rechtensysteem, zoeken in statische en dynamische inhoud, automatisch genereren van een sitemap, printvriendelijke pagina's, gebruikersbeheer, meertaligheid, zoekmachinevriendelijke URL's, die zich met modules (zogenaamde extensies), zoals gastenboeken, fora, nieuwsbrief, statistieken laten uitbreiden. Beelden, tekst, tabellen, animaties als externe databronnen kunnen in TYPO3 worden beheerd.
Templates (sjablonen) maken de verwerking van inhoud gemakkelijk. In deze templates worden de pagina-opbouw en vormgeving gedefinieerd, bijvoorbeeld op welke plaats de menu's en inhoud getoond wordt, de grootte en kleur van de letters of de positionering van de koppen. Inhoud kan ingevoerd worden met vrij configureerbare invoervelden, bijvoorbeeld een Rich-Text-Editor, die een wysiwyg interface biedt, gebaseerd op gangbare tekstverwerkingsprogramma's. Een geïntegreerde beeldverwerker is voorhanden. De Objectmanager laat toe grafische elementen te schalen, te draaien, kaders toe te voegen, waarbij TYPO3 de gewijzigde beelddata met de beeldconverter GraphicksMagick en GDLib in een nieuw formaat opslaat.
De ingevoerde inhoud wordt in een database opgeslagen en staat onafhankelijk tot de beschikking van de toegepaste sjabloon. Hierdoor kan de visuele presentatie van de website op elk moment gewijzigd worden door de uitwisseling van de sjablonen, zonder dat de inhoud verandert dient te worden. Zo kan ook dezelfde inhoud in verschillende opmaken getoond worden. Een geïntegreerd cachingsysteem slaat de gegevens van frequente aanvragen op. Via deze manier wordt de processorbelasting van veel opgevraagde pagina's verlaagd.
De organisatie en programmering met TYPO3 bestaat uit de volgende elementen:
* HTML-sjabloon: Bestand met zogenaamde markers (bijvoorbeeld ###MARKER###), die door TYPO3 met de juiste inhoud (navigatie, tekst, beeld) vervangen worden. Als alternatief kunnen deze markers door verschillende template-engines als 'TemplaVoila', 'Fluid', 'Template Autoparser' automatisch gegenereerd worden.
* TypoScript template: In deze interne configuratietaal wordt omschreven waarmee TYPO3 de markers dient te vervangen. Daarnaast kunnen hiermee de inhoudselementen geconfigureerd worden.
* Als alternatief is het mogelijk om de weergave van pagina's in zijn geheel via TypoScript te laten verlopen, zonder gebruik te maken van HTML-sjabloonbestanden met markers. Dit wordt in het bijzonder geadviseerd voor ervaren TYPO3-ontwikkelaars bij XHTML-pagina's, waarbij de HTML-elementen tot enkele div's beperkt zijn.
* PHP: De achterliggende programmeertaal voor TYPO3-functionaliteit (hiermee werken de veeleisende gebruikers, wanneer zij TYPO3 uitbreiden)
* TYPO3 constanten
* Paginaboom

## Ontwikkeling

Geestelijk vader en voormalig hoofdontwikkelaar van TYPO3 CMS is de Deen Kasper Skårhøj. De actuele versie is 10.4.8, die in september 2020 verscheen. Daarnaast is er ook nog een zogenaamde Long Term Support versie beschikbaar, versie 9 LTS, en Extended Long Term Support versies 8 TLS, 7 LTS en 6 LTS.
In verleden was een belangrijk verschil met voorgaande versies is dat vanaf versie 4.2 TYPO3 geen PHP4 meer ondersteunt. In versie 4 zijn enkele veelgevraagde eigenschappen toegevoegd, zoals de scheiding van bewerken en publiceren (Workspaces), de database-abstractielaag DBAL, een nieuwe tekstverwerker en snelheidsverbeteringen. Met de database-abstractielaag DBAL is het mogelijk om met andere databases te werken dan MySQL, zoals PostgreSQL of Oracle. Versie 3.8.1, uitgebracht op 14 november 2005 bevatte onder andere de ondersteuning voor GraphicsMagick en maakte de tussenopslag van pagina's op proxyservers mogelijk. Op 26 september 2004 werd versie 3.7 uitgebracht, die een nieuwe TYPO3-engine bevatte. Versie 3.6 van TYPO3 kwam uit op 30 april 2004. De belangrijkste vernieuwing van deze versie was de XHTML-conforme broncode van de standaard inhoudselementen.
Naast de ontwikkeling van TYPO3 CMS, is er in 2013 een ander CMS verschenen, TYPO3 Neos. Dit project, geïnitieerd en geleid door Robert Lemke, legt zich toe op een geheel nieuwe architectuur van het systeem.

### Ontwikkelen van eigen extensies

TYPO3 wordt intern aangestuurd met verschillende PHP-arrays. Zij bevatten alle informatie om HTML code uit content te genereren via TypoScript-instellingen. In de regel kan men bijna elke uitgifte en veel backend-instellingen door veranderingen aan de configuratie in deze arrays aanpassen. Bij de verwerking van PHP-scripts is het gebruikte geheugen niet onbelangrijk.
Het ontwikkelen van TYPO3-eigen extensies gaat met minimale PHP kennis redelijk snel. Aan te bevelen is het gebruik van de TYPO3-extensie “Kickstarter”, waarmee eenvoudig de basis voor de gewenste functionaliteit neergezet kan worden. Naar wens kan men hiermee zowel frontend- als backend-uitbreidingen uitkiezen. De benodigde functionaliteit wordt gewoonlijk in het TYPO3-configuratie-array TCA vastgelegd. De geproduceerde extensie bevat bestanden, met vooraf vastgelegde namen, die automatisch aangeroepen worden, bijvoorbeeld localconf.php. De programmeur hoeft alleen nog maar de nodige PHP functies te schrijven, waarbij veel gebruikte functies, die al voorhanden zijn, gekopieerd en aangepast hoeven te worden. Na de installatie van de extensie test TYPO3 automatisch of de extensie zich aan de TYPO3 standaarden houdt.
De PHP-broncode, die vanaf versie 4.2 alleen door PHP versie 5 wordt ondersteund, bestaat gewoonlijk bestanden, die altijd een class bevatten. De programmering is niet objectgeoriënteerd, maar gebruikt classes eerder in de betekenis van modules. Elke class bevat aan het eind een zogenaamde XCLASS. Deze kan door de extensie-ontwikkelaar zelf worden gedefinieerd met een bepaald naampatroon en zou moeten worden afgeleid uit de originele class. Hij wordt dan altijd gebruikt in plaats van de originele class.

## TYPO3 Magazine

T3N is wereldwijd het eerste gedrukte magazine met als thema's TYPO3, open source en webontwikkeling. Naast de onderwerpen rond de ontwikkelingen van het web en TYPO3 biedt het ook informatie over interessante projecten in de opensourcecommunity. Dit magazine is hoofdzakelijk geschreven in het Duits. Regelmatig worden artikelen vertaald naar het Engels en vrijgegeven via de website van TYPO3.

## TYPO3 Live

TYPO3 Live is een direct van cd te starten Linux-besturingssysteem, gebaseerd op Knoppix. Hierin worden een LAMP-server met voorgeïnstalleerde TYPO3 gestart. Deze opzet maakt het mogelijk om TYPO3 te testen op de eigen computer, zonder dat hierbij bestanden op de eigen harddisk opgeslagen worden.

## TYPO3 Winstaller

TYPO3 Winstaller is een WAMP omgeving voor TYPO3. Hij bevat de pakketten Dummy, Quickstart en Testsite uit de normale TYPO3 Installations Packages. De installatie wordt gedaan met de gebruikelijke Windows-installatieroutine. Op deze manier wordt een eenvoudige test van TYPO3 onder Windows mogelijk gemaakt.

## TYPO3 Association

In 2004 is de TYPO3 Association (T3A) opgericht. Deze heeft als voornaamste doel de ontwikkeling van nieuwe versies te financieren, ontwikkelen en waarborgen. Andere taken van de T3A zijn onder andere de externe communicatie, bewaken van de GPL2, het organiseren van evenementen en toezien op de kwaliteit en het gedrag van TYPO3 integrators.

## TYPO3 Certificering

Op T3CON08 in Berlijn is de TYPO3 Certificering gelanceerd. Daar betrof het een proefexamen. Sindsdien zijn er wereldwijd verschillende certificeringssessies gehouden. Op dit moment is er maar één soort certificering voorhanden, echter zal dit in de toekomst uitgebreid worden. De certificering is voor onbepaalde tijd geldig, maar geldt voor een bepaalde versie. Op dit moment is dat TYPO3 versie 4.

### Certified TYPO3 Integrator

De Certified TYPO3 Integrator dient in staat te zijn om op kwalitatieve wijze een reeds geïnstalleerde TYPO3 en TYPO3 extensies te configureren, de sjablonen te ontwikkelen en de gebruikersrechten goed te zetten. De Certified TYPO3 integrator installeert niet TYPO3 op een webserver en programmeert geen extensies. De TYPO3 integrator weet hoe een voorgeïnstalleerde TYPO3 geconfigureerd moet worden met de installer.

## Boeken over TYPO3

Er zijn al veel Duits- en Engelstalige boeken verschenen over TYPO3. Begin 2008 is bij Pearson Education het eerste Nederlandse TYPO3-boek verschenen, voornamelijk gericht op eindgebruikers.

### Nederlandstalig

* Yvonne Klompenhouwer: Handboek TYPO3, voor redacteuren, beheerders en ontwikkelaars, Pearson Education, 2008, ISBN 978-90-430-1522-6

### Engelstalig

* Dmitry Dulepov: TYPO3 Extension Development, (Paperback), Packt Publishing Limited, 2008, ISBN 1-847192-12-2
* Michael Peacock: Building Websites with TYPO3, (Paperback), Packt Publishing Limited, 2007, ISBN 1-847191-11-8
* Daniel Koch: Mastering TypoScript: TYPO3 Website, Template, and Extension Development, (Paperback), Packt Publishing Limited, 2006,ISBN 1-904811-97-3

### Duitstalig

* Patrick Lobacher: Certified TYPO3 Integrator Open Source Press, 2009, ISBN 978-3-937514-78-9
* Andrea Herzog-Kienast und Erwin Hontheim: Das TYPO3-Buch Open Source Press, 2009, ISBN 978-3-937514-80-2
* Andreas Stöckl und Frank Bongers: Einstieg in TYPO3 4.2 Galileo Press, 2008, ISBN 978-3-83621-234-2
* Christian Trabold, Jo Hasenau, und Peter Niederlag: TYPO3 Kochbuch (2. Auflage aktuell zu TYPO3 4.2) O’Reilly, 2008, ISBN 978-3-89721-851-2
* Patrick Lobacher: TypoScript kurz & gut. O’Reilly, 2008, ISBN 978-3-89721-536-8
* Franz Ripfel, Melanie Meyer, Irene Höppner: Das TYPO3 Profihandbuch Addison Wesley, 2008, ISBN 978-3-8273-2322-4
* Alexander Ebner, Patrick Schuster: TYPO3 und TypoScript – Kochbuch Hanser Fachbuch, 2007, ISBN 978-3-446-41046-6
* Andrea Herzog-Kienast, Franz Holzinger: Der TYPO3-Webshop Open Source Press, 2007, ISBN 978-3-937514-43-7
* Michael Bielitza, Christoph Klümpel: TYPO3-Handbuch für Redakteure O’Reilly, 2007, ISBN 978-3-89721-479-8
* Robert Meyer: Praxiswissen TYPO3. O’Reilly, 2006, ISBN 3-89721-449-0
* Alwin Viereck: TYPO3. Der schnelle Einstieg in die Version 4, mitp Verlag, 2006, ISBN 3-8266-1681-2