Turnen: Tab-Navigation für Gruppen mit vielen Trainingszeiten
group-schedule um eine Tab-Leiste (group-tabs) erweitert: bei Disziplinen mit vielen Gruppen (z. B. Eltern-Kind-Turnen) werden die Gruppen als Tabs gruppiert statt endlos gestapelt. JS (group-tabs.js) als progressive enhancement — ohne JS bleiben alle Panels sichtbar. Begleitend Feinschliff an group-card/-list/schedule-row. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HGzc6GhWhmLJt1jC2q1SRZ
This commit is contained in:
@@ -135,14 +135,30 @@ $soleNote = $single ? ($groups[0]['note'] ?? '') : '';
|
||||
<section class="section group-list-section" id="gruppen">
|
||||
<div class="container">
|
||||
<h2 class="group-list__title"><?= e($groupsTitle) ?></h2>
|
||||
<div class="group-list <?= $rich ? 'group-list--stacked' : 'group-list--grid' ?>">
|
||||
<?php foreach ($groups as $g): ?>
|
||||
<article class="group-card">
|
||||
<?php if ($rich): ?>
|
||||
<div class="group-tabs" data-group-tabs>
|
||||
<div class="group-tabs__bar" role="tablist" aria-label="<?= e($groupsTitle) ?>">
|
||||
<?php foreach ($groups as $i => $g): ?>
|
||||
<button class="group-tabs__tab" role="tab" type="button"
|
||||
id="gtab-<?= $i ?>"
|
||||
aria-controls="gpanel-<?= $i ?>"
|
||||
aria-selected="<?= $i === 0 ? 'true' : 'false' ?>"
|
||||
><?= e($g['name']) ?></button>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php foreach ($groups as $i => $g): ?>
|
||||
<article class="group-card group-tabs__panel" role="tabpanel"
|
||||
id="gpanel-<?= $i ?>"
|
||||
aria-labelledby="gtab-<?= $i ?>"
|
||||
tabindex="0"
|
||||
>
|
||||
<div class="group-card__body">
|
||||
<h3 class="group-card__name"><?= e($g['name']) ?></h3>
|
||||
<div class="group-card__header">
|
||||
<h3 class="group-card__name"><?= e($g['name']) ?></h3>
|
||||
<?php if (!empty($g['level'])): ?>
|
||||
<p class="group-card__level"><?= e($g['level']) ?></p>
|
||||
<p class="group-card__level"><?= e($g['level']) ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php if (!empty($g['intro'])): ?>
|
||||
<p class="group-card__intro"><?= e($g['intro']) ?></p>
|
||||
<?php endif; ?>
|
||||
@@ -175,6 +191,29 @@ $soleNote = $single ? ($groups[0]['note'] ?? '') : '';
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<div class="group-list group-list--grid">
|
||||
<?php foreach ($groups as $g): ?>
|
||||
<article class="group-card">
|
||||
<div class="group-card__body">
|
||||
<div class="group-card__header">
|
||||
<h3 class="group-card__name"><?= e($g['name']) ?></h3>
|
||||
<?php if (!empty($g['level'])): ?>
|
||||
<p class="group-card__level"><?= e($g['level']) ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php if (!empty($g['sessions'])): ?>
|
||||
<div class="group-card__schedule">
|
||||
<ul class="schedule-list">
|
||||
<?php foreach ($g['sessions'] as $s): $renderSession($s); endforeach; ?>
|
||||
</ul>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if ($footnote !== ''): ?>
|
||||
<p class="group-list__footnote text-muted"><?= e($footnote) ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user