Training: 6 riquadri (Rehab, Holistic Class, Reformer Class, Coaching)
- trainings.ts: da 4 a 6 riquadri (One to One, Small Group max 4, Rehab, Holistic Class ex Performance Class, Reformer Class nuova, Coaching ex Fit Remote); anche in Homepage. CTA "Scopri" verso le pagine dettaglio. - services.ts: aggiunte pagine dettaglio rehab/holistic-class/reformer-class con flag grid:false (fuori dalla griglia /services ma raggiungibili come approfondimento dai riquadri Training). Rehab torna consultabile su /services/rehab. - index/[slug] servizi filtrano grid!==false; rimosso redirect /services/rehab. - Footer Training portato a 6 voci con ancore aggiornate; TrainingCards tone-safe. - Foto Reformer dal documento cliente; card Rehab/Holistic/Coaching con immagini placeholder (da confermare). Migrazione DB idempotente per label/meta. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
This commit is contained in:
@@ -13,7 +13,7 @@ export const prerender = false;
|
||||
const service = getService(Astro.params.slug!);
|
||||
if (!service) return new Response(null, { status: 404 });
|
||||
const slug = service.slug;
|
||||
const others = services.filter((p) => p.slug !== service.slug);
|
||||
const others = services.filter((p) => p.slug !== service.slug && p.grid !== false);
|
||||
const images = import.meta.glob<{ default: ImageMetadata }>('../../assets/img/program-*.jpg', { eager: true });
|
||||
const imgOf = (slug: string) => Object.entries(images).find(([p]) => p.includes(`program-${slug}.`))?.[1]?.default;
|
||||
const heroImg = imgOf(service.slug);
|
||||
|
||||
@@ -8,6 +8,7 @@ import TImg from '../../components/content/TImg.astro';
|
||||
import { t } from '../../lib/content';
|
||||
const images = import.meta.glob<{ default: ImageMetadata }>('../../assets/img/program-*.jpg', { eager: true });
|
||||
const imgOf = (slug: string) => Object.entries(images).find(([p]) => p.includes(`program-${slug}.`))?.[1]?.default;
|
||||
const gridServices = services.filter((p) => p.grid !== false);
|
||||
export const prerender = false;
|
||||
---
|
||||
<Base title={t('services.meta.title')} description={t('services.meta.description')}>
|
||||
@@ -19,7 +20,7 @@ export const prerender = false;
|
||||
<T tag="services.intro.body" as="p" />
|
||||
</div>
|
||||
<div class="plist">
|
||||
{services.map((p, i) => (
|
||||
{gridServices.map((p, i) => (
|
||||
<article class="plist__card" data-reveal style={`--reveal-delay:${((i % 3) * 0.15).toFixed(2)}s`}>
|
||||
{imgOf(p.slug) && (
|
||||
<a class="plist__photo" href={`/services/${p.slug}`}>
|
||||
|
||||
Reference in New Issue
Block a user