(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 = ''
+ '
'
+ '
'
+ cards
+ '
'
+ '
';
}
})();