PHP dynamique + cache JSON, nettoyage CSS/HTML, CI Forgejo

- Renommage classes/IDs (BEM cohérent, anglais, noms sémantiques)
- Correction HTML : h3→h2 FAQ, button>a→a[role=button] CTA mobile
- Conversion index.html → index.php (FR/EN) avec cache JSON depuis API Kirby
- Pages merci/thanks converties en PHP dynamique
- Ajout includes/cache.php + includes/config.php (cache TTL 5min)
- Ajout CI Forgejo (deploy FTP via lftp)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-04-12 08:00:58 +02:00
parent 119c98edab
commit 322d9136b6
29 changed files with 917 additions and 1485 deletions

View file

@ -89,36 +89,36 @@
<main>
<div class="col-left">
<section id="section__hero">
<p class="p__baseline-big">
<p class="hero-heading">
To keep investigating, <br />Index needs your help
</p>
<div class="gauge__container">
<div class="gauge-container">
<div id="gauge" style="--pourcent: 0%"></div>
<div class="gauge--infos" id="gauge--infos__donateurs">
<div class="gauge-info" id="gauge-info--supporters">
<p class="property">Regular supporters</p>
<p class="value">0</p>
</div>
<div class="gauge--infos" id="gauge--infos__objectif">
<div class="gauge-info" id="gauge-info--goal">
<p class="property">Goal</p>
<p class="value">500</p>
</div>
</div>
<p class="p__baseline-big">
<p class="hero-heading">
Goal: 500 Supporters<br /><strong>by 21 June 2026</strong>
</p>
</section>
<section id="section__baseline">
<p class="p__baseline">
<p class="subheading">
Index is a not-for-profit, <br />digital investigation NGO.<br />Your
support guarantees our independence.
</p>
</section>
<section id="section__video">
<h2 class="section__heading">Why support Index? Hear from those at the heart of it.</h2>
<h2 class="section-heading">Why support Index? Hear from those at the heart of it.</h2>
<div class="video-container">
<iframe
src="https://player.vimeo.com/video/1136957715?h=215c38e160&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&autoplay=1"
@ -131,7 +131,7 @@
</section>
<section id="section__questions">
<h3 class="section__heading">Frequently Asked Questions</h3>
<h2 class="section-heading">Frequently Asked Questions</h2>
<details>
<summary>What are Index Supporters?</summary>
@ -343,49 +343,49 @@
</nav>
<div
data-donnation="one-off"
class="btn--donation__container"
data-donation="one-off"
class="donation-grid"
>
<button class="btn--donation">
<button class="donation-btn">
<p class="bold">200&#8239;</p>
<p class="small">That is 68&#8239;€ after tax</p>
</button>
<button class="btn--donation btn--donation__grow-1">
<button class="donation-btn donation-btn--wide">
<p class="bold">100&#8239;</p>
<p class="small">That is 34&#8239;€ after tax</p>
</button>
<button class="btn--donation btn--donation__grow-1">
<button class="donation-btn donation-btn--wide">
<p class="bold">50&#8239;</p>
<p class="small">That is 17&#8239;€ after tax</p>
</button>
<button class="btn--donation btn--donation__grow-1">
<button class="donation-btn donation-btn--wide">
<p class="bold">20&#8239;</p>
<p class="small">That is 6.80&#8239;€ after tax</p>
</button>
<button class="btn--donation btn--donation__grow-2">
<button class="donation-btn donation-btn--full">
<p class="bold">Choose your amount</p>
<p class="small">With 66&#8239;% tax deduction</p>
</button>
</div>
<div data-donnation="monthly" class="btn--donation__container is-selected">
<button class="btn--donation">
<div data-donation="monthly" class="donation-grid is-selected">
<button class="donation-btn">
<p class="bold">5€/month</p>
<p class="small">That is X€ after taxes</p>
</button>
<button class="btn--donation btn--donation__grow-1">
<button class="donation-btn donation-btn--wide">
<p class="bold">10€/month</p>
<p class="small">That is X€ after taxes</p>
</button>
<button class="btn--donation btn--donation__grow-1">
<button class="donation-btn donation-btn--wide">
<p class="bold">20€/month</p>
<p class="small">That is X€ after taxes</p>
</button>
<button class="btn--donation btn--donation__grow-1">
<button class="donation-btn donation-btn--wide">
<p class="bold">50€/month</p>
<p class="small">That is X€ after taxes</p>
</button>
<button class="btn--donation btn--donation__grow-2">
<button class="donation-btn donation-btn--full">
<p class="bold">Choose your amount</p>
<p class="small">With tax deduction</p>
</button>
@ -393,60 +393,59 @@
</section>
<section id="section__comments">
<h2 class="section__heading">Donor comments</h2>
<h2 class="section-heading">Donor comments</h2>
<div class="swiper" id="comments-slider">
<div class="swiper-wrapper">
<div class="swiper-slide comment">
<p class="comment__text">
<p class="comment-text">
You are doing admirable work. Thank you for helping Justice
with a capital J. Keep up the good work!
</p>
<p class="comment__name">Olivier</p>
<p class="comment-name">Olivier</p>
</div>
<div class="swiper-slide comment">
<p class="comment__text">
<p class="comment-text">
Thank you for the beneficial, valuable, and extremely
professional work you do.
</p>
<p class="comment__name">Myriam</p>
<p class="comment-name">Myriam</p>
</div>
<div class="swiper-slide comment">
<p class="comment__text">
<p class="comment-text">
You are truly serving the public good, and the methods you use
deserve to be widely known.
</p>
<p class="comment__name">Frédéric</p>
<p class="comment-name">Frédéric</p>
</div>
<div class="swiper-slide comment">
<p class="comment__text">
<p class="comment-text">
Thank you for continuing your tireless quest to reveal the
truths that are being kept from us.
</p>
<p class="comment__name">Pauline</p>
<p class="comment-name">Pauline</p>
</div>
<div class="swiper-slide comment">
<p class="comment__text">
<p class="comment-text">
Index investigators do essential work for democracy and
justice. Through this citizen support, I express my gratitude
for their commitment and rigor.
</p>
<p class="comment__name">Anne</p>
<p class="comment-name">Anne</p>
</div>
</div>
<div class="swiper-pagination comments-slider__dots"></div>
<div class="swiper-pagination comments-dots"></div>
</div>
</section>
</div>
<div id="btn--don__mobile">
<button class="btn--don">
<a href="#section__donation">
<div id="donation-cta-mobile">
<a href="#section__donation" class="donation-cta" role="button">
<span class="txt">Donate</span>
<span class="icon">
<svg
@ -463,21 +462,20 @@
/>
</svg>
</span>
</a>
</button>
</a>
</div>
</main>
<footer id="site-footer">
<div class="site-footer__container">
<div class="footer__newsletter">
<div class="footer-container">
<div class="footer-newsletter">
<p>
Receive the latest investigation and news from Index directly in
your inbox.
</p>
<p>Sign up for the newsletter</p>
<form class="form__newsletter">
<form class="newsletter-form">
<input
type="email"
name="email"
@ -504,7 +502,7 @@
</button>
</form>
<p class="p__small">
<p class="text-small">
By signing up, you agree to Index's
<a target="_blank" href="https://www.index.ngo/mentions-legales/"
>terms of use</a
@ -512,10 +510,10 @@
</p>
</div>
<div class="footer__socials">
<div class="footer-socials">
<p>Follow Index on social media</p>
<ul id="list-socials">
<ul id="socials-list">
<li>
<a
href="https://www.youtube.com/index-ngo"
@ -696,8 +694,8 @@
</ul>
</div>
<div class="footer__mentions">
<p class="p__small">
<div class="footer-mentions">
<p class="text-small">
© 2025 Index Investigation |
<a target="_blank" href="https://www.index.ngo/mentions-legales/"
>Legal notices</a
@ -716,7 +714,7 @@
disableOnInteraction: false,
},
pagination: {
el: '.comments-slider__dots',
el: '.comments-dots',
clickable: true,
},
});