- Remplacement iframe par div#youtube-player avec data-video-id
- ID vidéo extrait du videoUrl via regex côté PHP
- Chargement de l'API YouTube IFrame au load
- Création du player + playVideo() dans onReady au clic
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- investigation.php : figcaption déplacé à l'intérieur des <figure>
(correction HTML + meilleure capture par la lightbox)
- swipers.js : loop: true sur toutes les galeries
- _investigation_content.scss : max-height 75vh sur les images
- _figures.scss : reformatage indentation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Lightbox custom avec Swiper (pas de nouvelle dépendance)
- Déclenché sur les figures éligibles uniquement (exclut figures dans
<a> et dans les cards avec .link-block)
- Galeries : ouvre toutes les slides au bon index
- Fermeture : bouton ✕, clic overlay, Echap
- Captions : figcaption, p.caption (dans figure ou sibling)
- Cursor zoom-in desktop uniquement via figure[data-lightbox]
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Pattern `api/newsletter` → `newsletter/subscribe`
- Ajout de config.localhost.php (gitignored) pour le dev local
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Route Kirby `api/newsletter` (proxy vers l'API Brevo) dans site/config/routes/newsletter.php
- JS de soumission du formulaire dans assets/js/newsletter-brevo.js
- Chargement du script dans le template newsletter.php
- Clé API dans config.index.ngo.php (gitignored)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Header click removes menu-open (stopPropagation on toggle button
to preserve its toggle behavior)
- cursor: pointer on site-header when menu is open
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add #menu-overlay div (fixed, full screen, z-index below menu)
- Overlay fades in/out via opacity+visibility transition (cursor: pointer)
- Click on overlay closes the menu
- Remove opacity: 0.1 hack on main/footer/etc. when menu-open
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Extract logic into dedicated functions for better readability
- Create handleDonationIntervalChange() as main click handler
- Separate concerns: updateLinkInterval, updateAmountDisplay, switchActiveTab
- Remove unnecessary comments in favor of clear function names
- Update footer to link script.js instead of donation-tabs.js
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Donorbox configuration in site/config/config.php with API settings
- Create controller for support page to fetch campaign data from API
- Update support.php template with dynamic donation buttons and gauge
- Transform static buttons into dynamic links with proper URL parameters
- Add JavaScript for tab switching between one-time and monthly donations
- Calculate donation percentage and display real-time campaign stats
The donation buttons now link directly to Donorbox with pre-filled amounts
and intervals. API integration is ready but requires API key configuration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>