Das Leben kehrt zurück…

<photomatt_sf> it’s like the unofficial WP slogan: we suck less with every release

Erfreulicherweise gibt es eine gute Nachricht über die Zukunft von bbPress zu vermelden. Das Leben kehrt ins Projekt zurück, und gestern haben sich etliche Menschen in einem Chat zusammen mit Matt Muellenweg darüber ausgetauscht, welchen Weg das Projekt in Zukunft nehmen könnte. Diese Diskussion streifte zwar viel zu viele Themen in viel zu kurzer Zeit, aber sie zeigt auch deutlich, dass ein tatkräftiger Wille vorhanden ist, die gegenwärtige Stagnation des Projektes zu beenden.

Neben vielen anderen Dingen ist die Tendenz beachtlich, bbPress stärker mit WordPress zu koppeln, vielleicht sogar zukünftig zu einem reinen WordPress-Plugin zu machen. Diese Tendenz reflektiert sicherlich die vielen Probleme und Anfragen von Anwendern, die vom verheißungsvollen Klang des Wortes „Integration“ zu bbPress gelockt wurden. Im Moment ist die bbPress-Integration eine der häufigsten Problemquellen. Ein vollständig in WordPress integriertes bbPress könnte alle WordPress-Funktionen nutzen, verfügte über Plugins und teilte das Design des jeweils gewählten WordPress-Themes – das ist eine von vielen bbPress-Anwendern gewünschte Kombination. Für jene Menschen, die „einfach nur ein Forum“ haben möchten, bedeutet dies jedoch einen deutlich größeren Resourcenverbrauch auf dem Server – WordPress steht nicht zu Unrecht im Ruf, eine „Bloatware“ zu sein. Es wird bei einem derartigen Entwurf nicht ganz einfach, die gute Performance einer bbPress-Forensite in die Zukunft zu retten.

Ein wichtiges Ergebnis ist es, dass ab sofort mit dem Aufbau einer systematischen Dokumentation auf der englischsprachigen bbPress-Site begonnen wird. Es steht zu hoffen, dass diese Dokumentation schnell einen gut nutzbaren Zustand erreicht und dass es dann nicht mehr nötig ist, die Quelltexte von bbPress zu lesen, um an die gewünschten Informationen zu gelangen. Selbstverständlich wird eine gute Dokumentation auch die Plugin-Entwicklung vereinfachen.

Der (englischsprachige) Chatlog steht auf der offiziellen bbPress-Site zur Einsicht.

Forum in „Aktuelle Diskussionen“ anzeigen

Manchmal sind es die Kleinigkeiten, die man im Standard-Theme von bbPress nachbessern möchte, wenn man ein eigenes Theme erstellt. Zum Beispiel haben einige Foren-Sites eine etwas größere Struktur, und die bloße Darstellung der „Aktuellen Diskussionen“ auf der Startseite soll ergänzt werden um die Anzeige des Forums, in dem diese Diskussion stattfindet.

Das Problem ist lösbar, obwohl dafür noch keine direkte Funktion existiert. Die folgende Zeile gibt zum jeweiligen Thema den Namen des Forums aus:

<?php forum_name ($topic->forum_id); ?>

Der Tod auf Raten?

GrabsteinMan könnte im Moment glauben, dass bbPress den Tod auf Raten stirbt.

Seit der vorherige Hauptentwicker Sam Bauers vor gut vier Monaten – kurz nach der Fertigstellung der gegenwärtigen Release-Version – das Projekt verlassen hat, ist eine Phase der tödlichen Stagnation eingekehrt. Das Projekt ist kopflos, im offiziellen Entwicklerblog wird nichts mehr gemeldet, eine Handvoll kleinerer Fehler (die mit sehr wenig Mühe zu beheben wären) bleibt unbearbeitet und fließt nicht in eine Bugfix-Release ein.

Nein, ich meine hier nicht die Leute, die sich selbst als bbPress Deutschland bezeichnen und schon viel länger in die völlige Stagnation verfallen sind, was mich auch letztlich dazu veranlasste, meine eigene, inoffizielle Übersetzung an dieser Stelle zusammen mit einer Demonstration zu veröffentlichen. Dort ist die Starre mittlerweile ein vertrauter Anblick; und für einen beiläufigen Beobachter entsteht der Eindruck, dass die Inpsyde GmbH kein Interesse mehr an der dort aufgebauten Website hat, nachdem ihr klar geworden ist, dass sich dort nicht vergleichbar viel Profit durch eingeblendete Werbung wie mit der gleichfalls von der Inpsyde GmbH betriebenen Community „WordPress Deutschland“ generieren lässt. Letzterer Eindruck ist natürlich hochspekulativ und spiegelt vielleicht auch mehr das Unbehagen wider, das mich stets ergreift, wenn sich gewinnorientierte Unternehmungen in dienender Position schier unentbehrlich machen.

