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

@ -74,7 +74,7 @@
function initTabs() {
const tabButtons = document.querySelectorAll('.nav--tabs__btn');
const containers = document.querySelectorAll('.btn--donation__container');
const containers = document.querySelectorAll('.donation-grid');
tabButtons.forEach((button, index) => {
button.addEventListener('click', () => {
@ -91,9 +91,9 @@
function initDonationButtons() {
const oneOffContainer = document.querySelector(
'[data-donnation="one-off"]'
'[data-donation="one-off"]'
);
const oneOffButtons = oneOffContainer.querySelectorAll('.btn--donation');
const oneOffButtons = oneOffContainer.querySelectorAll('.donation-btn');
oneOffButtons.forEach((button, index) => {
if (index < AMOUNTS.oneOff.length) {
@ -118,9 +118,9 @@
});
const monthlyContainer = document.querySelector(
'[data-donnation="monthly"]'
'[data-donation="monthly"]'
);
const monthlyButtons = monthlyContainer.querySelectorAll('.btn--donation');
const monthlyButtons = monthlyContainer.querySelectorAll('.donation-btn');
monthlyButtons.forEach((button, index) => {
if (index < AMOUNTS.monthly.length) {

View file

@ -45,7 +45,7 @@ function updateGaugeDisplay(campaignData) {
}
const countElement = document.querySelector(
'#gauge--infos__donateurs .value'
'#gauge-info--supporters .value'
);
if (countElement) {
countElement.textContent = totalSupport;

View file

@ -81,7 +81,7 @@
}
function initNewsletterForms() {
const forms = document.querySelectorAll('.form__newsletter');
const forms = document.querySelectorAll('.newsletter-form');
forms.forEach((form) => form.addEventListener('submit', handleFormSubmit));
}

View file

@ -27,7 +27,7 @@ function headerShrink() {
}
function toggleDonationButton() {
const btn = document.getElementById('btn--don__mobile');
const btn = document.getElementById('donation-cta-mobile');
const section = document.getElementById('section__donation');
const footer = document.getElementById('site-footer');
@ -61,7 +61,7 @@ function videos(){
let section = document.getElementById("section__video");
console.log(section);
let videoslinks = document.querySelectorAll(".videos__li");
let videoslinks = document.querySelectorAll(".testimony-item");
videoslinks.forEach(function (video, index) {
video.addEventListener("click", (event) => {