MyBB 2.0 Entwicklung #5

Veröffentlicht am 17.08.2015 von StefanT in MyBB

Es ist an der Zeit für einen neuen Artikel über die Entwicklung von MyBB 2.0. Die Version 2.0 ist die lang erwartete, bevorstehende Hauptaktualisierung der Open-Source Forensoftware MyBB, die sich derzeit in einem frühen Entwicklungsstadium befindet. Wir werden regelmäßig (versprochen!) Aktualisierungen zur Entwicklung veröffentlichen um euch auf dem neuesten Stand zu halten. Das Entwickler-Team hat seit dem letzten Artikel viel Zeit in das Hinzufügen von neuen Funktionen und das Aufpolieren der vorhandenen Features investiert.

Bitte beachtet, dass alle Screenshots und Detailinformationen innerhalb dieser Artikel aus einem frühen Entwicklungsstadium stammen und Änderungen möglich sind; Details lassen nicht auf Funktionsumfang und das endgültige Aussehen schließen.

Feedback für das Attachment-System von MyBB 2.0 gewünscht


Diesen Monat haben wir ein Thema erstellt, in dem wir euer Feedback für das neue Attachment-System von MyBB 2.0 hören wollen, zu finden im englischen Forum.

Dieses Thema ist das erste von hoffentlich Vielen mit dem wir uns Rückmeldungen von der Community über die Zukunft des MyBBs erhoffen. Wir versuchen schon einige Zeit offener zu sein und sehen dies als weiteren Schritt dieser Entwicklung. Wir ermutigen euch uns Feedback zu geben, das wir dankbar entgegennehmen, bitten euch jedoch zu prüfen, ob eure Vorschläge bereits gepostet wurden um wiederholende Vorschläge zu vermeiden. Falls bereits jemand eine ähnliche Anregung eingebracht hat und ihr dieser zustimmt, zitiere bitte die ursprüngliche Anregung und bekundet eure Zustimmung.

Wir werden dieses System benutzen um neue Funktionen anzukündigen, an denen wir arbeiten oder zumindest bevor wir mit der Implementierung anfangen, um unsere Ideen der Community vorzustellen. Vor der Erstellung eines Themas hat das Team sich bereits auf einen groben Entwurf mit Funktionen, die wird haben möchten, und solchen, die wir definitiv nicht haben möchten, geeinigt (zum Beispiel hat das Team entschieden, dass wir beim Attachment-System definitiv kein Galerie-System umsetzen werden).

Verbesserung der Organisation der MyBB 2.0 Foren


Als Teil der laufenden Restrukturierung und Reorganisation werden wir in Kürze beginnen neue Themen im Forum mit den umgesetzten Funktionen zu erstellen. Dies wird ein nachhaltiges Bestreben sein, das diese Woche beginnen soll. Dies macht es für die Benutzer einfacher zu kommentieren und Feedback zu Funktionen einzubringen, die bereits angekündigt und/oder in dieser Artikel-Serie vorgestellt wurden.

Wir MyBB 2.0 programmiert wird: Stil


Wie bereits in den letzten Artikeln werfen wir einen Blick auf die Entwicklungs-Standards, denen wir beim Programmieren von MyBB 2.0 folgen.

Bei 2.0 folgen wir der PSR-4 autoloaded Spezifikation zur Strukturierung der Klassen innerhalb der Dateien. Prinzipiell gilt (die Klassen auf der linken, der Pfad auf der rechten Seite):
MyBB\Core\Database\Models\User — ./app/Database/Models/User.php
MyBB\Core\Http\Controllers\UserController — ./app/Http/Controllers/UserController.php
Wie ihr sehen könnt, führt diese Spezifikation zu einem sehr klaren Aufbau und einer übersichtlichen Code-Organisation; anders als bei MyBB 1.x, wo sich jede Datei im Ordner ./inc/ abgelegt ist.

Beim eigentlichen Code orientieren wir uns hauptsächlich am PSR-2 Standard, dabei verwenden wir bei Einrückungen jedoch Tabulatoren anstatt Leerzeichen. Wir wissen, dass der Streitpunkt Tabulatoren/Leerzeichen polarisierend ist und würden gerne auf eine Erörterung verzichten; unser Hauptgrund ist, dass wir nicht 4 Zeichen verwenden wollen, obwohl ein einziges Zeichen ausreicht. Außerdem bieten die meisten modernen Code-Editoren sowohl für Tabulatoren als auch Leerzeichen eine annähernd gleiche Unterstützung.

Als Hilfestellung bei der Umsetzung dieser Standards, bieten wir einen Regelsatz für die Benutzung mit PHP CodeSniffer. Diese Regeln werden automatisch von Circle CI (eine ausführliche Erklärung findet sich dazu im letzten Artikel) angewendet um sicherzustellen, dass jeglicher Code, der in unser Git-Repository eingecheckt wird, den gleichen Standards folgt. Dies führt dazu, dass der Code von MyBB 2.0 durchgehend sehr übersichtlich und leicht lesbar ist.

