[3.3] Quick Activation in Profile

In diesem Forum können Extension-Autoren ihre Extensions vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Joe Kolade
Mitglied
Beiträge: 217
Registriert: 27.02.2023 19:59

Re: [3.3] Quick Activation in Profile

Beitrag von Joe Kolade »

Benutzeravatar
chris1278
Mitglied
Beiträge: 3841
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Quick Activation in Profile

Beitrag von chris1278 »

Da du die ext.php nicht nutzt kannst du diese auch löschen. Es sei denn ihr habt vor die in zukunft einzubinden.
Joe Kolade
Mitglied
Beiträge: 217
Registriert: 27.02.2023 19:59

Re: [3.3] Quick Activation in Profile

Beitrag von Joe Kolade »

Ich war bislang in dem Wissensstand, dass die ext.php quasi ein Muss jeder phpBB-Erweiterung ist und phpBB der Erkennung, Initialisierung und Verwaltung dient. :-?
Benutzeravatar
chris1278
Mitglied
Beiträge: 3841
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: [3.3] Quick Activation in Profile

Beitrag von chris1278 »

Nein kein muss.

Aber ihr könntet z.B. die ext.php damit füllen:

Code: Alles auswählen

class ext extends \phpbb\extension\base
{
	public function is_enableable()
	{
		$valid_phpbb = phpbb_version_compare(PHPBB_VERSION, '3.3.0', '>=') && phpbb_version_compare(PHPBB_VERSION, '4.0-dev', '<');
		$valid_php = phpbb_version_compare(PHP_VERSION, '7.2.0', '>=') && phpbb_version_compare(PHP_VERSION, '8.5.0-dev', '<');

		return $valid_phpbb && $valid_php;
	}
}
Damit kannst du z.B. die Voraussetzungen php und phpbb begrenzen.
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2962
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] Quick Activation in Profile

Beitrag von LukeWCS »

Joe Kolade hat geschrieben: 19.04.2025 16:36 Ich war bislang in dem Wissensstand, dass die ext.php quasi ein Muss jeder phpBB-Erweiterung ist
Nein. Mit dieser Datei kann man optional bis zu 4 besondere Aktionen ausführen:
  • Voraussetzungen prüfen und wenn diese nicht erfüllt sind, eine Aktivierung verhindern. Hat chris1278 jetzt gezeigt.
  • Zusätzliche Aktionen beim Aktivieren.
  • Zusätzliche Aktionen beim Deaktivieren.
  • Zusätzliche Aktionen bei Arbeitsdaten löschen.
In der jetzigen Form ist eure ext.php schlicht sinnfrei (weil leer) und kann entfernt werden.

Damit phpBB eine Ext als solche erkennen kann, ist primär composer.json relevant und deren Struktur. Fehlt diese Datei oder die Struktur ist ungültig, dann ignoriert phpBB die Ext als Ganzes.
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2962
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] Quick Activation in Profile

Beitrag von LukeWCS »

Update:

Da ihr nun EC Zugang habt, ein paar Worte zum EC Thema: nicht erschrecken, der Startbeitrag sieht erstmal heftiger aus als er ist. ;) Da ist auch nicht alles relevant für euch. Was ihr aber auf jeden Fall lesen müsst, sind die Punkte 1 und 5, da hier wichtige Informationen für die Benutzung aufgeführt sind.

Dann, dort könnt ihr auch lesen, das man mit EC eine solide Basis für eine Validierung schaffen kann. Das heisst jedoch nicht, dass eine Validierung sofort positiv verläuft, wenn ihr einen positiven EC Bericht habt. Die ersten beiden Prüfmodule EPV und PPSSE werden auch bei phpBB.com eingesetzt und bei einer Validierung wird euch dann als EC Nutzer einer der Schritte beim Hochladen bekannt vorkommen, denn da bekommt ihr ebenfalls einen Bericht mit EPV. Und wenn da schon der EPV Bericht eine mittlere Katastrophe wäre, kann es passieren, dass die Ext sofort abgelehnt wird. Da ist also EC hilfreich, weil man so im Idealfall gar nicht erst in diese Situation kommt.

Eine Validierung ist aber sehr viel mehr als nur die Einhaltung von Vorgaben und Richtlinien: da sind Profis am Werk, die eure Ext bis ins Detail auseinandernehmen. Als Star Wars Fan würde ich sagen: das sind Jedi Meister. :D
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Joe Kolade
Mitglied
Beiträge: 217
Registriert: 27.02.2023 19:59

Re: [3.3] Quick Activation in Profile

