[3.3] Recent Topics NG

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.
Benutzeravatar
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

Ich habe jetzt die Version pl21 hochgeladen.

Diese Änderungen habe ich hinzugefügt:
  • Anzeigebedingungen für die Anzeige von RTNG überarbeitet.
  • Anzeigebedingungen für die Einstellungen im UCP überarbeitet.
  • Copyright für den Autor der Sprachdateien in dem ACP-Template hinzugefügt.
  • Variablen im ACP- und UCP-Template angepasst.
  • Benutzereinstellungen in der Benutzerverwaltung hinzugefügt.
  • Redundante Daten in der Config-Tabelle entfernt.
Ab mitte nächster Woche könnte ich mich um die neue Migration und den anderen Ergänzungen die wir uns Ausgedacht haben kümmern. Die habe ich sehr grob in der todo.txt beschrieben. Bis dahin sollten wir uns einen neuen technischen Namen für RTNG ausdenken.

Meine Vorschlag wäre rtng/recenttopicsng
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

nAbend
IMC hat geschrieben: 21.10.2024 21:49 Ich habe jetzt die Version pl21 hochgeladen.
Wow, ist so einiges, muss ich am WE sichten. Ich bin im Moment zu sehr mit EMP beschäftigt.
Ab mitte nächster Woche könnte ich mich um die neue Migration und den anderen Ergänzungen die wir uns Ausgedacht haben kümmern. Die habe ich sehr grob in der todo.txt beschrieben.
Hmm eigentlich wäre es sinnvoll, zuerst die technischen Strukturen zu ändern, ohne unsere geplanten Änderungen, so wie ich es mal vorschlug. Denn dann kann man sich rein um die Umstrukturierung kümmern und muss sich nicht auch noch mit eventuellen Bugs durch Änderungen bezüglich neuer Features herumschlagen.
Bis dahin sollten wir uns einen neuen technischen Namen für RTNG ausdenken.
Wir hatten uns doch schon auf einen neuen Namen geeinigt? Es ändert sich durch den Umbau ja nur der technische Name, aber den Projektnamen (und display-name) betrifft das eigentlich nicht.
Meine Vorschlag wäre rtng/recenttopicsng
Eher nicht Thorsten. Die offizielle Vorgabe ist autor-name/extension-name, guckst du:

https://www.phpbb.com/extensions/rules- ... extensions

Demnach wäre eigentlich imcger/recenttopicsng (oder imcger/rtng) der korrekte technische Name für RTNG und passend zu deinen anderen Erweiterungen. Des Weiteren bleibt das zweite Repo für RTNG mit der neuen Struktur sowieso privat, bis wir soweit sind. Bis dahin gilt nach wie vor das Patchlevel Repo als Download Quelle. Und sobald RTNG dann wirklich fertig für Release ist, versetzen wir das bisherige öffentliche Patchlevel Repo in den Archiv Modus, veröffentlichen das neue Repo und ändern dann unsere Links auf das neue Repo.
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
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

LukeWCS hat geschrieben: 24.10.2024 20:19 Wow, ist so einiges, muss ich am WE sichten. Ich bin im Moment zu sehr mit EMP beschäftigt.
Kein Stress wir haben Zeit.
LukeWCS hat geschrieben: 24.10.2024 20:19 Hmm eigentlich wäre es sinnvoll, zuerst die technischen Strukturen zu ändern, ohne unsere geplanten Änderungen,
Die Änderungen sind eigentlich schon im Code. Deshalb sind diese Änderungen recht übersichtlich. Um diese zu aktivieren fehlt es nur an den Variablen und den entsprechenden Erweiterungen in dem ACP und UCP Temlates.

Dann werde ich erst einmal nur Strukturen und bestehenden Variablennamen anpassen. Ist auch schon genug Arbeit. Die neuen, zusätzlichen Einträge, in dem CONFIG_TABLE und dem USERS_TABLE für die zusätzlichen Variablen werde ich bei der neuen Migration schon mit ergänzen.


LukeWCS hat geschrieben: 24.10.2024 20:19 Demnach wäre eigentlich imcger/recenttopicsng (oder imcger/rtng) der korrekte technische Name für RTNG
Dann würde ich mich für imcger/recenttopicsng entscheiden. Bei den Variablenpräfix im Code werde ich die Kurzform rtng nutzen.
LukeWCS hat geschrieben: 24.10.2024 20:19 Weiteren bleibt das zweite Repo für RTNG mit der neuen Struktur sowieso privat, bis wir soweit sind.
Das ist auch mein Plan. Ich würde das neue Repo erst zu Validierung bzw. unserem ersten Release öffentlich machen wollen.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

