save
All checks were successful
Deploy / Deploy to Production (push) Successful in 11s

This commit is contained in:
isUnknown 2026-01-06 11:19:25 +01:00
parent 522d975a3a
commit 48e7f21c71
37 changed files with 2595 additions and 1348 deletions

View file

@ -1,55 +0,0 @@
<?php
return function($page) {
$config = kirby()->option('donorbox');
$apiKey = $config['api_key'];
$campaignSlug = $config['campaign_slug'];
// Valeurs par défaut
$data = [
'amount_raised' => 0,
'donor_count' => 0,
'goal_amount' => 20000, // Objectif par défaut
'percentage' => 0,
'campaign_url' => $config['campaign_url']
];
// Si la clé API est configurée, récupérer les données en temps réel
if (!empty($apiKey)) {
try {
$apiUrl = $config['api_base_url'] . '/campaigns/' . $campaignSlug;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200 && $response) {
$campaignData = json_decode($response, true);
if ($campaignData) {
$data['amount_raised'] = $campaignData['amount_raised'] ?? 0;
$data['donor_count'] = $campaignData['donor_count'] ?? 0;
$data['goal_amount'] = $campaignData['goal_amount'] ?? 20000;
// Calculer le pourcentage
if ($data['goal_amount'] > 0) {
$data['percentage'] = round(($data['amount_raised'] / $data['goal_amount']) * 100, 0);
}
}
}
} catch (Exception $e) {
// En cas d'erreur, on garde les valeurs par défaut
// Optionnel : logger l'erreur
}
}
return $data;
};

View file

@ -1,3 +1,63 @@
<script src="<?= url('assets/js/script.js') ?>"></script>
<footer id="site-footer">
<div class="site-footer__container">
<div class="footer__newsletter">
<div class="logo" w3-include-html="/assets/index-logo.svg"></div>
<p>
Recevez les dernières enquêtes et actualités dIndex directement
dans votre boîte mail.
</p>
<p>Inscrivez-vous à la newsletter</p>
<form class="form__newsletter">
<input
type="email"
name="email"
placeholder="Votre adresse e-mail"
required
/>
<button class="btn--newletter" type="submit" aria-label="sinscrire">
<span class="txt">Sinscrire</span>
<span class="icon">
<svg
clip-rule="evenodd"
fill-rule="evenodd"
stroke-linejoin="round"
stroke-miterlimit="2"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="m14.523 18.787s4.501-4.505 6.255-6.26c.146-.146.219-.338.219-.53s-.073-.383-.219-.53c-1.753-1.754-6.255-6.258-6.255-6.258-.144-.145-.334-.217-.524-.217-.193 0-.385.074-.532.221-.293.292-.295.766-.004 1.056l4.978 4.978h-14.692c-.414 0-.75.336-.75.75s.336.75.75.75h14.692l-4.979 4.979c-.289.289-.286.762.006 1.054.148.148.341.222.533.222.19 0 .378-.072.522-.215z"
fill-rule="nonzero"
/>
</svg>
</span>
</button>
</form>
<p class="p__small">
En vous inscrivant, vous acceptez les
<a target="_blank" href="https://www.index.ngo/mentions-legales/"
>conditions dutilisation</a
>
dIndex qui vous informent notamment des droits dont vous disposez
sur vos données personnelles.
</p>
</div>
<div class="footer__socials">
<p>Suivez Index sur les réseaux sociaux</p>
<div class="container" w3-include-html="/components/socials.html"></div>
</div>
<div class="footer__mentions">
<p>
© 2025 Index Investigation |
<a target="_blank" href="https://www.index.ngo/mentions-legales/">Mentions légales</a>
</p>
</div>
</div>
</footer>
</body>
</html>

View file

