Wieso ich TYPO3 eigentlich nicht nutzen möchte

Ich hof­fe, dass die­ser Blog­bei­trag kei­nen Fla­me­war aus­löst. Auch TYPO3-Anhän­ger schei­nen ein wenig reli­gi­ös zu sein, wenn man ihr CMS angreift.

Ein klas­si­scher Angriff soll das aber eigent­lich gar nicht wer­den. Ich muss nur ein­fach mei­nem Unmut mal Luft machen über ein CMS, das gera­de in der deutsch­spra­chi­gen Hemi­sphä­re hoch­ge­lobt wird. Aber wie­so ist das so? Wie­so aus­ge­rech­net TYPO3?

Nun, TYPO3 wird nach­ge­sagt, ein Sys­tem zu sein, das sich ein­fach für jeden Anwen­dungs­fall ein­set­zen lässt. Begrün­det liegt dies in sei­ner modu­la­ren Archi­tek­tur und in Typo­Script, einer Kon­fi­gu­ra­ti­ons­spra­che für TYPO3. Und da geht mei­ne Kri­tik eigent­lich schon los. Wie­so bit­te muss ich für die Kon­fi­gu­ra­ti­on eines CMS eine zusätz­li­che Spra­che erler­nen? Wie­so wird hier nicht ein­fach PHP ver­wen­det, in der das CMS auch pro­gram­miert wurde/wird?

Nach­dem der Schock über­wun­den ist, die Anwen­dung sol­cher Sprach­ele­men­te ist in jedem Fal­le fle­xi­bler als irgend­wel­che gra­fi­schen Ein­stel­lungs­dia­lo­ge, kommt auch schon der nächs­te: Das Sys­tem ist schnarch­lang­sam. Das Backend bedient sich, als wür­de man einen fünf Jah­re alten Rech­ner bedie­nen. Es ist trä­ge, zäh und häss­lich. Gegen die Häss­lich­keit scheint mitt­ler­wei­le was unter­nom­men zu wer­den, viel gehol­fen hat es aber noch nicht. Das Front­end ist auf­grund des guten, vor­kon­fi­gu­rier­ten Cachings hin­ge­gen recht zügig unter­wegs, zügi­ger als die meis­ten ande­ren CMS, die ich bis­her ken­nen gelernt hab.

In dem lang­sa­men Backend sucht man dann die Opti­on für „Nice URLs”, also schö­ne URLs, die nicht auf index.php?id=42 enden. Nein, spre­chen­de URLs sind ange­sagt. Tja, nicht in der Welt von TYPO3. TYPO3 bringt zwar ein Sys­tem namens Simu­la­te Sta­tic Docu­ments mit, man sieht den dadurch gene­rier­ten URLs blö­der­wei­se auf den ers­ten Blick an, dass das ver­wen­de­te CMS TYPO3 ist. Sicher­heits­tech­nisch nicht klug und hübsch sind die URLs auch nicht unbe­dingt, da sie idio­ti­scher­wei­se auf .html enden und davor noch eine Zahl im Namen tra­gen. Jetzt könn­te man den­ken, dass man das, bspw. über das ach-so-mäch­ti­ge Typo­Script umbie­gen kann. Viel­leicht geht das auch, aber Goog­le weiß nichts davon. Man benö­tigt also sei­ne ers­te Erwei­te­rung. Die Wahl hat der geneig­te Web­ent­wick­ler hier zwi­schen Real­URL und Coo­lU­RI. Bei­de Erwei­te­run­gen haben ihre Tücken und Macken. Real­URL soll angeb­lich sta­bi­ler und kom­pa­ti­bler sein, mit Coo­lU­RI hat­te ich per­sön­lich aber weni­ger Schwie­rig­kei­ten. Außer­dem hat Real­URL in der Vor­ein­stel­lung wie­der ein voll­stän­dig über­flüs­si­ges .html an die gene­rier­ten URLs gehängt. Uncool. Nein, über­flüs­sig.