IMC hat geschrieben: 24.10.2024 21:16 Die Änderungen sind eigentlich schon im Code. Deshalb sind diese Änderungen recht übersichtlich. Um diese zu aktivieren fehlt es nur an den Variablen und den entsprechenden Erweiterungen in dem ACP und UCP Temlates.
Ah okay, die vorbereiteten Änderungen sind also quasi Patchlevel-kompatibel, dann passt das.
Dann werde ich erst einmal nur Strukturen und bestehenden Variablennamen anpassen. Ist auch schon genug Arbeit.
Das sehe ich auch so. Eine fremde Ext auf die eigenen Strukturen umstellen ist ne Menge Fleissarbeit und eine sehr empfindliche Aktion. Ich hatte das zuerst mit WWH gemacht, das war noch in meiner Ext Anfangszeit und auch mein erstes, "ernsthaftes" Ext Projekt. Alleine beim Umbau hab ich mächtig geschwitzt, weil mir da noch eine Menge nicht klar war. Eigentlich war mir der Schuh damals viel zu gross, aber ich hab mich durchgebissen und dabei ne Menge gelernt, was dann auch die Basis für weitere Projekte war.

Solche Umbauten habe ich danach noch ein paar Mal gemacht, das war aber eher Kleinkram.
Die neuen, zusätzlichen Einträge, in dem CONFIG_TABLE und dem USERS_TABLE für die zusätzlichen Variablen werde ich bei der neuen Migration schon mit ergänzen.
Alles klar.

Eigentlich war das alles anders geplant, aber mir fehlt halt einfach auch die Zeit inzwischen. Wenn du die Migration selber angehen willst, nur eine Sache: versuch so viel wie möglich dem Migrator zu überlassen, denn genau hier hat der bisherige Entwickler Fehler gemacht und quasi mit "Speziallösungen" gegen den Migrator gearbeitet, was sehr sicher für den ominösen Uninstall-Bug verantwortlich ist. Wenn was unklar ist, plauschen wir.
Dann würde ich mich für imcger/recenttopicsng entscheiden.
Alles klar, dann steht das fest.
Bei den Variablenpräfix im Code werde ich die Kurzform rtng nutzen.
Jupp, so hatten wir ja bereits entschieden.
Das ist auch mein Plan. Ich würde das neue Repo erst zu Validierung bzw. unserem ersten Release öffentlich machen wollen.
Sinnvoll. Vor allem während dem Umbau auf deine Strukturen, bleibt das Ding privat, weil in der Phase kann man von "aussen" absolut gar nichts brauchen. :wink:
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
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

LukeWCS hat geschrieben: 24.10.2024 21:44 Eigentlich war das alles anders geplant, aber mir fehlt halt einfach auch die Zeit inzwischen. ...
Hab Vertrauen. :) Ich liebe Herausforderungen und kann mir im Moment die Zeit dafür nehmen.
Wenn du die Migration selber angehen willst, versuch so viel wie möglich dem Migrator zu überlassen, ...
Da wir mit den neuen Strukturen quasi bei NULL anfangen besteht keine Notwendigkeit Custom-Code zu nutzen.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

IMC hat geschrieben: 25.10.2024 13:18 Hab Vertrauen. :)
So meinte ich das nicht, da habe ich bei dir nicht die geringsten Bedenken. :) Ich meinte damit, dass die Aufgabenverteilung für die Umstrukturierung ursprünglich mal anders aussah, nämlich einen Teil du, einen Teil ich.
Ich liebe Herausforderungen und kann mir im Moment die Zeit dafür nehmen.
:D Ein Umbau auf eigene Strukturen hat die Nebenwirkung, dass man dabei gleich so einiges lernt. Allerdings hast du inzwischen schon genug andere Projekte gemacht, der RT Umbau dürfte also eigentlich für dich nur noch Fleissarbeit und keine Lernarbeit mehr sein.
Da wir mit den neuen Strukturen quasi bei NULL anfangen besteht keine Notwendigkeit Custom-Code zu nutzen.
Sowieso. Ich meinte jedoch Situationen wo man vielleicht an Custom-Code denken könnte, weil man gerade die passende Migrator Funktion nicht gleich "parat" hat. Sprich, der Migrator hat inzwischen für so einiges schon fertige Funktionen wo man früher noch selber was stricken musste. Zum Beispiel Prüfung auf existierende Rolle oder bedingte Blöcke. Beides geht heute nativ mit dem Migrator. Hängt aber halt auch von der phpBB Version ab, was zur Verfügung steht.
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: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

nAbend

Mit Verspätung, sorry, der Tag hat zuwenig Stunden. Ich schlage vor, wir ziehen um auf einen Planeten mit einer 30-Stunden-Rotation. :wink:

