1(function($) { 2 $(document).ready(function() { 3 const reviews = reviewsData.reviews || []; 4 const settings = reviewsData.settings || {}; 5 6 // СоÑÑиÑовка оÑзÑвов по даÑе, наÑÐ¸Ð½Ð°Ñ Ñ ÑамÑÑ Ð½Ð¾Ð²ÑÑ 7 reviews.sort((a, b) => new Date(b.date) - new Date(a.date)); 8 9 // ÐолиÑеÑÑво оÑзÑвов Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° в завиÑимоÑÑи Ð¾Ñ ÑÑÑÑойÑÑва 10 const reviewsPerPage = settings.reviews_per_load || 3; 11 const initialReviewsDesktop = settings.initial_reviews_desktop || 6; 12 const initialReviewsMobile = settings.initial_reviews_mobile || 3; 13 let currentIndex = 0; 14 15 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÑÑÑойÑÑва 16 function isMobileDevice() { 17 return window.innerWidth <= 768; 18 } 19 20 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾ÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð¾ÑзÑвов 21 function displayReviews(start, end) { 22 const reviewsGrid = $('#SVVReviewsGrid'); 23 reviewsGrid.empty(); // ÐÑиÑÑим ÑекÑÑие оÑзÑÐ²Ñ Ð¿ÐµÑед оÑобÑажением новÑÑ 24 25 const reviewsToShow = reviews.slice(start, end); 26 reviewsToShow.forEach(function(review) { 27 const reviewElement = ` 28 <div class="SVV-review"> 29 <div class="SVV-review-header"> 30 <div class="SVV-avatar" style="background-color: ${review.avatarColor}; color: ${review.avatarTextColor};">${review.avatar}</div> 31 <div class="SVV-name-date"> 32 <div class="SVV-name">${review.name}</div> 33 <div class="SVV-date">${review.date}</div> 34 </div> 35 </div> 36 <div class="SVV-stars">${'â '.repeat(review.stars)}</div> 37 <div class="SVV-content">${review.content}</div> 38 </div> 39 `; 40 reviewsGrid.append(reviewElement); 41 }); 42 43 // ÐÑовеÑка на Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ ÑкÑÑÑÐ¸Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¸ 44 if (end >= reviews.length) { 45 $('#SVVLoadMoreBtn').hide(); 46 } else { 47 $('#SVVLoadMoreBtn').show(); 48 } 49 } 50 51 // ÐниÑиализаÑÐ¸Ñ Ð¾ÑзÑвов 52 function initializeReviews() { 53 const initialCount = isMobileDevice() ? initialReviewsMobile : initialReviewsDesktop; 54 displayReviews(0, initialCount); 55 currentIndex = initialCount; // Ðбновление ÑекÑÑего индекÑа 56 } 57 58 // ÐбÑабоÑÑик нажаÑÐ¸Ñ Ð½Ð° ÐºÐ½Ð¾Ð¿ÐºÑ "Mehr laden" 59 $('#SVVLoadMoreBtn').on('click', function() { 60 const nextIndex = currentIndex + reviewsPerPage; 61 displayReviews(0, nextIndex); // ÐÑегда показÑваем Ð¾Ñ 0 до nextIndex, ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð´ÑблиÑÐ¾Ð²Ð°Ð½Ð¸Ñ 62 currentIndex = nextIndex; // Ðбновление ÑекÑÑего индекÑа 63 }); 64 65 // ÐаÑалÑÐ½Ð°Ñ Ð¸Ð½Ð¸ÑиализаÑÐ¸Ñ 66 initializeReviews(); 67 }); 68})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.