Nein, dieser derzeitige Stillstand ist ein Stillstand in der Entwicklung des Kernsystemes. Die in meinen Augen großartige Software bbPress wird zurzeit schlicht nicht weiterentwickelt, und zwar seit Monaten nicht mehr. Auch wenn die Grundlage des Support-Forums von WordPress weiterhin ein bbPress ist, und auch, wenn auf der Website von Automattic weiterhin…

Screenshot der Projekte auf der Website von Automattic

…bbPress als ein Projekt gelistet ist, zu dem Automattic einen Beitrag leistet, so scheint Automattic dieses Projekt völlig gleichgültig geworden zu sein.

Man stelle sich nur einmal vor, dass wichtige Entwickler des Blogsystemes WordPress aus dem Projekt aussteigen und dass WordPress in einem vergleichbar führungslosem Zustand wäre wie gegenwärtig bbPress! Wie viele Stunden würde es wohl dauern, bis ernsthafte Anstrengungen von Seiten Automattics unternommen würden, diesen Zustand zu beenden? Ich bin mir sicher, dass ein solcher Zustand in weniger als einer Woche beendet würde.

Im Falle von bbPress gibt es seit vier Monaten keine sichtbare Anstrengung, den gegenwärtigen Stillstand zu beenden. Die von Matt Muellenweg vor vier Wochen eröffnete Diskussion, in welchem nach Helfern für die Weiterentwicklung gesucht wird, erweckt nicht den Eindruck eines unbedingten Strebens nach Lösungen, und Matt Muellenweg scheint dort auch nicht mehr teilzunehmen. (Das heißt natürlich nicht, dass nicht im Hintergrund in einem weniger öffentlichen Kontext diskutiert würde, nur bekommt davon niemand etwas mit.) Unter diesen Umständen wirkt die Versicherung Matts

Einige Leute haben Kontakt zu mir aufgenommen und ich möchte einfach nur jeden wissen lassen, dass bbPress weiterhin ein wichtiges Projekt für die WP-Gemeinschaft ist. (Damit betreiben wir unsere Foren und unser Plugin-Verzeichnis, um nur dieses Eine zu benennen!) Es wird nicht verschwinden. […]

…nicht mehr so hoffnungserweckend, wie sie vor einigen Wochen noch zu sein schien.

Als vor einigen Tagen die sehr eifrige und wichtige Plugin-Entwicklerin _ck_ (ja, das ist eine Frau) ihre Website „bbPress Showcase“ aus dem Internet entfernte, erreichte die allgemeine Verzweiflung einen Höhepunkt. Da _ck_ nebenläufig erwähnte, dass auch das Spendenaufkommen sehr gering sei, fanden sich nach impliziter Aufforderung eines Users im Support-Forum, doch zu spenden, um sie im Projekt zu halten offenbar viele plötzlich sehr bereit, ein paar Dollar auszugeben. Allerdings gegen den Willen von _ck_; sie wollte diese Spenden nicht mehr annehmen. Wer ihren Text gelesen hatte, konnte das verstehen – es ging nicht in erster Linie um Spenden, sondern um den beklagenswerten, gegenwärtigen Zustand des Projektes:

Die bbPress-Vitrine* wurde eingestellt.

Die Ablösung von Sam Bauers und die Unsicherheit [der Weiterentwicklung, nicht der Sicherheitsmerkmale der gegenwärtigen Software – meine Anmerkung] von bbPress.org 2.0 war ein klares und endgültiges Zeichen, dass keinerlei Interesse besteht, bbPress zu gestatten, zu einem reifen, robusten Programm mit einer aktiven Gemeinschaft zu werden.

Mittlerweile könnte bbPress 1.5 längst eine Alpha-Version sein, aber stattdessen stagniert die Entwicklung von bbPress in einer absichtlich wirkenden Weise, die in der Tat ein Alarmzeichen für jeden sein sollte.

Hinzu kommt, dass bbShowcase im Jahr 2009 nur sechs Spenden erhalten hat, was mir anzeigt, dass kein Interesse an meiner Arbeit bestand.

Mein Code wird für jene, die ihn benutzen möchten, bei bbPress.org als open source unter GPL verbleiben. Dennoch warne ich euch, den gegenwärtigen Mangel an Projektleitung für bbPress zu erwägen, bevor ihr den Code weiterhin einsetzt.

