mirror of
https://github.com/Andre-Bzk/rin-mobile-userscript.git
synced 2026-11-15 09:33:08 +01:00
feat: add first, last and direct page jump to thread navigation
Threads on this forum reach four-digit page counts, and stepping one page at a time was the only movement the navigation bar offered. The end of a thread, or any specific page, was effectively unreachable on a phone. Jump targets are derived arithmetically from the forum's own page size instead of read from the rendered pagination, because phpBB never renders more than a handful of page links regardless of thread length. Where that page size cannot be determined, the bar falls back to the links the forum itself provides and hides the jump. Both userscripts inject their stylesheet on thread pages, so class names are a shared namespace between them. The new ones avoid the two the list view already uses, which would otherwise collide at equal specificity and resolve by load order. Claude-Session: https://claude.ai/code/session_0158owAAsXAfFiT3hGkQt1Xk
This commit is contained in:
@@ -15,6 +15,14 @@ existing page content is hidden and a freshly built DOM is appended to `<body>`.
|
||||
| `rin-mobile.user.js` | `*://cs.rin.ru/forum/*` | Topic lists (`viewforum.php`, `search.php`) as cards |
|
||||
| `rin-thread.user.js` | `*://cs.rin.ru/forum/viewtopic.php*` | Single thread as a post stream with a fixed bottom navigation bar |
|
||||
|
||||
The thread navigation bar holds first / previous / next / last and a page
|
||||
indicator. Tapping the indicator opens a sheet with a number field and a grid of
|
||||
all pages. Targets are computed as `start = (page - 1) × per_page` rather than
|
||||
taken from the rendered page links, because phpBB only ever shows a handful of
|
||||
them. `per_page` is read from the `jumpto()` function the forum embeds in the
|
||||
page; without it, only first page and the original previous/next links remain
|
||||
available.
|
||||
|
||||
Both scripts run at `document-start`, inject a mobile viewport meta tag, and
|
||||
carry a `DEBUG` flag. While `DEBUG` is `true`, a green diagnostic overlay is
|
||||
prepended to the page showing how many rows were found and converted. Set it to
|
||||
@@ -164,6 +172,15 @@ ein neu gebautes DOM an `<body>` gehängt.
|
||||
| `rin-mobile.user.js` | `*://cs.rin.ru/forum/*` | Themenlisten (`viewforum.php`, `search.php`) als Karten |
|
||||
| `rin-thread.user.js` | `*://cs.rin.ru/forum/viewtopic.php*` | Einzelner Thread als Beitragsstrom mit fixierter Navigationsleiste |
|
||||
|
||||
Die Navigationsleiste im Thread enthält erste / vorherige / nächste / letzte
|
||||
Seite und eine Positionsanzeige. Ein Tipp darauf öffnet ein Sheet mit
|
||||
Zahlenfeld und einem Raster aller Seiten. Die Ziele werden als
|
||||
`start = (Seite - 1) × per_page` berechnet und nicht aus den gerenderten
|
||||
Seitenlinks übernommen, weil phpBB davon immer nur eine Handvoll anzeigt.
|
||||
`per_page` stammt aus der `jumpto()`-Funktion, die das Forum in die Seite
|
||||
einbettet; fehlt sie, bleiben nur die erste Seite und die ursprünglichen
|
||||
Zurück-/Weiter-Links nutzbar.
|
||||
|
||||
Beide laufen bei `document-start`, setzen ein mobiles Viewport-Meta-Tag und
|
||||
haben ein `DEBUG`-Flag. Solange `DEBUG` auf `true` steht, wird ein grünes
|
||||
Diagnose-Overlay über die Seite gelegt, das zeigt, wie viele Zeilen gefunden und
|
||||
|
||||
Reference in New Issue
Block a user