Отзывы

This commit is contained in:
2026-05-11 01:25:21 +05:00
parent 58a80da16f
commit 33a10fbc6e
2 changed files with 6 additions and 47 deletions

View File

@@ -344,16 +344,6 @@
<div class="abkhazian-pattern"></div>
</div>
<div class="reviews-stats" id="reviewsStats" style="display: none;">
<div class="reviews-avg">
<div class="reviews-avg-number" id="reviewsAvgNumber">0.0</div>
<div>
<div class="reviews-avg-stars" id="reviewsAvgStars"></div>
<div class="reviews-avg-count" id="reviewsAvgCount"></div>
</div>
</div>
</div>
<div class="reviews-grid" id="reviewsGrid"></div>
<div class="reviews-empty" id="reviewsEmpty" style="display: none;">
@@ -373,8 +363,8 @@
<section class="section section-light" id="host">
<div class="container">
<div class="section-header animate-on-scroll">
<div class="section-badge">Ваш хозяин</div>
<h2 class="section-title">Рауф Алексеевич — душа Hotel 777</h2>
<div class="section-badge">Хозяин Hotel 777</div>
<h2 class="section-title">Рауф Алексеевич</h2>
<div class="abkhazian-pattern"></div>
</div>
<div class="host-card animate-on-scroll">
@@ -385,7 +375,6 @@
</div>
</div>
<div class="host-body">
<h3>Рауф Алексеевич</h3>
<p style="font-size: 1.1rem; color: var(--gold); font-weight: 600; margin-bottom: 20px; font-style: italic;">
«Абхазское гостеприимство — это не работа, это образ жизни»
</p>
@@ -393,7 +382,7 @@
Рауф Алексеевич — настоящий хозяин и душа Hotel 777. Он встречает каждого гостя с теплотой и заботой, как родного человека. Всегда подскажет лучшие маршруты по Абхазии, организует экскурсии к самым красивым местам — Новоафонскому монастырю, озеру Рица, Гагрскому парку.
</p>
<p style="font-size: 1rem; color: #666; line-height: 1.7; margin-bottom: 25px;">
Домашняя кухня Рауфа Алексеевича — отдельная достопримечательность гостиницы. Свежие местные продукты, абхазские и русские блюда, приготовленные с душой — абиц, ачапа, хачапури, шашлык и многое другое. Чистые номера, искренняя улыбка и внимание к каждой детали — это то, что делает Hotel 777 особенным.
Домашняя кухня — отдельная достопримечательность гостиницы. Свежие местные продукты, абхазские и русские блюда, приготовленные с душой — абиц, ачапа, хачапури, шашлык и многое другое. Чистые номера, искренняя улыбка и внимание к каждой детали — это то, что делает Hotel 777 особенным.
</p>
<a href="tel:89409270080" class="host-contact">
<i class="fas fa-phone"></i> 8 (940) 927-00-80

View File

@@ -5,7 +5,7 @@ async function loadReviews() {
if (!res.ok) throw new Error('Failed to load reviews');
const data = await res.json();
renderReviews(data.reviews, data.stats);
renderReviews(data.reviews);
} catch (err) {
console.error('Error loading reviews:', err);
document.getElementById('reviewsEmpty').style.display = 'block';
@@ -44,31 +44,19 @@ async function loadCities(countryCode) {
return { popular: [], cities: [] };
}
function renderReviews(reviews, stats) {
function renderReviews(reviews) {
const grid = document.getElementById('reviewsGrid');
const statsEl = document.getElementById('reviewsStats');
const emptyEl = document.getElementById('reviewsEmpty');
if (!grid || !emptyEl) return;
if (!reviews || reviews.length === 0) {
if (statsEl) statsEl.style.display = 'none';
grid.innerHTML = '';
emptyEl.style.display = 'block';
return;
}
emptyEl.style.display = 'none';
if (statsEl) statsEl.style.display = 'flex';
const avgStars = stats.avgStars.toFixed(1);
const avgNumEl = document.getElementById('reviewsAvgNumber');
const avgStarsEl = document.getElementById('reviewsAvgStars');
const avgCountEl = document.getElementById('reviewsAvgCount');
if (avgNumEl) avgNumEl.textContent = avgStars;
if (avgStarsEl) avgStarsEl.innerHTML = I18n.renderStarsStatic(parseFloat(avgStars));
if (avgCountEl) avgCountEl.textContent = `${stats.count} ${getReviewWord(stats.count)}`;
grid.innerHTML = reviews.map(review => {
const initials = I18n.getInitials(review.author_name);
@@ -79,7 +67,7 @@ function renderReviews(reviews, stats) {
const location = countryPart || cityPart ? `${countryPart}${cityPart}` : '';
return `
<div class="review-card animate-on-scroll">
<div class="review-card">
<div class="review-card-header">
<div class="review-author">
<div class="review-avatar">${initials}</div>
@@ -95,27 +83,9 @@ function renderReviews(reviews, stats) {
</div>
`;
}).join('');
setTimeout(() => {
document.querySelectorAll('.review-card.animate-on-scroll').forEach(el => {
el.classList.add('visible');
});
}, 100);
}
function getReviewWord(count) {
const lastTwo = count % 100;
const lastOne = count % 10;
if (I18n.currentLang === 'en') {
return lastTwo === 11 ? 'reviews' : lastOne === 1 ? 'review' : 'reviews';
}
if (lastTwo >= 11 && lastTwo <= 14) return 'отзывов';
if (lastOne === 1) return 'отзыв';
if (lastOne >= 2 && lastOne <= 4) return 'отзыва';
return 'отзывов';
}
function escapeHtml(text) {
const div = document.createElement('div');