@@borisbaer
if (!empty($_GET['subpage'])) { $current = $_GET['subpage']; }
Das tue ich, weil ich im Folgenden diese Variable benötige, nämlich bspw. an dieser Stelle:
<a class="<?= $current === 'releases' ? 'current' : ''; ?>" href="releases">Releases</a>
Das Umkopieren von $_GET['subpage']
in eine Variable macht keinen Sinn. Du verwendest einfach bei jedem Vergleich $_GET['subpage']
und gut ist.
Wenn also der aktuelle URL-Parameter mit dem jeweiligen if clause für
$current
übereinstimmt, dann bekommt dieser Link die classcurrent
, wird also hervorgehoben.
Eine Klasse current
brauchst du dann nicht; du kannst den Attributselektor [aria-current="page"]
zum Stylen verwenden. (Ein Klassenselektor ist auch nur eine andere Schreibweise für einen Attributselektor.)
Was du nicht tun solltest: die aktuelle Seite verlinken. Stattdessen den Link auf den Hauptinhalt setzen (also genau dorthin, wo auch der Skip-Link hinführt).
Live und in Schwarz/Weiß zu sehen, wo nie ein Mensch zuvor gewesen ist. Das PHP-Script, das die Seiten generiert, kann man sich auch ansehen.
Ich hab letztens was darüber erzählt, zu sehen ist das auf Folie 7.
Wenn es dir nicht behagt, wiederholt $_GET['subpage']
zu verwenden und damit immer wieder dasselbe zu tun, kannst du das auch mit einer Schleife machen; so in etwa:
<?php
$subpages = [
[ 'title' => 'Spiel', 'path' => 'game' ],
⋮
];
?>
<nav>
<ul>
<?php foreach ($subpages as $subpage): ?>
<li>
<a
<?php if ($subpage['path'] == $_GET['subpage']): ?>
href="#main"
aria-current="page"
<?php elseif: ?>
href="$subpage['path']"
<?php endif; ?>
>
<?php echo htmlspecialchars($subpage['title']); ?>
</a>
</li>
<?php endforeach; ?>
</ul>
</nav>
🖖 Живіть довго і процвітайте
When the power of love overcomes the love of power the world will know peace.
— Jimi Hendrix