Dass auf dem Hintergrund dieser Mitteilung eine übereilte Spendenaktion eher herzlos und wie ein panischer Versuch des Menschenkaufes wirkt, brauche ich hoffentlich nicht weiter zu erläutern. Wenn ich unter solchen Umständen plötzlich mit einer großen „Spendenbereitschaft“ konfrontiert wäre, würde mich dieser Vorgang nur anwidern; und ich weiß nicht, ob ich nicht deutlich unfreundliche Worte dafür fände. Ein einfaches, ehrliches und persönliches Danke für die vielen Stunden geleisteter Arbeit wäre wohl viel wärmer gewesen.

Kurz gesagt, kann man im Moment vom Einsatz eines bbPress-Forums nur abraten. Ich hoffe, dass sich diese Situation ändert, sehe aber immer weniger Grund für diese Hoffnung. Es entsteht ein starker, nicht abzuschüttelnder Eindruck, dass eine Weiterentwicklung der Forensoftware bbPress von Automattic nicht mehr gewünscht ist – zumindest werden weder personelle noch finanzielle Ressourcen auf eine solche Weiterentwicklung verwendet. Das nächste Sicherheitsproblem (jede Software mit einer nennenswerten Komplexität enthält Fehler, und am Internet nehmen Millionen von Menschen teil, die solche Fehler für destruktive oder kriminelle Zwecke ausbeuten, wenn sie bekannt werden) wird auf dem Totenschein von bbPress als Todesursache vermerkt werden, aber die wahre Todesursache ist die gegenwärtige Gleichgültigkeit auf Seiten Automattics.

Auch unter den aktiven bbPress-Nutzern nimmt die Verzweiflung zu. Gegenwärtig wird das Thema in eine Diskussion im WordPress-Supportforum an die WordPress-Gemeinschaft herangetragen. Ob dies zur gewünschten Aufmerksamkeit führen wird, erscheint mir eher fraglich – denn dort ist man in erster Linie an einer guten Blogsoftware interessiert, und bbPress ist – so gut es auch mit einer WordPress-Installation zusammenarbeiten kann – ein recht bedeutungsloses Randthema.

Vielleicht wird dieser Text irgendwann nur noch ein Denkmal für eine sehr schwierige Phase in der Entwicklung des Projektes bbPress sein, die denn doch noch überwunden wurde. Wer sich nicht auf sein Glück verlassen möchte (oder dies nicht kann), sollte sich allerdings schon jetzt nach möglichen Alternativen zu bbPress umschauen oder sich darauf gefasst machen, dass er in Zukunft eigenständig Anpassungen am Code vornehmen muss, um gewisse Probleme zu beheben.

Ich mag bbPress wirklich gern, und ich finde es einfach nur deprimierend, dass ich im Moment nichts besseres schreiben kann.

*Diese „Vitrine“ ist meine miese Übelsetzung für „bbPress showcase“…

Seltsamer Fehler: Login geht nicht

Ich bin heute im englischen Support-Forum auf ein sehr ungewöhnliches Problem gestoßen, das in dieser Form nicht nur bei bbPress auftreten kann, sondern auch bei anderen in PHP programmierten Webanwendungen, die ihre Konfiguration in einer PHP-Datei vorhalten. Insbesondere kann es auch bei WordPress auftreten. Es ist eines dieser Probleme, die von einem normalen Menschen nicht leicht verstanden werden, und das Verhalten der Anwendung ist verwirrend, so dass leicht ein völlig anderer Fehler vermutet wird.

Ich werde hier allerdings beschreiben, wie es sich im konkreten Fall bei einer frischen Installation von bbPress geäußert hat.

Symptom

Ein bbPress-Forum wurde neu aufgesetzt. Die Installation verlief völlig reibungslos. Da das Forum mit einem laufenden WordPress integriert werden sollte, wurden nachträglich noch die Geheimschlüssel für die Cookies auf sichere Werte gesetzt, die in bbPress und WordPress übereinstimmend eingetragen wurden.

Dabei wurde die Datei bb-config.php mit einem Editor bearbeitet, um die Werte für BB_AUTH_KEY und die anderen Werte nachträglich in die Konfiguration einzutragen, die so bearbeitete Datei wurde zum Server hochgeladen.

Das Forum schien zu funktionieren, aber es war kein Login mehr möglich.

Beim Versuch des Einloggens erschienen eine Reihe von Fehlermeldungen der „Bauweise“ Warning: Cannot modify header information - headers already sent by (output started at /xxx/xxx/xxx/forum/bb-config.php:1) in /xxx/xxx/xxx/forum/bb-includes/functions.bb-pluggable.php on line 232 (den originalen Pfad habe ich hier natürlich geändert).