Natürlich werden wir die Standards nicht für Plugin-Autoren erzwingen, jedoch erwarten wir von Benutzern, die am MyBB-Kern mitarbeiten wollen, diese Standards zu beachten (tatsächlich werden diese von CircleCI erzwungen).

Neue Funktion: Einzelne Beiträge einklappen


In MyBB 2.0 gibt es nun die Möglichkeit Beiträge in der Ansicht einzuklappen. In Zukunft wird es auch möglich sein Beiträge von bestimmten Benutzern automatisch einzuklappen (als Verbesserung des aktuellen Benutzer-Ignorier-Systems von MyBB 1.x). Dies erlaubt den Benutzern automatisch Inhalte von anderen Benutzern auszublenden, die sie ablenkend finden, diese bei Bedarf aber trotzdem auszuklappen.

Jeder Beitrag kann mit einem einfachen Umschalter, der sich an der rechten oberen Ecke jedes Beitrags befindet, ein- und ausgeklappt werden. Benutzern von Reddit könnte diese Funktion bekannt vorkommen.

Hier ist Justins Beitrag ausgeklappt.

Hier ist Justins Beitrag eingeklappt, da wir nicht wissen wollten, wie glücklich er tatsächlich ist.

Moderations-System


Das Moderations-System wurde in MyBB 2.0 deutlich überarbeitet. Es erlaubt nun Plugin-Entwicklern und Integratoren leicht sowohl neue als auch existierende Moderations-Werkzeuge ihren neuen Inhalts-Typen hinzuzufügen und komplett neue Moderations-Werkzeuge nur durch Programmieren einer Klasse oder Implementieren eines Traits zu erstellen. Dies macht das Moderations-System deutlich flexibler als das bisherige System.

Einige Screenshots des neuen Moderations-System findet ihr unterhalb; zu sehen ist die Auswahl von mehreren Beiträgen, die neue Moderations-Leiste, die beim Scrollen auf der Seite folgt und das Verschieben eines Themas in ein anderes Forum.
Auswählen und Verwalten mehrere Beiträge innerhalb eines Themas. Beachte, dass die Leiste am Fuß der Seite mitscrollt um sofortigen Zugriff auf die Moderations-Werkzeuge zu erlauben.

Der gleiche Ansatz wird beim Verwalten von Theme angewandt um eine konsistente Benutzeroberfläche zu erhalten.

Verschieben eines Themas in ein anderes Forum. Einfache Moderations-Werkzeuge wie dieses können ohne Laden einer anderen Seite mit Modals verwendet werden, was die Benutzerfreundlichkeit und Effizienz der Moderation für Team-Mitglieder erhöht.

Verbesserungen bei Avataren


Mit MyBB 2.0 ist es nun möglich Avatare beim Hochladen automatisch zuzuschneiden und zu positionieren, anstatt diese erst mit einer spezialisieren Software bearbeiten zu müssen. Dies ist eine sehr nützliche Funktion, die für alle Nutzer zu schöneren Avataren führen kann.

Außerdem können Avatare nun durch Drag-and-Drop hochgeladen werden. Dies wird das Bild automatisch hochladen und die Oberfläche zum Zuschneiden anzeigen.

Minimale Systemvoraussetzungen


Seit der Veröffentlichung von Laravel 5.1, die langfristig unterstützt werden soll (LTS-Release), setzt MyBB 2.0 mindestens PHP 5.5.9 voraus, das aufgrund einiger Fehler in vorherigen PHP-Versionen benötigt wird. Für Laravel 5.1 werden für 2 Jahre Fehlerbehebungen und für 3 Jahre Sicherheitsupdates zugesichert, was uns Stabilität für MyBB bietet.

Als Teil dieser Veränderung haben wir angefangen eine Liste mit Hostern zu erstellen, die PHP 5.5.9 oder höher unterstützen. In Anbetracht der Einstellung der Unterstützung von PHP 5.4 am 14. September 2015 wird erwartet, dass viele Hoster in absehbarer Zeit höhere Versionen (PHP 5.5 oder 5.6) standardmäßig unterstützen werden, weshalb wir eure Rückmeldungen benötigen um die Liste aktuell zu halten. Um dies zu erreichen, haben wir ein neues Repository auf Github erstellt und bitten die Community an der Liste mit Hostern, die MyBB 2.0 von Anfang an unterstützen, mitzuwirken.

Ausblick


Diese Artikel sind in der letzten Zeit nicht so regelmäßig erschienen, wie angekündigt, und wir können uns dafür nur entschuldigen. Wir hoffen euch bald wieder regelmäßig mit Neuigkeiten versorgen zu können.

Quelle: 2.0 dev post #5 von Euan T.