Seite 54 von 62

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 30.12.2025 20:18
von IMC
Ich denke ich habe den Fehler.

Ersetze mal dies:

Code: Alles auswählen

$rtng_start	  = min($total_topics_limit - 1, $rtng_start);
Durch dies:

Code: Alles auswählen

			$total_topics_limit = min($total_topics_limit, $topics_count);
			$rtng_start	  = min($total_topics_limit - 1, $rtng_start);
Im Fix mache ich das dan schöner.

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 30.12.2025 20:44
von LukeWCS
Schon mal ein Fortschritt. Jetzt zeigt er auf beiden Seiten (Index und Separat) zumindest den letzten Topic an. Aber:
  • Die aktive Seite wird in der Pagination nicht mehr markiert. Logisch, weil die Anzeige des letzten Topics nicht synchron mit der Paginierung ist.
  • Verhält sich anders als phpBB, welches in so einem Fall schlicht die letzte Pagination-Seite anzeigt.

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 30.12.2025 20:51
von IMC
Gut. Dadurch haben wir wieder einen Fehler entdeckt.
Den werde ich dann gleich mit fixen. Am Ende haben wir ein besseres Verhalten als phpBB. :wink:

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 30.12.2025 21:32
von LukeWCS
Wobei ich das Verhalten von phpBB in dem Fall durchaus gut/logisch finde, denn wenn es wie in diesem Thema gerade 54 Seiten gibt und ich gebe 55 ein, dann gibt mir phpBB halt das was es hat, also die 54te Seite.

Davon unabhängig; alles ist besser als gar keine Anzeige. Selbst die Falschaussage "Es sind keine neuen Themen vorhanden.".

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 30.12.2025 22:22
von IMC
Der Commit ist online.
Du wirst zufrieden sein.

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 31.12.2025 12:57
von LukeWCS
Funktioniert prima. :)

Während du gestern Abend an einer Lösung gearbeitet hast, habe ich mir parallel nochmal meinen eigenen Ansatz vorgenommen, weil mich das geärgert hat, dass ich das nicht sauber gelöst hatte. :wink: Hattest du meine 2 Edits gestern noch gesehen gehabt?

Siehe: viewtopic.php?p=1433552#p1433552

Damit ich gettopiclist() nicht zweimal ausführen muss, was ja Murks gewesen wäre, habe ich meinen Fix in die Funktion direkt integriert, wie du jetzt ja auch. Damit du sehen kannst, was mein Versuch gewesen wäre, habe ich eben den Branch temp angelegt, mit Basis auf dev11, damit du die effektiven Änderungen sehen kannst. Ich war mir nur beim 3ten Parameter von validate_start() nicht sicher, deshalb habe ich hier einfach den Rückgabewert von gettopiclist() genommen. Mein Fix hat deutlich weniger Änderungen, aber da war ich mir eben auch nicht sicher, ob ich alles berücksichtigt hatte.

Wegen der kompletten fehlenden Anzeige im Index, habe ich RTNG auch mal komplett deinstalliert und neu installiert, aber das hat nichts geändert bei mir. Allerdings bezieht RTNG ja auch noch externe Einstellungen und Bedingungen, deswegen ist es eher schwierig hier eine exakt gleiche Test Basis zu schaffen. Ist aber auch egal, denn wenn es bei mir auftreten kann, ist die Wahrscheinlichkeit hoch, das es auch bei anderen auftreten kann.

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 31.12.2025 16:18
von IMC
LukeWCS hat geschrieben: 31.12.2025 12:57 Hattest du meine 2 Edits gestern noch gesehen gehabt?
Die habe ich gesehen. Sonst hätte ich nicht so schnell den Fehler entdeckt. Nachstellen konnte ich ihn nicht.
Ist aber auch egal, denn wenn es bei mir auftreten kann, ist die Wahrscheinlichkeit hoch, das es auch bei anderen auftreten kann.
Der Fehler ist bei dir aufgetreten weil bei dir die Anzahl der Topics niedriger ist als Anzahl der maximal anzuzeigenden Topics (Seiten x Themen pro Seite). Schön das dadurch wieder ein Fehler aufgedeckt wurde.
deshalb habe ich hier einfach den Rückgabewert von gettopiclist() genommen.
Das ist so auch richtig.
Damit du sehen kannst, was mein Versuch gewesen wäre, habe ich eben den Branch temp angelegt
Fast genau so wie ich es jetzt gemacht habe. Ich habe mich am Ende entschieden $rtng_start nicht als Referenz zu nutzen sondern nach der Ermittlung des richtigen Wertes als Eigenschaft den Wert zuzuweisen. Passt gut zu den anderen Eigenschaften der Klasse.

