Dienstag, 19. April 2022

Ich miste mein FlatPress aus

Meine Lobgesänge zu FlatPress lasse ich einfach mal weg, die findet man, wenn man ein wenig auf madekozu.de stöbert und daran hat sich auch nichts geändert. FlatPress gibt es seit 2006, hat Höhen und Tiefen durch und leider sieht man das auch, wenn man mal etwas genauer hinschaut. Ich habe nicht viele Ansprüche an betagte Systeme, die nur von wenigen Leuten in ihrer Freizeit betreut und kostenlos angeboten werden. Ich habe allerdings sehr wohl etwas dagegen, wenn das Endprodukt dann mit Worten wie “Das FlatPress-Projekt gibt es seit 2006, die Software ist ausgereift und bestens getestet.” beworben wird.

Getestet wurde vermutlich nur, ob es irgendwie funktioniert. Ich kann mir jedenfalls nicht anders erklären wie man im aktuell angebotenen Standard-Theme (Leggero mit dem Style Leggero V2) grundlegende Fehler in der einfachsten HTML-Syntax nicht erkennt, mit CSS kommt, bei dem ein Validator freiwillig den Stecker zieht und sagt - nee, ich will nicht mehr. Verlinkte Atomfeeds dem Leser mit einem Parsererror begrüßen, Zeit ein sehr dehnbarer Begriff ist und vieles, vieles mehr. Vieles davon sind Kleinigkeiten, aber es sind eben auch sehr gravierende Schnitzer dabei und nein - diese lassen sich auch nicht mit einer neuen PHP-Version entschuldigen.

DSGVO - ich glaube JEDEN, der nicht sein Geld damit verdient, gehen da schon die Nackenhaare hoch, wenn man diese 5 Buchstaben sieht. FlatPress findet sich in immer mehr 1-Klick-Installern wieder und man freut sich im FlatPress-Projekt darüber, was auch verständlich ist, bei einem fast unbekannten System. Was den Nutzern aber keiner sagt ist, was sie sich da installieren. In der Standardinstallation kann man munter drauf los kommentieren. Jeder Kommentar wird mit IP(!) gespeichert. Im Netz findet man eine schwindelerregende Anzahl von FlatPress-Blogs, welche mit Schmuddelseiten- und anderen dubiosen Spam zugekleistert sind. Auch so etwas darf nicht passieren, vor allem wenn man weiß, dass die Software über 1-Klick-Installer installiert wird.

Jetzt kommen die Leute ins Spiel, die Inhalte für Maschinen und nicht für Menschen schreiben. SEO-technisch ist FlatPress leider auch eine absolute Katastrophe. Doppelter Content hier, doppelter Content da, fehlende meta-description, viele Seiten mit exakt dem gleichen Titel.

Ich breche mal langsam mit meinen Aufzählungen ab, sonst komm ich ja nie zum eigentlichen Punkt. Bitte nicht falsch verstehen, das ist kein Faustschlag gegen die Entwickler von FlatPress - die machen tolle Arbeit - sonst gäbe es das Projekt nicht mehr, es ist nur lediglich die Tatsache, dass ich meinen Blog mit FlatPress, so wie es ist, nicht betreiben kann und will.

Viele meiner Änderungen, die man auch mehr oder weniger problemlos mit einer normalen Installation verwenden kann (zumindest bis zum nächsten Update), gebe ich bei Gelegenheit hier auf madekozu.de als Schritt-für-Schritt-Anleitung bekannt. Auch wird es später “meine” komplette Version als Download mit einer Installationsanleitung geben. Da diese Version und auch die Änderungen aber nicht mehr zu FlatPress kompatibel sind, wird es diese auch nicht auf Github oder im FlatPress-Forum geben, da ihr im schlimmsten Fall euren bisherigen Content weder in der normalen, noch in meiner Version weiter verwenden könnt und ich nicht möchte, dass das FlatPress-Team dafür nen Rüffel bekommen, denn das hier ist auf meinen Mist gewachsen - da kann das Team nichts dafür.

Ich habe für meinen Blog die Messlatte also etwas höher gesetzt und verfolge teilweise völlig andere Ziele als die Entwickler:

  • [erledigt] DSGVO: Kein Speichern von vollständigen IP’s, Hinweis auf technisch notwendige Cookies (ja - Flatpress verwendet Cookies), kein Einbinden von GoogleFonts (siehe Urteil) oder irgendwelchen anderen externen Zeug.
  • [erledigt] HTML: Einhaltung grundlegender Strukturen (Ein span ist eben kein div, mal so als Beispiel genannt), valider Code
  • [erledigt] CSS: valide CSS - wir schreiben das Jahr 2022! (Bsp: Wer den IE benutzt, hat auch keine schönen Webseiten verdient, ein Projektor ist auch nur eine Art Bildschirm - funktioniert nur anders, zeigt aber das Gleiche an - braucht er also eine Sonderbehandlung in den CSS?)
  • [in Arbeit] Core: Wird das (von mir!) wirklich alles verwendet, oder kann das raus? In typischer “Try and Error”-Manier fliegen da immer wieder Sachen raus, kommt es zu Fehlern, dann brauch ich das wohl noch. Kommt es zu keinen Fehlern, dann war es wohl Kunst oder eine Antiquität.
  • [kommt später] Adminbereich: Ein paar Dinge brauch ich nicht (z.Bsp. Upload, Mediamanager - FTP geht für mich einfacher, Themenverwaltung - ist arbeitslos bei mir) und andere sind nicht ganz so, wie ich es gern hätte (Editor, Erweiterung der entrys um eine kurze Beschreibung). Da ich weiß was ich schreibe, kann nach dem Austausch des Editors auch der BBCode-Parser raus (Plugin, kann raus sobald ich eine Alternative zum Weiterlesen-Link gebastelt habe - der nutzt noch BBCode). Der neue Editor (vermutlich TinyMCE) speichert den Beitrag direkt in HTML, die Kurzbeschreibung (und gleich noch Suchworte dazu) gehen als reiner Text mit. Dafür muss allerdings das Dateisystem ein wenig erweitert werden, aber das sollte kein Hexenwerk sein.
  • [gecancelt]Smarty: Wofür braucht ein in PHP geschriebenes System nochmal eine Template-Engine? Ich hab den Sinn nicht ganz verstanden. Leichtere Erstellung von Themes? Also, liebe 1-Klick-Installateure, blickt ihr durch, kann ich das Ergebnis mal sehen? Das wird die größte Baustelle und spätestens ab hier sind Updates nur noch sehr schwer möglich - es ist also nichts für die breite Masse.