Beitrag von Joe Kolade »

IMC hat geschrieben: 14.04.2025 21:17 Ich kann mir sehr gut vorstellen das diese Extension von vielen Admins genutzt werden wird. Mit ein paar kleinen Anpassungen werde ich diese bei mir auch testen.
Hallo,

welche kleinen Anpassungen fehlen Dir denn?

Gruß Joe
Benutzeravatar
IMC
Mitglied
Beiträge: 724
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] Quick Activation in Profile

Beitrag von IMC »

Wenn du mich so direkt fragst. Dabei geht es nicht um richtig oder falsch, es sind so, persönliche Vorlieben.

In euren Funktionen habt ihr Codestellen die sich immer wieder wiederholen.
  • 4x Admin check
  • 4x Ermittlung der User id
  • 3x DB Abfragen USERS_TABLE
Die ersten 2 Punkte bräuchte man jeweils nur einmal im Code.
Die drei BD Abfragen kann man zu einer zusammenfassen.

Seit 3.3.15-RC1 wird mit dem Event die user_id übermittelt.
Deshalb würde ich die user_id aus dem Event übernehmen. Wenn die Variable $event['user_id'] nicht gesetzt ist, die Id mit dem euren Request ermitteln.
Das könnte so aussehen.

Code: Alles auswählen

		$user_id = $event['user_id'] ?? $this->request->variable('u', 0);
		if (empty($user_id))
		{
			return;
		}
Ich persönlich würde den Code dann übersichtlicher finden und er wird zügiger ausgeführt. Wenn ihr, zum Beispiel, den Admin check ändern möchtet, braucht ihr dies nur noch einmal im Code tun. Dadurch werden Fehler minimiert.

' WHERE user_id = ' . $this->db->sql_escape($user_id) ist in dieser Form auch nicht nötig. Da die User Id ein integer ist muss da keine Zeichenfolge escapet werden. Mit ' WHERE user_id = ' . (int) $user_id kann eine SQL-Injection ebenso verhindert werden. Der phpBB Ext Check wird damit auch keinen Fehler melden.

Zum Schuss noch ein dickes Lob für die Idee zu dieser Extension, die Umsetzung und des Teilens mit uns.

Edit:
{% if USER_REAL_EMAIL %} dieser Konstrukt funktioniert bei euch tadellos. Eindeutiger wäre aber {% if USER_REAL_EMAIL is defined %}.
Gruß, Thorsten
Joe Kolade
Mitglied
Beiträge: 217
Registriert: 27.02.2023 19:59

Re: [3.3] Quick Activation in Profile

Beitrag von Joe Kolade »

Hallo Thorsten,

vorab vielen Dank für deine hilfreichen Anmerkungen!

Die sich wiederholenden Abfragen sind der Historie geschuldet: "Benutzer aktivieren" und der "Infobereich für Administratoren" waren ursprünglich getrennte Bearbeitungen. Dann kam die Idee, das Ganze in einer Erweiterung zusammenzuführen.

Deine Hinweise und Vorschläge schaut sich mein Sohn an und wird den Code wohl überarbeiten bzw. optimieren.

Bezüglich deines Vorschlags zur user_id stellt sich ggf. die Frage der Abwärtskompatibilität.

Wie schon mitgeteilt, hängt die Weiterentwicklung der Ext auch vom Feedback bzw. Interesse der Forenbetreiber ab. Das ist bislang noch relativ mau...

Gruß Joe
Zuletzt geändert von Joe Kolade am 23.04.2025 20:01, insgesamt 1-mal geändert.
Benutzeravatar
IMC
Mitglied
Beiträge: 724
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] Quick Activation in Profile

Beitrag von IMC »

Joe Kolade hat geschrieben: 23.04.2025 19:17 Bezüglich deines Vorschlags zur user_id stellt sich ggf. die Frage der Abwärtskompatibilität.
Die ist mit meinem Vorschlag gegeben. Mit ?? wird der erste Vorhandene Wert übergeben. Ist $event['user_id'] vorhanden, wird dieser übergeben. Wenn die Variable nicht existiert wird die Id mit eurem Request ermittelt und übergeben.
Interesse der Forenbetreiber ab. Das ist bislang noch relativ mau...
Täusche dich da nicht. Die Dunkelziffer wird sehr hoch sein. Feedback gibt es nur von einem Bruchteil der Nutzer.S

Edit:
Schau dir die Zugriffszahlen zu deinem Thema an.
Gruß, Thorsten
Antworten

Zurück zu „Extensions in Entwicklung“