Ein Login war nicht mehr möglich. Auch ein frisch registrierter Benutzer – es war immer noch möglich, eine Registrierung durchzuführen, und auch die Mail mit dem Passwort wurde versendet – konnte sich nicht einloggen.

Das Ergebnis war ein unbrauchbares Forum… immerhin, es macht keinen administrativen Aufwand mehr. ;-)

Rätselraten

Wenn man vor einem derart unverständlichen Fehler steht, vermutet man natürlich die Fehlerquelle Nummer Eins, die Integration von bbPress in WordPress. Mit dieser naheliegenden Vermutung ist das Problem auch im Support-Forum aufgetaucht, und so bin schließlich auc ich darauf gestoßen und habe mich damit ein wenig auseinandergesetzt.

Dabei ist mir nach sehr kurzem Nachdenken aufgefallen, dass es sich nicht um eines dieser Integrationsprobleme handeln kann.

Die Fehlermeldung entsteht, weil bbPress nach der Anmeldung ein Cookie zu setzen versucht, um den angemeldeten Benutzer zu identifizieren. Diese geschieht im HTTP-Header, also noch bevor ein wirklicher Inhalt an den Browser gesendet wird – und nach der Übertragung des ersten Zeichens des Inhaltes ist es nicht mehr möglich.

Mit diesem Hintergrundwissen ist klar, wie die Fehlermeldung zu verstehen ist. PHP konnte keinen HTTP-Header mehr setzen, um das Cookie mit der Identifikation des angemeldeten Benutzers zu setzen, weil es vorher zu einer Textausgabe gekommen war, und dies geschah laut Fehlermeldung in der ersten Zeile der Datei bb-config.php.

Deshalb ging ich davon aus, dass die Datei bb-config.php in der ersten Zeile einige Zeichen außerhalb des durch <?php ... ?> gekennzeichneten Bereiches mit PHP-Code enthalten muss – und hielt das Problem schon für gelöst. Um die Zeichen zu sehen, holte ich über den Browser direkt die bb-config.php ab, die nur eine weiße Seite liefern dürfte. Und in der Tat sah ich den etwas rätselhaften Text „“, der dort nicht hingehört und einfach nur gelöscht werden muss.

Nun, die Technik ist oft ein bisschen widerspenstig.

Denn die bb-config.php enthielt dort kein Zeichen. Ihr gesamter Inhalt war im Bereich <?php ... ?> eingeschlossen. Es gab einfach nichts zu löschen, wie mir der zukünfitige Forenbetreiber versicherte.

Und das erschien doch sehr seltsam und spornte meinen Ehrgeiz ein bisschen an, dieses Problem zu identifizieren. Es wurde Zeit für eine etwas genauere Untersuchung.

Genauere Untersuchung

Als erstes wollte ich diese seltsame Ausgabe unsichtbarer Zeichen nicht mehr im Browser sehen. Deshalb holte ich die bb-config.php auf meinem mit UTF-8-Zeichencodierung arbeitenden Linux-System mit wget ab, um mir diese rätselhafte Ausgabe einmal näher anschauen zu können.

Die nächste Tat war ein cat bb-config.php, um diese Datei einmal auszugeben – und ich sah nichts. Die vom Webserver empfangene Datei schien leer zu sein, aber der Browser stellte dennoch drei Zeichen dar, und die Datei hatte auch eine Dateigröße von drei Bytes. Mir war schnell klar, dass ich es hier nicht mit gewöhnlichen Zeichen zu tun hatte.

Deshalb schaute ich mir die Datei einmal mit od -x bb-config.php an, um ihren Inhalt in hexadezimaler Form lesen zu können. Das führte zur Ausgabe bbef 00bf.

Und dann erst verstand ich das Problem wirklich.

Um hier zu sehen, welche Reihenfolge von Bytes in der Datei vorliegt, muss noch berücksichtigt werden, dass auf Intel-Systemen (PCs) immer zunächst das niederwertige Byte und dann das höherwertige Byte kommt. (Informell sage ich dazu: aus den üblichen Gemeinheitsgründen.) Der Webserver hat mir die drei Bytes (hexadezimal ausgedrückt) ef bb bf gesendet, und diese müssen noch vor dem <?php in der bb-config.php gestanden haben.

Das war auch die Auflösung. Es handelt sich um die Angabe der Bytereihenfolge in einer Textdatei im Unicode-Format, in diesem Fall wird das Dateiformat als UTF-8 angegeben.

Der Editor, mit dem die bb-config.php bearbeitet wurde, hat offensichtlich in UTF-8 gespeichert und die Datei mit einem BOM begonnen. Diese Markierung bleibt natürlich fast immer unsichtbar, und so kam es zum rätselhaften Verhalten – und der zukünftige Forenbetreiber war sich nicht darüber bewusst, dass am Speicherformat eines Texteditors etwas Problematisches sein könnte…