@ -13,17 +13,48 @@
</title>
<script src="<?= url('assets/js/script.js') ?>"></script>
<script>
window.SnipcartSettings = {
publicApiKey: 'Y2QwMmJiZGItMDFiYi00MTg2LTg2ODItOWNlNTIyNGIzYWY5NjM4OTQ0ODU4NDY5NDcyNTU0',
loadStrategy: 'on-user-interaction',
modalStyle: "side",
templatesUrl: "<?= url('assets/html/snipcart-templates.html') ?>",
};
(()=>{var c,d;(d=(c=window.SnipcartSettings).version)!=null||(c.version="3.0");var s,S;(S=(s=window.SnipcartSettings).timeoutDuration)!=null||(s.timeoutDuration=2750);var l,p;(p=(l=window.SnipcartSettings).domain)!=null||(l.domain="cdn.snipcart.com");var w,u;(u=(w=window.SnipcartSettings).protocol)!=null||(w.protocol="https");var f=window.SnipcartSettings.version.includes("v3.0.0-ci")||window.SnipcartSettings.version!="3.0"&&window.SnipcartSettings.version.localeCompare("3.4.0",void 0,{numeric:!0,sensitivity:"base"})===-1,m=["focus","mouseover","touchmove","scroll","keydown"];window.LoadSnipcart=o;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",r):r();function r(){window.SnipcartSettings.loadStrategy?window.SnipcartSettings.loadStrategy==="on-user-interaction"&&(m.forEach(t=>document.addEventListener(t,o)),setTimeout(o,window.SnipcartSettings.timeoutDuration)):o()}var a=!1;function o(){if(a)return;a=!0;let t=document.getElementsByTagName("head")[0],e=document.querySelector("#snipcart"),i=document.querySelector(`src[src^="${window.SnipcartSettings.protocol}://${window.SnipcartSettings.domain}"][src$="snipcart.js"]`),n=document.querySelector(`link[href^="${window.SnipcartSettings.protocol}://${window.SnipcartSettings.domain}"][href$="snipcart.css"]`);e||(e=document.createElement("div"),e.id="snipcart",e.setAttribute("hidden","true"),document.body.appendChild(e)),v(e),i||(i=document.createElement("script"),i.src=`${window.SnipcartSettings.protocol}://${window.SnipcartSettings.domain}/themes/v${window.SnipcartSettings.version}/default/snipcart.js`,i.async=!0,t.appendChild(i)),n||(n=document.createElement("link"),n.rel="stylesheet",n.type="text/css",n.href=`${window.SnipcartSettings.protocol}://${window.SnipcartSettings.domain}/themes/v${window.SnipcartSettings.version}/default/snipcart.css`,t.prepend(n)),m.forEach(g=>document.removeEventListener(g,o))}function v(t){!f||(t.dataset.apiKey=window.SnipcartSettings.publicApiKey,window.SnipcartSettings.addProductBehavior&&(t.dataset.configAddProductBehavior=window.SnipcartSettings.addProductBehavior),window.SnipcartSettings.modalStyle&&(t.dataset.configModalStyle=window.SnipcartSettings.modalStyle),window.SnipcartSettings.currency&&(t.dataset.currency=window.SnipcartSettings.currency),window.SnipcartSettings.templatesUrl&&(t.dataset.templatesUrl=window.SnipcartSettings.templatesUrl))}})();
</script>
</head>
<body data-template="<?= $page->template() ?>">
<?php snippet('nav') ?>
<header id="site-header">
<div class="site-header__inner">
<h1 id="site-title">
<a
href="https://www.index.ngo/"
aria-label="Retour à laccueil"
title="aller au site d'Index"
>
<?= svg('assets/images/index-logo.svg') ?>
</a>
</h1>
<!-- Note: toujours mettre .title-page (jen ai besoin pour la mise en forme) mais le laisser vide sur la plupart des pages sauf les pages enquêtes -->
<p class="title-page">Lexécution de Nidal et Khaled Amirah à Naplouse</p>
<nav id="nav-highlight">
<ul>
<li><a href="#">Enquêtes</a></li>
<li><a href="#">Impact</a></li>
<li class="soutenir"><a targer="_blank" href="https://soutenir.index.ngo/">Soutenez-nous</a></li>
</ul>
</nav>
<button id="theme-toggle">
<svg style="fill: var(--color-txt)" class="switch" width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22 41C32.4934 41 41 32.4934 41 22C41 11.5066 32.4934 3 22
3C11.5066 3 3 11.5066 3 22C3 32.4934 11.5066 41 22 41ZM7 22C7
13.7157 13.7157 7 22 7V37C13.7157 37 7 30.2843 7 22Z"></path>
</svg>
</button>
<div id="lang-toggle">
<button disabled>FR</button>
<button><a href="/en">EN</a></button>
</div>
<button id="menu-toggle">
<span class="open"><?= svg('assets/icons/menu.svg') ?></span>
<span class="close"><?= svg('assets/icons/close.svg') ?></span>
</button>
</div>
</header>

View file

@ -1,13 +1,10 @@
<?php snippet('header') ?>
<script type="text/javascript"
defer=""
src="https://donorbox.org/install-popup-button.js"
id="donorbox-popup-button-installer">
</script>
<a class="dbox-donation-button" id="preview_inline_popup_button" href="https://donorbox.org/soutenir-index-en-2024?amount=15&default_interval=m" style="margin-bottom: 2rem; background: rgb(0, 0, 0); color: rgb(255, 255, 255); text-decoration: none; font-family: Verdana, sans-serif; display: flex; gap: 8px; width: fit-content; font-size: 16px; border-radius: 5px; line-height: 24px; padding: 8px 24px;"><img src="https://donorbox.org/images/white_logo.svg">
Donner 15 mensuellement
</a>
<a class="dbox-donation-button" id="preview_inline_popup_button" href="https://donorbox.org/soutenir-index-en-2024?amount=20&default_interval=o" style="background: rgb(0, 0, 0); color: rgb(255, 255, 255); text-decoration: none; font-family: Verdana, sans-serif; display: flex; gap: 8px; width: fit-content; font-size: 16px; border-radius: 5px; line-height: 24px; padding: 8px 24px;"><img src="https://donorbox.org/images/white_logo.svg">
Donner 10 ponctuellement
</a>
<main>
<p>
Lobjet central de notre action est de concourir à la manifestation de la vérité dans des affaires celle-ci est entravée par des intérêts de pouvoir.
Nos enquêtes portent principalement principalement sur les cas de violences policières, en France comme à l'international, ainsi que sur les violations des droits humains au sens large. Nous intervenons également dans les situations où nos techniques d'investigation numérique peuvent permettre d'établir les faits autour d'une controverse d'intérêt public, qu'elle soit historique ou contemporaine.
Notre champ daction est avant tout public. Nos enquêtes et rapports dexpertise sont souvent publiés en partenariat avec d'autres médias d'information et sont régulièrement utilisés dans les procédures judiciaires sur les affaires concernées, contribuant ainsi à l'établissement des faits.
Nous œuvrons également à la diffusion des techniques et des méthodes de linvestigation en sources ouvertes (OSINT) au sein de la société civile. Dans le cadre de notre programme de formation, nous animons des ateliers avec des collectifs citoyens, des ONG, des universités et le grand public. Enfin, nous intervenons régulièrement dans la sphère publique pour présenter nos travaux et notre approche.
</p>
</main>
<?php snippet('footer') ?>