Um den von mir gesetzten Zielen näher zu kommen, hab ich radikal ausgemistet (alles was nicht funktioniert oder mehr Fehler als Nutzen bietet, fliegt raus bzw. ist schon weg). Mit dabei waren da auch viele Plugins, welche in der Zwischenzeit zum Core gehören und Sprachdateien, da ich nur de und en brauche. Da auch ich manches davon vermissen werde (#Photoswipe ist zum Beispiel einer der Kandidaten), werden manche auch den Weg wieder zurück finden, allerdings auf anderen Wegen, da ich den BBCodeParser ja ebenfalls über Board werfe und einige Plugins diesen benötigen.

Wenn dann alles radikal ausgemistet ist (aktuell bin ich noch bei ca 65% von der normalen fp-1.2.1) und dennoch alles was ich(!) brauche funktioniert, kann ich auch tiefer ins Detail gehen und mich #smarty widmen, welches mir ebenfalls ein Dorn im Auge ist. Ich bin einfach der Meinung, dass #PHP schon genug Template-Engine ist und man einen einfachen Blog nicht damit aufblähen muß. Sicher - da trennen sich die Geister - manche finden das richtig toll, ich find es einfach fehleranfällig, weil - einfach noch ein System um das man sich kümmern muß. Der Ausbau ist aber nicht ohne - dafür muß wirklich alles(!) auf den Kopf gestellt werden und ich bin mir noch nicht sich der Aufwand für mich lohnt. Fakt ist - ich kann eh kein FlatPress-Update mehr einfach so installieren, sondern muß durch Vergleichen schauen, was sich alles geändert hat. Da ich keine neuen Funktionen brauche, interessieren mich hier nur noch Sachen, die mit der Systemsicherheit oder -kompatibilität zu tun haben. Anfällig bei der Sicherheit kann aber theoretisch nur der Kommentar- und Adminbereich sein. Kommentare werden bei mir immer geblockt (noch über comment-center, aber da setz ich auch nochmal an - das ist zu umständlich. Da ich generell Kommentare nur händisch freischalte und vorher gern per blackhole/honeypot die bots aussortiere, fällt mir da sicher eine andere Lösung ein. Den Adminbereich möchte ich anstelle des Logins einfach serverseitig schützen, das erleichtert auch wieder vieles, ist aber nicht massentauglich, könnte also von #FlatPress nicht so gehandhabt werden. Wie ihr merkt - ein Update ist also schon ein höllischer Aufwand und man muß schon ein wenig durchgeknallt sein, sich so etwas freiwillig anzutun, aber - ich bin Made - ich bin einfach so und da ich so bin wie ich bin, fliegt auch #smarty irgendwann raus

Ist das denn am Ende überhaupt noch FlatPress?

Ja natürlich ist das noch FlatPress, sonst würde ich es ja auch nicht so nennen. Es ist aber eben ein sehr stark modifiziertes und teilweise auch extrem abgespecktes (kaum vorstellbar, dass das überhaupt möglich ist) und ganz wichtig - nicht kompatibles(!) - FlatPress. Ohne die Arbeit von allen Entwicklern, die jemals an FlatPress rumgewerkelt haben und Arvids Rettungsaktion, wäre es … ja - kein Ahnung was … noch mehr Arbeit? Wie auch immer - vielleicht findet früher oder später die ein oder andere Veränderung ihren Weg in das FlatPress-Projekt und ich kann mich auf diese Weise für die Entwicklung von FlatPress bedanken. Bis es aber soweit ist, trennen sich erstmal die Wege und ich schau, was ich aus dem Baby hier noch rauskitzeln kann. Arvid meinte gestern “FlatPress bin nicht ich - FlatPress sind wir” und da hat er auch völlig recht. Aber auch eine Gemeinschaft braucht manchmal getrennte Zimmerchen um zwischen vielen Gebrabbel in Ruhe arbeiten zu können. Ein aufgeräumter Schreibtisch ist da aber auch wichtig und den finde ich aktuell nirgends im Projekt.

Update vom 02.05.2022

Nein, Smarty werd ich nicht los. Bei dem Aufwand, den ich dafür betreiben müsste, hab ich auch ein komplett eigenes System geschrieben welches FlatPress komplett ersetzt - das würde wirklich schneller gehen. Jetzt bin ich also wieder an dem Punkt, an dem ich in den letzten 22 Jahren schon oft war - wenn ich ein System will, was perfekt auf mich zugeschnitten ist - tja - dann muß ich das wohl selber bauen, wie ich das ganz am Anfang auch schon gemacht habe.