Da kommt man aber auch nicht so leicht drauf. Es ist wirklich ein arges Problem. ;-)

Lösung des Problems

Die Editoreinstellungen zum Speichern der Dateien müssen geändert werden. Entweder muss die Speicherung der BOM abgeschaltet werden, oder aber – im Zweifelsfall und für technisch weniger erfahrene Nutzer wohl die beste Wahl – das Speicherformat muss zumindest zum Speichern der bb-config.php auf ASCII gesetzt werden.

Wie das beim einzelnen Editor geht, kann ich natürlich nicht sagen, aber zum Glück hat jedes brauchbare Programm ein Hilfesystem und eine gute Dokumentation. (Denn ohne Dokumentation ist kein Programm brauchbar.)

In diesem einen Fall ist das Problem jedenfalls gelöst und das Forum ist wieder benutzbar, und ich kann mir durchaus vorstellen, dass dieses Problem häufiger auftritt und zu großem Unverständnis und Frust führt, wenn man damit konfrontiert ist.

Wie mache ich ein Theme für bbPress?

An den Suchbegriffen, die auf diese kleine Website führen, kann ich erkennen, dass relativ häufig nach Themes für bbPress gesucht wird. Das verfügbare Angebot an fertigen Themes ist zurzeit „sehr überschaubar“, um es einmal fröhlich positiv auszudrücken. Für jemanden, der mit wenig Mühe und ohne besondere Kenntnisse in der Programmierung und Gestaltung von Websites ein Forum aufsetzen möchte, das auch seinen optischen Anforderungen entspricht, ist dies sehr nachteilhaft und schafft eine hohe Einstiegshürde. Auch gibt es noch kein zentrales Theme-Verzeichnis, das einen bequemen optischen Vergleich und gezielten Download bestehender Themes ermöglicht, die dann mit geringer Mühe an die eigenen Bedürfnisse angepasst werden könnten.

Darüber hinaus gibt es kaum deutschsprachige Anleitungen, wie man selbst ein Theme gestalten kann, was für Einsteiger ebenfalls entmutigend ist. Die meisten Menschen wissen mit ihrer Lebenszeit etwas besseres anzufangen, als sich mühsam aus einer Vielzahl von Quellen die gewünschten Informationen zusammenzusuchen. Diese Situation wird noch ungünstiger dadurch, dass die für Theme-Designer verfügbaren Funktionen nirgends zentral und gut durchsuchbar und navigierbar dokumentiert sind, nicht einmal in englischer Sprache.

Ich kann nur hoffen, dass sich diese Situation in der nächsten Zeit ändert – und bis dahin einen eigenen kleinen Beitrag zur Verbesserung leisten.

Die folgende Kurzanleitung zur Erstellung eines bbPress-Themes richtet sich an Menschen, die

  1. bereits gewisse Kenntnisse in HTML, CSS und den Grundlagen der Gestaltung einer Website haben;
  2. die bereit sind, sich ihr Theme selbst zu bauen, aber keine Lust haben, dafür das Rad zum zweiten Male zu erfinden; und
  3. die eine gewisse Freude daran haben, sich ihr Wissen selbst zu erarbeiten, denn diese Freude macht es leichter, mit der gegenwärtigen, unbefriedigenden Situation zu leben.

Darüber hinaus sind grundlegende Kenntnisse in PHP sehr hilfreich, wenn sie auch für eine einfache Anpassung des Standard-Themes nicht unbedingt erforderlich sind. Mit Hilfe dieser Kenntnisse ist es möglich, den Aufbau des Standard-Themes Kakumei zu verstehen und eventuell gewünschte, tiefer gehende Anpassungen vorzunehmen. Wer darüber hinaus Erfahrungen darin hat, wie ein Theme für WordPress gestaltet wird, erhält einen besonders einfachen Einstieg, weil auf diesem Hintergrunde vieles in bbPress sehr vertraut wirkt.

Grundsätzliches

Alle folgenden Aussagen beziehen sich auf die gegenwärtige Version 1.0.x von bbPress. Die Konzepte sind allerdings so reif und gut, dass davon auszugehen ist, dass sie längerfristig Bestand haben werden.

Das Kernsystem von bbPress unterscheidet – im Gegensatz zu WordPress – sauber zwischen Standardthemes, die zur jeweiligen Release gehören und benutzerdefinierten Themes. Für jemanden, der von WordPress kommt, ist dieser Ansatz zunächst ungewohnt. Es gibt einerseits das Verzeichnis bb-templates, in welchem die Standardthemes untergebracht sind, und zum anderen das Verzeichnis my-templates, welches für die lokale Installation von weiteren Themes vorgesehen ist.

