Extension Manager Plus (EMP)
Autor:
LukeWCS (EMP)
chris1278 (ExtOnOff)
Aktuelle Version der Erweiterung:
2.0.0
Voraussetzungen:
- phpBB 3.3.0 - 3.3.x (optimal: 3.3.8+)
- PHP 7.1.3 - 8.3.x
Ergänzt die Erweiterungs-Verwaltung um die Möglichkeit, alle installierten Erweiterungen auf einmal deaktivieren und reaktivieren zu können. Eine individuelle Auswahl kann über Checkboxen erfolgen. Außerdem können Reihenfolge-Gruppen und Abhängigkeiten definiert oder Erweiterungen ignoriert werden. In der Erweiterungs-Verwaltung werden auch zusätzliche Informationen angezeigt.
Vorgeschichte
Das theoretische Konzept für EMP entstand zu phpBB 3.1 Zeiten. Es war angedacht eine Erweiterung zu entwickeln, mit der man mittels Kontrollkästchen gleich mehrere Erweiterungen deaktivieren und aktivieren kann. Bis zum Zeitpunkt meiner Mitarbeit an ExtOnOff (von chris1278) fehlte mir jedoch das nötige Wissen. Durch die Entwicklung von ExtOnOff 2 konnte ich mir einen Teil der fehlenden Kenntnisse aneignen und mein Vorhaben umsetzen. Bedingt durch die Erfahrung mit ExtOnOff habe ich dabei mein ursprüngliches Konzept noch um die Möglichkeit erweitert, dass man bei Erweiterungen auch eine Reihenfolge für die Aktivierung definieren kann um Abhängigkeits-Probleme vermeiden zu können. Und das man umgekehrt Erweiterungen auch ignorieren kann.
Funktionen und Eigenschaften
EMP ersetzt die Standard Erweiterungs-Verwaltung. Dazu wird ein Template verwendet, welches auf dem Original von phpBB basiert, jedoch vollständig überarbeitet und erweitert wurde. Die neuen Funktionen und Eigenschaften von EMP wurden so implementiert, dass das sichtbare original Layout des Extension Managers erhalten blieb. Somit ist keine Umgewöhnung notwendig, da die bisherigen Funktionen wie gewohnt zur Verfügung stehen.
Eigenschaften:
- Alle installierten Erweiterungen können auf einmal deaktiviert/reaktiviert werden.
- Eine individuelle Auswahl mittels Kontrollkästchen ist möglich. Per Option kann der Zustand aller Kontrollkästchen auch gespeichert werden.
- Für die Aktivierung der Erweiterungen können Reihenfolge-Gruppen definiert werden. Das ist relevant bei Erweiterungen, von denen andere Erweiterungen abhängig sind.
- 2.0.0: Für die Selektion von Erweiterungen, also Auswählen oder Abwählen, können Abhängigkeiten definiert werden. So werden dann z.B. bei der Auswahl einer aktivierten Erweiterung, von der andere Erweiterungen abhängig sind, auch automatisch alle abhängigen Erweiterungen für die Deaktivierung ausgewählt.
- Erweiterungen können auch ignoriert werden.
- Unterteilt die deaktivierten Erweiterungen zusätzlich in deaktivierte und nicht-installierte Erweiterungen.
- Da die Erweiterungen mit den ExtMgr Funktionen von phpBB geschaltet werden, wird auch eine vorhandene
ext.php
ausgeführt, in der Erweiterungs-Autoren eventuell zusätzliche Aktionen bei den Funktionen "Aktivieren" und "Deaktivieren" definiert haben. Bei Tools, die Erweiterungen lediglich per MySQL Code schalten, wie z.B. beim STK, ist dies nicht der Fall. - Unterstützt ab phpBB 3.3.0 die erweiterte Fehlermeldung-Rückgabefunktion von
is_enableable()
inext.php
. Dadurch wird es möglich, dass EMP alle Fehlermeldungen die während der Aktivierung seitensext.php
erzeugt werden, entgegennehmen kann und in der Bestätigungsmeldung dann gesammelt alle Fehlermeldungen der einzelnen Erweiterungen anzeigen kann. Wenn eine Erweiterung noch die veraltetetrigger_error()
Methode verwendet, dann fängt EMP diese Meldung ab und verpackt sie in ein Meldungs-Gerüst, das genügend Details enthält, um die Erweiterung identifizieren zu können, die den betreffenden Vorgang von EMP unterbrochen hat. - Bei den Funktionen "Alle Versionen erneut prüfen" und "Details" werden die Informationen von ermittelten Updates in der Datenbank gespeichert und die neuen Versionen dauerhaft bei den betreffenden Erweiterungen angezeigt. Wird eine Erweiterung aktualisiert, wird der zugehörige Update-Indikator in der Liste automatisch entfernt. Mit dieser Funktionalität wird das Manko von phpBB behoben, dass Informationen über Updates verloren gehen, sobald der Cache gelöscht wird. Diese Funktionalität ist vor allem dann hilfreich, wenn es mehrere Erweiterungen mit Updates gibt.
- 2.0.0: Konnte die Versionsprüfung einer Ext nicht erfolgreich ausgeführt werden, wird diese Information gespeichert und entsprechend pro Erweiterung signalisiert. Das funktioniert sowohl bei der globalen VP (Alle Versionen erneut prüfen), als auch bei der lokalen VP (Details).
- 2.0.0: Da phpBB standardmässig nicht explizit darüber informiert, wenn eine Erweiterung keine Versionsprüfung bietet, füllt EMP diese Lücke.
- Für die Einstellungen von EMP wird ein separates ACP Modul verwendet, welches sowohl die Einstellung "Immer auf instabile Entwicklungs-Versionen prüfen:" des Standard Extension Managers enthält, als auch alle zusätzlichen Einstelllungen von EMP. Einstellungen von EMP sind mit dem Zusatz "(Plus)" gekennzeichnet. Das Einstellungs-Modul ist in der linken Navigationsleiste unter "Erweiterungen verwalten - Einstellungen" zu finden.
- Die Responsive Ansicht wird von EMP ebenso unterstützt wie beim originalen Extension Manager.
- 2.0.0: Kompatibel mit Toggle Control (Schalter-Stil zentral festlegen)
- Oberhalb der Erweiterungen-Liste wird eine kleine Tabelle mit folgenden Informationen angezeigt:
- Anzahl der verfügbaren Erweiterungen. 2.0.0: Dahinter in Klammern die Anzahl ungültiger Erweiterungen, sofern zutreffend.
- 2.0.0: Anzahl der Erweiterungen, die eine Versionsprüfung bieten.
- Datum der letzten Versionsprüfung. 2.0.0: Dahinter in Klammern die Anzahl Fehler, sofern zutreffend.
- Anzahl der verfügbaren Updates.
- Anzahl der aktivierten Erweiterungen.
- Anzahl der deaktivierten Erweiterungen.
- Anzahl der nicht installierten Erweiterungen.
- Spalte "AKTUELLE VERSION":
- In Klammern die verfügbare neue Version.
- 2.0.0: Icon (Warndreieck) mit Tooltip für Fehler bei der Versionsprüfung.
- 2.0.0: Icon (gebrochene Kette) mit Tooltip für Erweiterungen die keine Versionsprüfung bieten.
- Anzahl der neuen Migrationsdateien pro Erweiterung in einer eigenen Spalte bei deaktivierten Erweiterungen und bei nicht installierten Erweiterungen.
- Erweiterungen mit Migration: Erweiterungen bei denen im Zuge von Updates neue Migrationsdateien vorliegen, können mit EMP per Standard nicht aktiviert werden. Der Grund dafür ist, dass bereits während der Entwicklung von ExtOnOff 2 Probleme in diesem Bereich festgestellt wurden: Bei einem von uns konnte eine Erweiterung mit neuen Migrationsdateien nicht beim ersten Durchlauf aktiviert werden, dies gelang erst beim zweiten Durchlauf. Grundsätzlich ist zu sagen, dass die Ausführung neuer Migrationen bei einer Erweiterung immer ein heikler Prozess ist, bei dem auch mal was nicht klappen kann. Wer Erweiterungen mit neuen Migrationsdateien mittels EMP aktivieren will, muss die entsprechende Option explizit einschalten und sich der potentiellen Problematik bewusst sein.
- Problematische Erweiterungen: Manche Erweiterungen können unter Umständen Probleme verursachen, wenn sie mittels EMP aktiviert werden. Nach meiner Beobachtung kann das primär bei Erweiterungen vorkommen, die nicht in der CDB angeboten werden und somit den Autoren die Erfahrung mit Validierungen fehlt. Solche Erweiterungen sind meistens nicht nach den Richtlinien gestaltet worden und/oder es wurden Techniken verwendet, die nicht mehr zeitgemäß sind, zum Beispiel Techniken aus der Mod-Ära. Ein weiterer Grund ist die Tatsache, dass es bisher keine Möglichkeit gab, mehrere Erweiterungen gleichzeitig mittels Erweiterungs-Verwaltung schalten zu können, weshalb das von Erweiterung-Autoren auch nie berücksichtigt werden musste. Sollten Probleme bei der Aktivierung festgestellt werden die über ein simples Reihenfolge-Problem hinausgehen, können solche Erweiterungen mittels Ignorieren-Funktion ausgeschlossen werden.
- Maximale Ausführungszeit: EMP ist an die maximale Ausführungszeit von PHP gebunden, die bei jedem Hoster individuell festgelegt wird. Diese beträgt normalerweise 30 Sekunden. Es gibt jedoch Ausnahmen, sowohl nach unten als auch nach oben. Wenn extrem viele Erweiterungen geschaltet werden müssen und dabei durch die Ausführung von zusätzlichen Aktionen mittels
ext.php
die maximale Ausführungszeit überschritten werden sollte, dann kann EMP seine Arbeit nicht vollständig beenden. Dabei könnte dann ein Teil der Erweiterungen nicht geschaltet werden. Das ist allerdings ein Extremfall der bisher noch nicht aufgetreten ist.
Screenshot von 2.0.0: [ externes Bild ]
Enthaltene Sprachen:
- de
- de_x_sie
- en
Customisation Database
GitHub Releases (mit Changelog)
Ich bedanke mich für die Beteiligung am geschlossenen Betatest für Rückmeldungen, konstruktive Kritik und Verbesserungsvorschläge:
Kirk
Scanialady
Mike-on-Tour
chris1278