Seite 43 von 45
Re: [3.3] Recent Topics NG
Verfasst: 25.05.2025 10:20
von IMC
Moin Patrick,
ein Sache stört mich noch in dem Code von rtng_functions.php
. Die macht den Code für mich unübersichtlich und hat letztendlich zu dem letzten Fehler geführt.
Zum Teil werden Variablen als Klasseneigenschaft deklariert, die zumindest für mich keine direkte Eigenschaft sind. Bei diesen muss man genau schauen wo sie wann initialisiert werden, bevor man sie an anderer Stelle nutzen kann.
Deshalb möchte ich Variablen, bei denen es Sinn macht, an Methoden als Parameter übergeben oder diese in der Methode neu ermitteln.
Dann wären wieder ein paar alte Zöpfe abgeschnitten und der Code wäre noch leichter lesbar.
Re: [3.3] Recent Topics NG
Verfasst: 25.05.2025 16:41
von LukeWCS
Tach Thorsten
Habs mir gerade angeschaut, jetzt weiss ich was du meinst.
Ich hatte jetzt aber nur paar Stichproben genommen:
$forum_ids
,
$unread_only
und
$obtain_icons
werden als private Klasseneigenschaften deklariert, werden aber in der gesamten Klasse gar nicht verwendet.

Dann
$topic_list
, das wird ebenfalls als Klasseneigenschaft deklariert, wird aber nur innerhalb 1 Methode benötigt und somit wäre auch nur eine lokale Variable nötig.
Das sieht alles nach Artefakte aus und nach mangelnder Bereinigung/Wartung. Diejenigen Objekte die wir im Konstruktor importieren, bei denen ist es natürlich sinnvoll diese als Eigenschaften in der gesamten Klasse zur Verfügung zu haben. Aber für alles andere was nur rein lokal benötigt wird, brauchen wir keine Klasseneigenschaften. Schon gar keine unbenutzten.
Re: [3.3] Recent Topics NG
Verfasst: 25.05.2025 18:41
von IMC
Dann sind wir mal wieder im Konsens.
Re: [3.3] Recent Topics NG
Verfasst: 25.05.2025 19:36
von LukeWCS
Ich war mir zuerst nicht sicher was du meinst, weil sowas hatte ich - in dem Umfang - nicht auf dem Schirm. Das man mal 1 oder 2 unbenutzte veraltete Variablen in einer Klasse/Datei entdeckt ist nichts ungewöhnliches, passiert jedem mal und nicht nur einmal. Aber gleich ein ganzes Variablen-Museum... Wenn das mal entrümpelt ist und man auch rein lokale "Angelegenheiten" im "Dorf" lässt, sieht die Landschaft gleich wieder besser aus, sozusagen. ^^
Re: [3.3] Recent Topics NG
Verfasst: 25.05.2025 22:05
von IMC
LukeWCS hat geschrieben: 25.05.2025 19:36
Ich war mir zuerst nicht sicher was du meinst
Das Problem habe ich öfter. (Das andere nicht wissen was ich meine.)
Ich hoffe das den nächsten Sachverhalt besser beschreiben kann. Es geht um die Anzeige von "Topic icon". (ACP->Posting->Topic Icons)
Das "Topic icon" kann für jeden Post neu/unterschiedlich vergeben werden. Zur Zeit wird bei RTNG immer das "Topic icon" des ersten Post, welches auch in dem Topictable hinterlegt ist angezeigt. Auch wenn wir den letzten oder den letzten ungelesenen Beitrag anzeigen.
Wollen wir dies so beibehalten? Oder wollen wir das Icon des verlinkten Post anzeigen? Für die Beibehaltung des jetzigen Verhalten spricht das wir die Topics listen und das Icon im Topictable hinterlegt ist.
Re: [3.3] Recent Topics NG
Verfasst: 25.05.2025 22:24
von LukeWCS
IMC hat geschrieben: 25.05.2025 22:05
Wollen wir dies so beibehalten?
Hab ich mir bisher noch keine Gedanken dazu gemacht, weil ich das Icon eher als sekundär betrachte. Aber ich würde sagen; ja, beibehalten. Sollte das mal jemand anfragen, kann man sich immer noch überlegen, ob wir das realisieren. Hängt ja auch vom Aufwand ab, für das Beitrags-Icon bräuchte man ja einen zusätzlichen Query auf die
posts
Tabelle.
Re: [3.3] Recent Topics NG
Verfasst: 04.06.2025 20:37
von IMC
Hi Patrick,
LukeWCS hat geschrieben: 25.05.2025 22:24Hängt ja auch vom Aufwand ab, für das Beitrags-Icon bräuchte man ja einen zusätzlichen Query auf die
posts
Tabelle.
Den Aufwand schätze ich zur Zeit nicht so hoch ein. Das zusätzliche Query kann wahrscheinlich in die bestehenden Integriert werden. Ist für mich auch nicht von Wichtigkeit da bei mir die Icons deaktiviert sind. Ich schau mir das aber nochmal an wenn ich Zeit über habe.
Die Änderungen der Variablen habe ich in den
dev
Branch hochgeladen.
Bei diesen Variablen habe ich etwas länger überlegt wie ich mit ihnen umgehe.
Code: Alles auswählen
// These variables are defined in the gettopiclist() function.
$obtain_icons = false;
$forums = [];
$topic_list = [];
Am Ende habe ich mich dazu entschieden diese als Referenz an
gettopiclist()
zu übergeben, um diesen ihre Werte zuzuweisen. Dies erschien mir am sinnvollsten.
Ich wollte nicht, dass sie als Returnwert in einem Array stehen, da ich ungern Werte in einem Array zusammenfasse, die strukturell nicht zueinander passen.
Re: [3.3] Recent Topics NG
Verfasst: 06.06.2025 16:48
von LukeWCS
Der Commit 952e3de ist recht umfangreich, da hast kräftig Hausputz gemacht.
IMC hat geschrieben: 04.06.2025 20:37
Ich wollte nicht, dass sie als Returnwert in einem Array stehen, da ich ungern Werte in einem Array zusammenfasse, die strukturell nicht zueinander passen.
Hmm ein Array ist in so einem Fall für mich einfach nur ein Container zum Transport von Daten. Ob die Daten darin jeweils zusammengehören, ist für mich nicht relevant. Ich verwende Arrays ja auch z.B. um zig verschiedene Datentypen zusammenzufassen. Da kann es schon mal vorkommen, dass ein Array weitere Arrays enthält die ebenfalls nochmal weitere Sub-Arrays enthalten sowie Strings, Bools und Integer in verschiedenen Verschachtelungsebenen vorhanden sind.
Der Einzelfall entscheidet. Wenn der Zugriff mittels Referenz einfacher oder transparenter ist, dann spricht ja auch nichts gegen Referenz.
Re: [3.3] Recent Topics NG
Verfasst: 06.06.2025 18:25
von IMC
LukeWCS hat geschrieben: 06.06.2025 16:48Ich verwende Arrays ja auch z.B. um zig verschiedene Datentypen zusammenzufassen.
Ja, das ist richtig. Mache ich auch so.
Ich versuche mein Problem mal anders zum Ausdruck zu bringen. Mir ist kein sinnvoller Name für das Array eingefallen der zum Ausdruck bringt was in dem Array zusammen gefasst ist. Wenn ich in php unterschiedliche Daten in einem Array zusammenfasse sollte das genauso gut passen wie früher, wenn ich den Ausdruck
struct
genutzt habe.
Re: [3.3] Recent Topics NG
Verfasst: 07.06.2025 21:40
von IMC
Ich habe mir eben etwas bei Chris abgeschaut und in unseren dev
Branch hochgeladen.
Dadurch wird in „Wer ist online” korrekt angezeigt, wer sich die separate oder vereinfachte Seite von RTNG ansieht.