Vollständiger Aufbau eines Themes

Ein Blick in das Verzeichnis bb-templates/kakumei gibt am Beispiel des Standard-Themes Kakumei einen ersten Einblick darin, wie ein Theme aufgebaut ist. Für jedes Element in der Darstellung der Foren-Site existiert dort eine PHP-Datei. Jede dieser Dateien trägt einen (festgelegten) Dateinamen, der auch ihre Funktion deutlich macht. Die Datei header.php erzeugt etwa den Bereich der Foren-Site, der immer vor den jeweiligen Inhalten der dargestellten Seite angezeigt wird und der in einem eigenen Design in der Regel für eine Kopfzeile mit einer kurzen Beschreibung des Forums und eventuellen, statischen Navigationselementen verwendet werden wird. Die Datei footer.php erzeugt hingegen jenen Bereich der Foren-Site, der immer nach den Inhalten der dargestellten Seite angezeigt wird, hier wäre in einem eigenen Design etwa ein guter Platz für solche gesetzlich vorgegebenen Elemente wie ein Impressum oder eine Datenschutzerklärung.

(An ein Impressum oder eine Datenschutzerklärung sollte immer gedacht werden, wenn es sich um ein kommerziell betriebenes Forum handelt. Ein Website wird in der BR Deutschland auch dann als kommerziell betrachtet, wenn sie Einnahmen über eingeblendete Werbung erzielt, selbst wenn diese Einnahmen eher geringwertig sind. Das Fehlen solcher Angaben kann zur Begründung einer Abmahnung werden.)

Wer sich schon einmal mit dem Aufbau eines individuellen WordPress-Themes befasst hat, wird auf der Stelle ein Gefühl von Vertrautheit entwickeln. In der Tat haben WordPress und bbPress, so verschieden die Systeme auch sein mögen, etliche Gemeinsamkeiten, sowohl in den (bei WordPress gar nicht unumstrittenen) Konzepten als auch im Code des Kernsystemes. Im Gegensatz zu einem Blog hat eine Foren-Site jedoch relativ viele mögliche Ansichten für ihre Leser und Anwender, etwa das Profil eines Users mit Bearbeitungsmöglichkeit und persönlichen Favoriten, die Themen eines Forums, die Themen zu einem Schlagwort, die Liste der Schlagwörter, die Beiträge zu einem Thema, Suchergebnisse und die Darstellung einer Übersicht auf der Eingangsseite, um nur einmal die wichtigsten zu nennen. Da die Darstellung jeder dieser Ansichten angepasst werden kann, gehört zu einem Theme eine zunächst verwirrende Vielzahl von PHP-Dateien für die Darstellung. Da ich eine kurze Anleitung geben möchte (vielleicht schreibe ich später einmal eine ausführliche), gebe ich hier keine vollständige Liste der Dateien und ihrer Funktion an.

Besonders erwähnenswert ist die Datei style.css. Sie enthält die CSS-Anweisungen für die Darstellung der Foren-Site im Browser und somit den wohl wichtigsten Teil des gesamten Designs. Auch dieses Konzept ist WordPress übernommen worden.

Schauen sie sich ruhig einmal die style.css des Themes Kakumei an, um einen Eindruck zu bekommen! Sie benötigen dafür nur einen guten Editor. (Wenn sie unter Microsoft Windows arbeiten, kann es sinnvoll sein, die Datei nicht im Windows-Editor Notepad zu öffnen, da dieser Editor auch 25 Jahre nach seiner ersten Veröffentlichung noch nicht mit den Zeilenumbrüchen unixoider Systeme klarkommt und damit für viele Aufgaben schlicht unbrauchbar ist. Wenn sie zurzeit keinen anderen Editor zur Verfügung haben, können sie für einen ersten Einblick WordPad verwenden; auch Microsoft Word ist geeignet. Sie sollten sich aber zum Bearbeiten solcher Dateien einen guten Texteditor besorgen, dessen Bedienung ihnen zusagt – eine Vielzahl von Editoren mit teils riesigem Funktionsumfang steht als Freeware zur Verfügung.)

In den ersten Zeilen befindet sich als spezieller CSS-Kommentar eine Beschreibung des Themes in einem leicht verständlichen Format: sein Name, sein Autor, die Versionsnummer und weitere Angaben. Dieser Teil wird in der bbPress-Administration bei der Auswahl eines Themes angezeigt, er identifiziert das Theme aus Benutzersicht. Das in der bbPress-Administration angezeigte Bild vom Theme ist die Datei screenshot.png.

