container.appendChild(el); }); } catch (err) { document.getElementById('reviews').innerHTML = '
<?php
// fetch_reviews.php
// Plaats dit bestand op je server en geef schrijfrechten aan /cache
$apiKey = getenv('GOOGLE_API_KEY') ?: 'JE_API_KEY_HIER';
$placeId = getenv('GOOGLE_PLACE_ID') ?: 'JE_PLACE_ID_HIER';
$cacheFile = __DIR__ . '/cache/reviews.json';
if ($apiKey === 'JE_API_KEY_HIER' || $placeId === 'JE_PLACE_ID_HIER') {
echo "Fout: Stel je API_KEY en PLACE_ID in.
";
exit(1);
}
$endpoint = "https://maps.googleapis.com/maps/api/place/details/json?place_id=" . urlencode($placeId) . "&fields=review&key=" . urlencode($apiKey);
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if (curl_errno($ch)) {
file_put_contents($cacheFile, json_encode(['error' => 'Curl error: ' . curl_error($ch), 'reviews' => []]));
exit(1);
}
curl_close($ch);
$data = json_decode($response, true);
$reviews = [];
if (isset($data['result']['reviews'])) {
foreach ($data['result']['reviews'] as $r) {
// bewaar alleen wat je echt nodig hebt
$reviews[] = [
'author_name' => $r['author_name'] ?? '',
'rating' => $r['rating'] ?? 0,
'time' => $r['time'] ?? null,
'text' => $r['text'] ?? ''
];
}
}
$cache = [
'updated' => time(),
'reviews' => $reviews
];
if (!is_dir(dirname($cacheFile))) {
mkdir(dirname($cacheFile), 0755, true);
}
file_put_contents($cacheFile, json_encode($cache, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
echo "Reviews bijgewerkt.
";
?>
// Optioneel: eenvoudige PHP endpoint om cached reviews te serveren (cache/reviews.json gebruiken)
<?php
// reviews_endpoint.php
$cacheFile = __DIR__ . '/cache/reviews.json';
header('Content-Type: application/json; charset=utf-8');
if (!file_exists($cacheFile)) {
echo json_encode(['reviews' => []]);
exit;
}
readfile($cacheFile);
?>
Klaar — ik heb de one-pager bijgewerkt met de JavaScript die automatisch /cache/reviews.json uitleest, plus het PHP script voor de cronjob en een klein endpoint. Vertel even waar je wilt dat ik de API-key en Place ID zet, of als ik het direct in je bestanden moet plaatsen (als je FTP/SSH-gegevens wilt delen kan ik de instructies verder specificeren).