====== pagenav: start als erste Seite ====== ^ Datum | 2026-11-04 | ^ KI | Claude (claude-opus-5-5) | ^ Status | erledigt | ^ Vorherige Sitzung | [[ki:sitzungen:2026-11-03_galaxy]] | ^ Bezug | [[manual:start]], [[ki:stand:edwiki]] | ===== Ziel ===== Im Plugin pagenav (''%%[<>]%%'') wurde die ''start''-Seite als letzte Seite gewertet. Sie soll die erste sein, damit man von ''start'' aus durch die Kapitel blättern kann. ===== Ergebnis / aktueller Stand ===== * **Ursache:** pagenav sortiert alphabetisch. Die Kapitel beginnen mit Ziffern (''1_…''), Ziffern stehen vor Buchstaben, also lag ''start'' am Ende. * **Fix:** ''lib/plugins/pagenav/syntax.php'' geändert, von Oliver per FTP eingespielt und im Wiki bestätigt („funktioniert“). ''date'' in ''plugin.info.txt'' auf 2026-11-04 gesetzt. * Die PHP-Warnung aus ''syntax.php'' Zeile 41 (bei ''%%[<>]%%'' ohne Filter) ist laut Code ebenfalls behoben. ===== Entscheidungen ===== * „Erste Seite“ führt auf ''start'', auch wenn das dasselbe Ziel wie „Zurück zur Übersicht“ ist – ''start'' ist die erste Seite der Reihe. ===== Verworfen ===== * – ===== Offene Punkte ===== * FIXME Ein Update von pagenav überschreibt den Fix (letzte Änderung des Plugins: 2020). Dann den Code unten wieder einbauen. * FIXME Der Fix muss bei der Umstellung von edwiki.de auf das Produktivsystem mitkommen. * FIXME Der pagenav-Hinweis zur Zeile 41 in [[ki:stand:edwiki]] ist überholt und beim nächsten Überarbeiten der Stand-Seite zu entfernen. ===== Nächste Schritte ===== - – ===== Technische Details ===== * Dev-Wiki: DokuWiki 2026-07-14c „Mort“. * Sonderfall: Bei einem Filterausdruck (''%%[<> ^a.*]%%'') gehört ''start'' nur zur Reihe, wenn man gerade auf ''start'' ist. * Getestet mit vier Beispielseiten außerhalb des Wikis; danach von Oliver im Dev-Wiki bestätigt. * Zum Testen den Browser nehmen: Über die Remote-API (''core_getPageHTML'') rendert das Plugin mit einer falschen aktuellen Seite (Ergebnis wie im Hauptnamensraum). * Nach dem Einspielen einmal im Konfigurationsmanager speichern, die Navigation ist mit der Seite gecacht. ''handle()'', Zeile 41: list($mode, $glob) = array_pad(explode(' ', $match, 2), 2, ''); ''render()'': ersetzt den Block von ''$cnt = count($list);'' bis zum Ende der ''for''-Schleife: // build the page sequence: the start page always comes first, followed // by the other pages in their sorted order. The current page always // stays in the sequence, even if the filters would exclude it $pages = array(); if ($id == $start || (!$glob && page_exists($start))) { $pages[] = $start; } foreach ($list as $item) { if ($item['id'] == $start) continue; if ($item['id'] != $id) { if ($glob && !preg_match('/' . $glob . '/', noNS($item['id']))) continue; if (isHiddenPage($item['id'])) continue; } $pages[] = $item['id']; } $cnt = count($pages); if ($cnt < 2) return true; // there are no other doc in this namespace // a page that is not in the list (eg. preview of a new page) goes to the end $pos = array_search($id, $pages, true); if ($pos === false) $pos = $cnt; $first = $pos > 0 ? $pages[0] : ''; $prev = $pos > 0 ? $pages[$pos - 1] : ''; $next = $pos < $cnt - 1 ? $pages[$pos + 1] : ''; $last = $pos < $cnt - 1 ? $pages[$cnt - 1] : ''; ===== Für die nächste KI ===== pagenav ist im Dev-Wiki lokal gepatcht. Vor einem Update des Plugins oder beim Umzug auf das Produktivsystem an diese Seite denken. Sonst weiter laut [[ki:edwiki:struktur]] (Teil 7b).