Habe mir - aber nur grob - pl19 bis pl21 angeschaut. Das man die UCP Einstellungen eines Users auch direkt im ACP ändern kann, ist ne prima Sache. :) Hast auch Code Pflege betrieben, z.B. pl19:

Code: Alles auswählen

		//alt
		if ($this->collapsable_categories !== null)
		//neu
		if (isset($this->collapsable_categories))
Minimal kompakter, aber vor allem robuster.

pl20:

Code: Alles auswählen

{{ rtng.S_DISP_FIRST_UNREAD_POST ? rtng.FIRST_UNREAD_POST_TIME : (rtng.S_DISP_LAST_POST ? rtng.LAST_POST_TIME : rtng.FIRST_POST_TIME) }}
Du hast zwar den verschachtelten Ternary korrekt notiert und ist somit auch PHP 8 tauglich, aber das sollte man trotzdem besser vermeiden, weil a) schwerer zu lesen und b) fehlerträchtig. Aus Rücksicht auf gute Wartbarkeit sollte man hier lieber ein klassisches if/else/endif Konstrukt nutzen, z.B. (ungetestet):

Code: Alles auswählen

{% if rtng.S_DISP_FIRST_UNREAD_POST %}
	{{ rtng.FIRST_UNREAD_POST_TIME }}
{% else %}
	{{ rtng.S_DISP_LAST_POST ? rtng.LAST_POST_TIME : rtng.FIRST_POST_TIME }}
{% endif %}
Bei Ternary ist das Highlander-Prinzip besser: "Es kann nur einen geben." Prima bei simplen Sachen wo if/else/endif viel zu sperrig wäre, aber schlecht bei verschachtelten Bedingungsblöcken.

Bei pl21 fiel mir auf, dass du die extrem aufgeblähten DocBlocks (/** @var) der Klassen-Eigenschaften kräftig gekürzt notiert hast. So sind mal eben 66 Zeilen in recenttopics.php entfallen. Ich möchte aber vorschlagen, das global zu entfernen. Ich hab das anfangs auch immer übernommen, als ich noch nicht wusste, wozu das dient. Als ich es dann wusste, hab ich es entfernt, dass war bei WWH 2.0. Und bei späteren Projekten gar nicht erst eingefügt.

Weder du noch ich nutzen eine PHP IDE, darum sind diese Blöcke für uns nur Ballast und blähen unnötig den Code auf. Ausserdem müssten wir das dann bei jeder Änderung manuell aktualisieren und das ist ebenfalls unnötige Arbeit, die ich ehrlich gesagt nicht einsehe. Und ein falscher DocBlock ist prinzipiell schlechter als ein nicht-vorhandener. ^^

Auch der Konstruktor DocBlock ist eigentlich überflüssig, weil du bei pl19 den Parameter $collapsable_categories explizit als nullable deklariert hast. Somit erklärt sich der Konstruktor komplett von alleine und im DocBlock steht nichts zusätzliches, das ist einfach nur redundant und damit unnötig:

Code: Alles auswählen

	/**
	 * recenttopics constructor.
	 *
	 * @param \phpbb\auth\auth										$auth
	 * @param \phpbb\cache\service									$cache
	 * @param \phpbb\config\config									$config
	 * @param \phpbb\language\language								$language
	 * @param \phpbb\content_visibility								$content_visibility
	 * @param \phpbb\db\driver\driver_interface						$db
	 * @param \phpbb\event\dispatcher_interface						$dispatcher
	 * @param \phpbb\pagination										$pagination
	 * @param \phpbb\request\request_interface						$request
	 * @param \phpbb\template\template								$template
	 * @param \phpbb\user											$user
	 * @param														$root_path
	 * @param														$phpEx
	 * @param \phpbb\collapsiblecategories\operator\operator|NULL	$collapsable_categories
	 */
	public function __construct
	(
		\phpbb\auth\auth $auth,
		\phpbb\cache\service $cache,
		\phpbb\config\config $config,
		\phpbb\language\language $language,
		\phpbb\content_visibility $content_visibility,
		\phpbb\db\driver\driver_interface $db,
		\phpbb\event\dispatcher_interface $dispatcher,
		\phpbb\pagination $pagination,
		\phpbb\request\request_interface $request,
		\phpbb\template\template $template,
		\phpbb\user $user,
		$root_path,
		$phpEx,
		?\phpbb\collapsiblecategories\operator\operator $collapsable_categories = null
	)
Was meinst du zu den DocBlöcken?

Bei pl21 stimmt noch was nicht, mit keinem User bekomme ich im Index die RT Anzeige, obwohl Einstellungen passen. Wenn ich auf pl20 runterstufe, funktioniert es sofort wieder.
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
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

LukeWCS hat geschrieben: 30.10.2024 20:54 Bei pl21 stimmt noch was nicht, mit keinem User bekomme ich im Index die RT Anzeige, obwohl Einstellungen passen.
Das Problem hatte ich auch schon bemerkt und schon vor einigen Tagen beseitigt. Da passte ein Variablenname nach der Namensanpassungen nicht mehr.
Dies hatte ich zunächst nicht bemerkt da ich zu Testzwecken - ich weis es nicht mehr - entweder auf seitliche oder separater Anzeige gestellt hatte.
Du hast zwar den verschachtelten Ternary korrekt notiert und ist somit auch PHP 8 tauglich, aber das sollte man trotzdem besser vermeiden, weil a) schwerer zu lesen und b) fehlerträchtig. Aus Rücksicht auf gute Wartbarkeit sollte man hier lieber ein klassisches if/else/endif Konstrukt nutzen
Da hatte mich die Vergangenheit eingeholt. Wie in C, alles möglichst kurz und knackig. Zur besseren Lesbarkeit habe ich trotzdem eine überflüssige Klammer gesetzt. Aber du hast recht, es geht auch anders, überschaubarer. Werde ich berücksichtigen.
Was meinst du zu den DocBlöcken?
Da bin ich mir nicht sicher was richtig ist. Ich brauche es meist nicht und habe es drin weil es alle machen. In den allermeisten Fällen sind die Variablennamen und die Parameter im __construct selbsterklärend. Manchmal ist es auch nützlich, eine kurze Erklärung zu einem Klassenattribut hinzuzufügen.
Ich werde die @var Blöcke erst einmal weiter bestehen lassen. Den Constructor DocBlock werde ich bereinigen.
Gruß, Thorsten
Benutzeravatar
LukeWCS
Supporter
Supporter
Beiträge: 2964
Registriert: 15.12.2014 10:19
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von LukeWCS »

