From 3609d9e151a4473cf14bf8b137b274553962bd23 Mon Sep 17 00:00:00 2001 From: Andre <200930841+Andre-Bzk@users.noreply.github.com> Date: Sun, 2 Aug 2026 14:55:39 +0200 Subject: [PATCH] fix: recognise forum rows in the list view MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A viewforum page is not always a list of topics — a category page lists forums, and a forum page can carry both. Every row was treated as a topic, so on those pages the only link the row offered was the icon in its last-post column: the forum name was dropped, its description ended up in the muted footer line, and nothing was left to tap. Moving between forums on a phone was impossible. Rows are now classified by their first usable link, which relies on document order: a forum row names the forum before it links the last post. Detection prefers phpBB's own classes and falls back to the shape of the row, because the board runs a custom theme whose markup could not be verified — the page requires a login. That fallback needs a brake. The page scaffolding is itself a table, so a link outside any list row resolves to a row containing the whole document, which passed for a forum row and turned the page header, a stylesheet and inline scripts into a forum description. Rows carrying nested tables, forms or scripts are therefore rejected, and descriptions are read only from the title cell's own text. --- CLAUDE.md | 30 +++++ README.md | 21 +++- rin-mobile.user.js | 282 +++++++++++++++++++++++++++++++++++---------- 3 files changed, 268 insertions(+), 65 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 9b6fa16..c7b0090 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -56,6 +56,28 @@ Die Funktion markiert *alle* vorhandenen `body`-Kinder mit `.rm-hidden`. Das Sheet wird deshalb erst beim ersten Antippen gebaut — das loest das Problem nebenbei mit. +**In der Liste entscheidet die Dokumentreihenfolge ueber den Zeilentyp.** +`buildList()` sammelt Links auf `viewforum.php` und `viewtopic.php` in einem +Rutsch ein und ordnet jede `tr` nach ihrem ersten verwertbaren Link zu. Eine +Forenzeile verlinkt in der Spalte „letzter Beitrag" ebenfalls `viewtopic.php` — +zaehlte man Themenlinks zuerst, faellt die Zeile als Thema an, der Forenname +verschwindet und nur die Beschreibung bleibt als `.rm-last` uebrig. Genau so +war es vor 3.2. Brotkrumen und „Mark forums read" verlinken ebenfalls Foren, +stehen aber in Zeilen ohne Forenmerkmale und werden verworfen. + +**Das Seitengeruest ist selbst eine Tabelle.** `closest('tr')` liefert fuer +einen Link ausserhalb einer Listenzeile die Layoutzeile, die die ganze Seite +enthaelt. Ohne Bremse wurde daraus eine Karte mit dem kompletten Seitentext — +Kopfzeile, Stylesheet und Inline-Scripts inklusive — als Forenbeschreibung. +Zeilen mit `table`, `script`, `style` oder `form` darin sind deshalb keine +Kandidaten, und die Beschreibung wird nur aus den direkten Textknoten der +Titelzelle gebildet, nie aus deren gesamtem Text. + +**Das Theme ist `rinDark`, nicht subsilver2.** Die Klassennamen aus der +phpBB-Dokumentation (`forumlink`, `forumdesc`) sind fuer die Forenliste +deshalb nur eine Vermutung, solange kein `dev/viewforum.php` vorliegt. Die +Erkennung faellt bewusst auf die Form der Zeile zurueck. + **Die Brotkrumenleiste ist fixiert, nicht sticky.** `.rm-root` traegt `overflow:hidden` und wuerde damit zum Scrollport einer `position:sticky` -Leiste, in dem nie gescrollt wird — sie klebte nie. Fixierte Nachfahren @@ -110,6 +132,14 @@ Fuer die Weiche und die Listenansicht genuegt eine handgeschriebene Tabelle mit Weiche wie `posting.php`: dort darf weder eine Ansicht gebaut noch ein `