Der leichte Weg

Nachdem sie am Beispiel des Standardthemes Kakumei einen ersten, vielleicht etwas einschüchternden Eindruck von der Gestaltung eines Themes erhalten haben, schauen sie sich doch einmal das Verzeichnis kakumei-blue mit der Definition des zweiten Standardthemes von bbPress, Kakumei Blue, an!

Sie stellen fest, dass dieses Verzeichnis sehr „aufgeräumt“ aussieht. Statt einer verwirrenden Vielzahl von Dateien finden sie nur eine style.css und ein Bild screenshot.png, desweiteren noch ein Unterverzeichnis mit einem anderen bbPress-Logo.

An dieser Stelle sind sie zum ersten Male einer sehr angenehmen Eigenschaft von bbPress begegnet. Wenn in einem Theme keine spezielle Darstellung für einen bestimmten Bereich der Foren-Site spezifiziert wurde, dann wird immer die entsprechende Darstellung aus dem Standard-Theme Kakumei verwendet.

Wenn also nur die verwendeten Zeichensätze, das Farbschema, die Positionierung einzelner Elemente oder etwas Vergleichbares vom Standard-Theme Kakumei abweichen soll, die grundlegende Darstellung aber beibehalten werden soll, denn ist die Erstellung eines Themes sehr einfach und erfordert neben einer Anpassung der CSS-Definitionen keine weitere Programmierung. Allein über diesen Mechanismus sind weitgehende Anpassungen des Erscheinungsbildes möglich, zum Beispiel könnte ein Hintergrundbild für die gesamte Foren-Site oder für einzelne Elemente gesetzt werden, Elemente könnten transparent gestaltet werden… und vieles mehr.

Und diese sehr angenehme Eigenschaft von bbPress gilt auch für jedes benutzerdefinierte Theme. In vielen Fällen ist also ein Großteil der erforderlichen Arbeit schon erledigt, und sie können sich beim Design ihres Forums auf das Wesentliche konzentrieren, nämlich auf das Design.

Der Weg zum eigenen Theme

Aller Anfang ist leicht. ;-)

Im Verzeichnis ihrer bbPress-Installation sollte bereits ein Unterverzeichnis mit dem Namen my-templates existieren. Etliche ältere Versionen haben dieses Verzeichnis bei der Installation nicht automatisch angelegt, und in der Installation von bbPress 1.0 hatte es nach der Installation falsche Zugriffsrechte. (Dieser ärgerliche Fehler ist in neueren Versionen korrigiert.) Wenn das Verzeichnis noch nicht existiert, legen sie es an, und auch, wenn es schon existieren sollte, überprüfen sie bitte, ob es die richtigen Zugriffsrechte hat, damit das Benutzerkonto, mit dessen Rechten der Webserver läuft, lesend darauf zugreifen kann.

Legen sie im Verzeichnis my-templates ein Unterverzeichnis für ihr eigenes Theme an und geben sie diesem Verzeichnis einen Dateinamen (und die richtigen Zugriffsrechte), der aussagekräftig genug ist, damit sie auch einige Wochen später noch die Funktion dieses Verzeichnisses verstehen. Eine gute Faustregel ist es, dass der Dateiname einen Bezug zum Thema des Forums hat, vielleicht noch gefolgt von einer laufenden Nummer, falls sie häufiger Anpassungen an ihrem Theme vornehmen möchten, aber die alten (und im täglichen Betrieb bereits bewährten) Versionen aufbewahren möchten, um im Notfall jederzeit darauf zurückgreifen zu können.

Kopieren sie in das Verzeichnis ihres Themes die Datei style.css aus dem Kakumei-Theme und öffnen sie diese Datei in ihrem bevorzugten Editor. Geben sie im Kopfbereich einen Namen und eine Versionsnummer für ihr entstehendes Theme an.

Nun sollten sie ihr Theme in der bbPress-Administration angezeigt bekommen und auswählen können. Sie haben jetzt ein eigenes Theme, dessen Darstellung sie beliebig an ihre Ansprüche anpassen können. Das ist allerdings der schwierigere, aber eben auch der kreative Anteil.

Ändern einzelner Anzeigeelemente

In der Regel wird ein anderer, individuell angepasster Kopfbereich für die eigene Foren-Site gewünscht werden. Sie können einfach die Datei header.php aus dem Kakumei-Theme in das Verzeichnis ihres Themes kopieren und wie gewünscht anpassen, und auf die gleiche Weise können sie auch die anderen Elemente verändern.

