====== 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).