IMC hat geschrieben: 31.10.2024 00:26 Da hatte mich die Vergangenheit eingeholt. Wie in C, alles möglichst kurz und knackig.
Ich ziehe ebenfalls kompakten Code vor, aber nicht auf Kosten der Lesbarkeit. Im phpBB Umfeld gilt immer: Lesbarkeit und Wartbarkeit hat Vorrang vor Kompaktheit.
Zur besseren Lesbarkeit habe ich trotzdem eine überflüssige Klammer gesetzt.
Du hast das, wie gesagt, durchaus korrekt notiert. Siehe Migration Guide 7.3->7.4 gleich am Anfang:
Deprecated: Nested ternary operators without explicit parentheses
https://www.php.net/manual/en/migration ... ecated.php

Dann siehe 7.4->8.0, ab da gilt:
Nested ternaries now require explicit parentheses.
https://www.php.net/manual/en/migration ... atible.php
Da bin ich mir nicht sicher was richtig ist.
Richtig ist in dem Fall, was uns nützt. Uns nützt es eigentlich nichts. Und es ist auch keine Vorgabe.
Ich brauche es meist nicht und habe es drin weil es alle machen.
Ja genau, so habe ich am Anfang auch vieles gemacht, weil es alle gemacht haben. :wink: Aber mit der Zeit versteht man die Zusammenhänge besser und lernt so Stück für Stück, was sein muss und was nicht sein muss.
In den allermeisten Fällen sind die Variablennamen und die Parameter im __construct selbsterklärend.
So sollte es sein. Gut strukturierter Code und gut gewählte Variablennamen führen zu selbsterklärenden Code, den man nicht mit kiloweise Kommentare pflastern muss. :wink: Darum nutze ich z.B. bei EMP ab 2.1.0 auch typisierte Klassen-Eigenschaften (ab PHP 7.4):

https://github.com/LukeWCS/ext-mgr-plus ... hp#L22-L39
Manchmal ist es auch nützlich, eine kurze Erklärung zu einem Klassenattribut hinzuzufügen.
Da spricht auch nichts dagegen und dann ist das ein gewollter Kommentar.
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
IMC
Mitglied
Beiträge: 725
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: [3.3] [Fork] Recent Topics NG

Beitrag von IMC »

LukeWCS hat geschrieben: 31.10.2024 01:00
Deprecated: Nested ternary operators without explicit parentheses
Nested ternaries now require explicit parentheses.
Danke für den Input. Das kannte ich so im Detail nicht.
Trotzdem aus der Gewohnheit heraus alles richtig gemacht. :grin:
Gruß, Thorsten
Antworten

Zurück zu „Extensions in Entwicklung“