(function () { const API_BASE = 'https://marmarislocal.com'; // Sayfadaki tüm widget container'larını bul const containers = document.querySelectorAll('[data-marmaris-widget]'); containers.forEach(function (container) { // data-marmaris-widget = marker (boolean), data-neighborhood = bölge slug (opsiyonel) const neighborhood = container.dataset.neighborhood || ''; const category = container.dataset.category || ''; const limit = parseInt(container.dataset.limit || '3', 10); const lang = container.dataset.lang || document.documentElement.lang || 'tr'; container.innerHTML = '
Yükleniyor...
'; var params = new URLSearchParams(); if (neighborhood) params.set('neighborhood', neighborhood); if (category) params.set('category', category); fetch(API_BASE + '/api/widget/nearby?' + params) .then(function (res) { if (!res.ok) throw new Error('fetch failed'); return res.json(); }) .then(function (data) { // API { listings: [...] } formatında dönüyor var items = (data.listings || []).slice(0, limit); if (!items || items.length === 0) { container.innerHTML = ''; return; } render(container, items, lang, neighborhood); }) .catch(function () { // Sessizce gizle — kırık widget partner sitesinde kötü görünür container.innerHTML = ''; }); }); function getName(item, lang) { if (lang === 'en' && item.nameEn) return item.nameEn; if (lang === 'ru' && item.nameRu) return item.nameRu; return item.name; } function render(container, items, lang, neighborhood) { var labels = { tr: { title: 'Bölgede Öneriler', by: 'Marmaris Local tarafından' }, en: { title: 'Recommended Nearby', by: 'by Marmaris Local' }, ru: { title: 'Рекомендации поблизости', by: 'от Marmaris Local' } }; var t = labels[lang] || labels.tr; var cards = items.map(function (item) { var href = API_BASE + '/tr/' + item.categorySlug + '/' + item.slug + '?utm_source=widget&utm_medium=partner'; var name = getName(item, lang); var img = item.coverImage ? '' : ''; var meta = item.categoryName + (item.rating ? ' · ★ ' + Number(item.rating).toFixed(1) : ''); return '' + img + '
' + '
' + name + '
' + '
' + meta + '
' + '
' + '
'; }).join(''); container.innerHTML = '
' + '
' + '

' + t.title + '

' + '' + t.by + '' + '
' + '
' + cards + '
' + '
'; } })();