Dann geht das Gemap­pe los. Die­ser Pro­zess ist noch durch­aus im Rah­men. Man lädt sein erstel­les Lay­out in sei­ne TYPO3-Instal­la­ti­on und weist den ver­schie­de­nen Berei­chen (divs) ver­schie­de­ne Funk­tio­nen zu, also bspw. Navi­ga­ti­on, Sub­na­vi­ga­ti­on, Inhalt, Fuß­leis­te, etc. Gewöh­nungs­be­dürf­tig, aber eigent­lich gar nicht mal so blöd von der Grund­idee her.

Pri­ma, denkt man sich, die Anfangs­pro­ble­me sind über­stan­den, jetzt geht der Spaß los. Lei­der ist dem nicht so. Macht man sich näm­lich jetzt auf die Suche nach brauch­ba­ren Erwei­te­run­gen, wie man sie für ande­re belieb­te CMS zuhauf fin­det, wird man lei­der all zu oft bit­ter ent­täuscht. Eine Art Blog für die Start­sei­te kann man bspw. mit tt_news (ande­re Erwei­te­run­gen für die­sen Zweck schei­nen auch gar nicht zu exis­tie­ren, wenn man Goog­le fragt) rea­li­sie­ren. Über den Erwei­te­rungs­ma­na­ger ist das Ding auch bin­nen kür­zes­ter Zeit instal­liert. Wenn man Glück hat, läuft dann auch gleich alles. Im Regel­fall, Coo­lU­RI und Real­URL sei Dank aber wird das nix. Um tt_news mit einer die­ser Erwei­te­run­gen zur Zusam­men­ar­beit zu bewe­gen, ist häu­fig Hand­ar­beit gefragt. Und selbst wenn nicht, geht das spä­tes­tens dann los, wenn man den Auf­bau der URIs ver­än­dern möch­te. Dafür gibt es kei­ne Hilfs­mit­tel, oder ich hab sie über­se­hen, man muss alles per Typo­Script ein­stel­len. Und schein­bar gibt es kei­ne Lösung, um das Post­da­tum in die URL zu inte­grie­ren, außer, man setzt irgend­wel­che wil­den SQL-Hacks über das Typo­Script ab. brrrr Ohne mich.

Möch­te man jetzt auch noch so was irres wie auto­ma­ti­sche Tweets beim Erstel­len eines tt_­news-Bei­trags errei­chen, ist es end­gül­tig aus. Es gibt zwar eine Erwei­te­rung dafür, die­se scheint aber mit aktu­el­len TYPO3-Ver­sio­nen nicht zu wol­len. Davon abge­se­hen, dass die Kon­fi­gu­ra­ti­on ein Graus ist, funk­tio­niert die Erwei­te­rung ein­fach nicht. Feh­ler­mel­dun­gen scheint sie aber auch kei­ne aus­ge­ben zu wol­len. Der Autor schien lei­der auch kei­ne wirk­li­che Lust zu ver­spü­ren einem zu sagen, wor­an es denn lie­gen könn­te und ob man viel­leicht bei der Feh­ler­su­che aus­hel­fen kön­ne.

Wenn die auto­ma­ti­schen Tweets fehl­schla­gen, möch­te man wenigs­tens die Inhal­te eini­ger Flickr-Alben in sei­ne Sei­te inte­grie­ren. Möch­te… kön­nen ist näm­lich nicht, da qua­si alle Erwei­te­run­gen in die­ser Rich­tung ent­we­der Feh­ler­mel­dun­gen wer­fen (depre­ca­ted Funk­tio­nen, da auf mei­ner Maschi­ne PHP 5.3 ver­wen­det wird) oder schlicht und ergrei­fend nicht funk­tio­nie­ren (kein Out­put oder gleich Error 500). Aber gut, dann ist das schein­bar auch zu modern…