Da das Standard-Theme Kakumei recht gut entworfen ist und sich seine optische Gestaltung leicht über CSS beeinflussen lässt, wird der Umfang solcher Änderungen eher klein sein. Vielleicht möchten sie zur Benutzerregistrierung noch einen Hinweis auf die Nutzungsbedingungen und die Datenschutzerklärung ihres Forums geben, die Darstellung eines Benutzerprofiles etwas hübscher machen, die Elemente auf der Startseite anders anordnen oder eine andere Fußzeile haben. Alle diese Eingriffe sind verhältnismäßig einfach, sie kopieren die entsprechende Datei in ihr Theme-Verzeichnis und bearbeiten sie dort. Selbst ohne eine gute Dokumentation geht das leicht von der Hand.

Für den rein persönlichen Gebrauch ist auch nicht mehr erforderlich.

Feinschliff

Wenn sie sich dazu entscheiden sollten, ihr Theme auch anderen bbPress-Anwendern zum Download zur Verfügung zu stellen, sollten sie am Ende noch etwas Feinschliff machen, damit das Theme auch in der bbPress-Administration benutzerfreundlich präsentiert wird. Geben sie in der style.css eine Download-Seite für das Theme an, damit eventuelle spätere Veröffentlichungen von den Anwendern leicht gefunden werden können, und erstellen sie eine Datei screenshot.png, damit schon vor der Auswahl des Themes ein grober optischer Eindruck seiner Gestaltung in der bbPress-Administration verfügbar ist. Für die Größe des Screenshot-Bildes in Pixeln orientieren sie sich einfach am bestehenden Screenshot des Kakumei-Themes.

Es bleibt zu hoffen, dass bald schon ein gutes, zentrales Download-Angebot für bbPress-Themes zur Verfügung steht. Bis dahin bleibt uns nichts anderes als die „gute alte“ Verlinkung, um bestehende Themes bekannt zu machen. Wenn sie einen Hinweis auf ihr erstelltes Theme und den Download hier im Forum hinterlegen, wird es vielleicht ein bisschen besser gefunden. Aber hier bitte nur auf Angebote hinweisen, die frei verfügbar sind.

Zum Favicon dieser Website

Das gegenwärtige Favicon dieser HomepageEs ist gar nicht so leicht, ein „Favicon“ (das ist dieses kleine Bild, das zu den Lesezeichen, im Tab und in der Adresszeile der moderneren Browser angezeigt wird) für dieses Projekt so zu gestalten, dass es trifft, wiedererkennbar ist und keinen falschen Eindruck erweckt.

In meinen Augen verbietet es sich, zu einer inoffiziellen deutschen Sprachdatei das offizielle Logo des bbPress-Projektes zu verwenden, da dies einen falschen Eindruck beim Betrachter erweckt, den ich nicht wünsche. Dennoch muss es ein wenig nach bbPress aussehen, um den Kontext zu verdeutlichen. Deshalb habe ich mich dazu entschlossen, die Buchstaben „bb“ in einem etwas grellen und aufälligen Türkis einzufärben, das im offiziellen Design nicht verwendet wird. Das ist also relativ einfach zu lösen.

Viel schwieriger war es jedoch für mich, den Bezug zur „deutschen Sprache“ optisch darzustellen. Mir ist leider keine bessere Idee gekommen, als den Hintergrund in den Farben der Flagge der Bundesrepublik Deutschland einzufärben, was nicht unbedingt eine gute Idee ist. Der deutsche Sprachraum geht nun einmal deutlich über die Staatsgrenzen der BR Deutschland hinaus, und tatsächlich mir ist diese Metapher auf dem Hintergrund der deutschen Geschichte des zwanzigsten Jahrhunderts etwas missraten. Es entsteht beinahe der Eindruck, als wolle hier jemand nicht wahrhaben, dass es eine Menge Deutsch spechender Menschen in Östereich, der Schweiz, Norditalien, Belgien, Dänemark und den Niederlanden gibt. Gerade im Zusammenhang mit dem sehr großen deutschen Sprachraum und dem Missbrauch dieser Erscheinung zur Kriegspropaganda ist die optische Verbindung der deutschen Sprache zu einem nationalstaatlichen Symbol unglücklich.

Ich weiß das. Deshalb schreibe ich hier auch darüber. Aber mir ist auch nach längerem Nachdenken keine gute Idee gekommen, wie sich das Produkt „deutschsprachiges bbPress-Forum“ in einer treffenden und leicht wiederzuerkennden optischen Metapher ausdrücken lässt.

Wer eine bessere Idee hat: Immer nur her damit, ich bin dafür sehr dankbar. Denn ich bin selbst unglücklich damit, die Erscheinung „deutsche Sprache“ auf diese Weise auszudrücken.