Code: Alles auswählen

		$this->topics_start		= 0;
		$this->topics_per_page		= 0;
		$this->topics_page_number	= 0;
$rtng_start = min($total_topics_limit - 1, $rtng_start); hat bei RTNG dafür gesorgt, dass das letzte Thema angezeigt wird, wenn der Startwert der Pagination zu hoch ist. Meine Funktion hat ihn ersetzt.


Ich habe mir eben nochmal die Codestelle bei RT angesehen. Der Code ist jetzt viel einfacher zu verstehen, da der Bereich klarer strukturiert wurde.

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 31.12.2025 17:52
von LukeWCS
Als ich gestern meinen zweiten Ansatz soweit hatte und dieser - im Gegensatz zum ersten - auch zumindest technisch gesehen okay war, sah ich hier, das du deinen Fix auch schon fertig hattest. Den natürlich gleich gesichtet und dabei schnell festgestellt, das mein Richtungswechsel nicht falsch war. :wink:
IMC hat geschrieben: 31.12.2025 16:18 Der Fehler ist bei dir aufgetreten weil bei dir die Anzahl der Topics niedriger ist als Anzahl der maximal anzuzeigenden Topics (Seiten x Themen pro Seite).
Das heisst, der Fehler - wenn im Index gar nichts angezeigt wird - tritt nicht auf, wenn sich die Anzahl der zur Anzeige verfügbaren Themen exakt durch die Anzahl der Themen pro Seite teilen lässt.

Okay, wieder ein Stück besser.

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 01.01.2026 16:05
von IMC
LukeWCS hat geschrieben: 31.12.2025 17:52 Das heisst, der Fehler - wenn im Index gar nichts angezeigt wird - tritt nicht auf, wenn sich die Anzahl der zur Anzeige verfügbaren Themen exakt durch die Anzahl der Themen pro Seite teilen lässt.
Ja. Es war so wenn die Anzahl gleich, oder die Anzahl der Themen pro Seite größer war trat der Fehler nicht auf.

Ich habe noch einen Commit gemacht.
  • Meine neue Funktion würde in einer bestimmten Konstellation den Wert -1 zurückgeben.
  • Einen sql_query_limit in ein sql_query geändert. Hat noch ein paar Millisekunden gebracht.
  • Da wir das Script wegen fehlenden Foren oder Topics bereits for der Ausgabe von Templatevariaben abgebrochen haben konnte die Meldung "Es sind keine neuen Themen vorhanden." nicht angezeigt werden. Dies habe ich bereinigt. Zusätzlich habe ich das Template für die Anzeige geändert damit die Meldung RTNG klar zugeordnet werden kann.

Re: [3.3] [CDB]Recent Topics NG

Verfasst: 01.01.2026 16:35
von LukeWCS
IMC hat geschrieben: 01.01.2026 16:05 [*] Einen sql_query_limit in ein sql_query geändert. Hat noch ein paar Millisekunden gebracht.
Ähnliches Optimier-Potential entdecke ich auch immer wieder bei meinen eigenen Sachen, zuletzt bei File Check 1.5.1, wo durch mehr RAM Nutzung deutlich Zeit eingespart werden kann. Zeit ist oftmals eh wertvoller als RAM-Nutzung. Insbesondere wenn Exts in Foren laufen, wo die gleichzeitige Nutzung durch sehr viele User entsprechendes Gewicht haben kann bei der Ausführungszeit.
Da wir das Script wegen fehlenden Foren oder Topics bereits for der Ausgabe von Templatevariaben abgebrochen haben konnte die Meldung "Es sind keine neuen Themen vorhanden." nicht angezeigt werden.
Darum also bei mir keine Meldung im Index, nur auf der separaten Seite.
Zusätzlich habe ich das Template für die Anzeige geändert damit die Meldung RTNG klar zugeordnet werden kann.
Insbesondere auf der separaten Seite hilfreich, denn da fehlte ja das umgebende RTNG Gerüst in so einer Situation.