Zu guter letzt noch das The­ma Updates: nicht machen! Also doch, natür­lich, Updates soll­te man immer ein­spie­len, da die­se im All­ge­mei­nen Sicher­heits­lü­cken stop­fen. Aber wenn man mal eine TYPO3-Web­site mit eini­gen Erwei­te­run­gen zum Lau­fen bewegt hat, soll­te man tun­lichst die Fin­ger davon las­sen. Die drei TYPO3-Sites, die ich der­zeit betreue und pfle­ge lie­fen nach einem Update von TYPO3 4.4.4 auf 4.5.0 ent­we­der gar nicht mehr, oder eini­ge Teil­funk­tio­nen (Nice URLs zum Bei­spiel) woll­ten nicht mehr so recht. Bei einer Instal­la­ti­on lief auch der Upgrade-Pro­zess nicht sau­ber durch, rund zwei Dut­zend Daten­bank-Abfra­gen lau­fen nicht durch und las­sen sich auch nach einem REPAIR auf der Daten­bank nicht durch­füh­ren. Die Tabel­len exis­tie­ren alle­samt schon, aber wie­so ver­sucht der Upgrade-Assis­tent dann, die­se zu erstel­len und beharrt so sehr dar­auf?

Einen moder­nen Web-Cache wie Var­nish ein­set­zen zu wol­len hat im TYPO3-Umfeld schein­bar auch wenig Sinn, da die vor­ein­ge­stell­ten Hea­der-Wer­te den Ein­satz des­sel­bi­gen voll­stän­dig ver­hin­dern. Der Cache wird ein­fach umgan­gen und ein­ge­hen­de Anfra­gen lan­den wie­der beim Apa­che. Begrün­dun­gen hier­für (Coo­kie-Ein­stel­lun­gen von TYPO3) fin­det man zuhauf, trotz­dem ver­ste­he ich nicht, wie­so die Vor­ein­stel­lung so aus­se­hen muss, zumal sol­che Sys­te­me wie Var­nish auch bei den TYPO3-Kos­mo­po­li­ten bekannt sein soll­ten.

Natür­lich, all die­se Feh­ler mögen durch mei­ne unsäg­li­che Inkom­pe­tenz her­vor­ge­ru­fen wor­den sein. Auf man­che davon trifft das auch sicher­lich zu, immer­hin habe ich vor­her kei­ne zwei Hand­bü­cher über das Sys­tem gele­sen. Aber genau dar­auf will ich hin­aus. TYPO3 mag unheim­lich leis­tungs­fä­hig und fle­xi­bel sein. Wenn man das Sys­tem in jeder Bezie­hung beherrscht und kei­ne Anwen­dungs­fäl­le ver­sucht zu rea­li­sie­ren, die ganz klas­sisch sind. Das Sys­tem wird dann unfreund­lich dem Anwen­der gegen­über, wenn man Din­ge ver­sucht, die im Zeit­al­ter des Soci­al Web eine Selbst­ver­ständ­lich­keit sein soll­ten. Im Zeit­al­ter von REST-kon­for­men URIs, Twit­ter, Flickr und Face­book. Eine der genann­ten TYPO3-Web­sites wur­de durch einen guten Freund mas­siv ange­passt. Ich war über die Fle­xi­bi­li­tät, die durch Typo­Script erreicht wird wirk­lich über­rascht. Als dann aber die ers­ten Updates des Kerns und der Erwei­te­run­gen kamen, gin­gen die Pro­ble­me los. Sicher­lich, auch das wie­der­um mag an den selbst­ge­bau­ten Lösun­gen lie­gen. Aber ich selbst möch­te eigent­lich kei­ne Web­sites bau­en, die auf einem Fun­da­ment ste­hen, das bei jeder noch so leich­ten Erschüt­te­rung zusam­men­bricht. Alle wei­te­ren CMS, die ich ein­set­ze sind im Regel­fall unemp­find­lich gegen­über Updates. Tritt doch mal ein Pro­blem auf, lässt sich die­ses zumeist mit ein wenig Goog­le-Geschick flott behe­ben.

Und dies soll der letz­te Punkt mei­ner Pre­digt sein. Die TYPO3-Com­mu­ni­ty ist ent­we­der ahnungs­los oder ein­fach wenig bis gar nicht hilfs­be­reit. Stellt man irgend­wo Fra­gen zu Din­gen wie der Twit­ter-Erwei­te­rung oder dem URL-For­mat von tt_­news-Bei­trä­gen erhält man ein­fach kei­ne Ant­wort. Die Fra­gen habe ich an meh­re­ren Stel­len gestellt, immer mit dem glei­chen Ergeb­nis. Es kam kei­ne Ant­wort. Ent­we­der, mei­ne Anwen­dungs­fäl­le sind so exo­tisch, dass nur ich dar­auf kom­me, oder aber es gibt kei­ne Lösun­gen für die­se Pro­ble­me. Was auch immer das Ergeb­nis sein mag, bei­des ist unzu­frie­den­stel­lend.

Wenn ich heut­zu­ta­ge ein Open-Source-CMS ein­set­ze erwar­te ich ein­fach eine funk­tio­nie­ren­de Com­mu­ni­ty, einen gro­ßen Fun­dus an funk­tio­nie­ren­den Erwei­te­run­gen und ein moder­nes User-Inter­face. Letz­te­res ist erfah­rungs­ge­mäß für den Otto-Nor­mal-Anwen­der, für den es ja eigent­lich gemacht sein soll, auch viel zu kom­plex. Bei kei­nem ande­ren CMS erhal­te ich so vie­le Rück­fra­gen mei­ner Kun­den wie bei TYPO3, weil vie­les ein­fach nicht logisch oder ein­deu­tig genug ist.

TYPO3-Anhän­ger wer­den ver­mut­lich mit der Argu­men­ta­ti­on kom­men, dass TYPO3 nun mal kein Sys­tem für Ein­stei­ger sei. Das ist ja sicher­lich auch rich­tig, aber wie­so muss man eini­ge Din­ge so unheim­lich umständ­lich machen? Selbst Fort­ge­schrit­te­ne oder Pro­fis mögen Abkür­zun­gen und Arbeits­er­leich­te­run­gen. Und ein Backend, das sich nicht durch Ein­stei­ger bedie­nen lässt ist qua­si nutz­los, da ich mir kaum vor­stel­len kann, dass in Redak­tio­nen aus­schließ­lich Voll­pro­fis sit­zen, die Bei­trä­ge ver­fas­sen.

Aus mei­ner Sicht ist TYPO3 das Win­dows unter den CMS: es wird des­we­gen so häu­fig ein­ge­setzt, weil es sich mal im Busi­ness-Bereich eta­bliert hat. Das Sys­tem ist nicht mehr zeit­ge­mäß, trä­ge, auf­ge­bläht und schwer zu debug­gen. Ich bin dol­le gespannt auf die Ver­si­on 5.0, die sich der­zeit in der Ent­wick­lung befin­det. Genau so gespannt, wie ich auf Win­dows 8 bin. Es bleibt abzu­war­ten, ob mit dem nächs­ten Ver­si­ons­sprung mal wie­der ein Inno­va­ti­ons­vor­sprung auf­ge­baut wer­den kann, der den der­zei­ti­gen Sta­tus bei­der Sys­te­me in der Geschäfts­feld recht­fer­ti­gen kann. Denn beson­ders in Deutsch­land scheint man Pro­ble­me damit zu haben auf Alter­na­ti­ven zu wech­seln, wenn man sich erst mal mit einem Sys­tem inten­si­ver befasst hat. MODx bspw. soll eine her­vor­ra­gen­de Alter­na­ti­ve zu TYPO3 sein, hier­zu­lan­de ein­ge­setzt wird sie aber lei­der kaum. Ent­schei­der in Betrie­ben wer­den häu­fig ein­fach TYPO3 for­dern, weil sie mal gehört haben, dass es DAS Busi­ness-CMS schlecht­hin ist. Nicht aber, weil sie mit des­sen Benut­zung unheim­lich zufrie­den sind oder ande­re Aspek­te des Sys­tems so unheim­lich schät­zen.