diff --git a/content/search-results.php b/content/search-results.php index 24fc443..02eb2d6 100644 --- a/content/search-results.php +++ b/content/search-results.php @@ -27,7 +27,8 @@ if ($currentPage < 1) { $offset = ($currentPage - 1) * $limit; // Nur die Ergebnisse für die aktuelle Seite ausschneiden -$results = array_slice($all_results, $offset, $limit); +//$results = array_slice($all_results, $offset, $limit); +$results = $all_results; $resultCount = count($results); ?> @@ -171,20 +172,11 @@ $resultCount = count($results);
- - - - - - + + + + +
diff --git a/js/filter.js b/js/filter.js index 76367c0..a20f242 100644 --- a/js/filter.js +++ b/js/filter.js @@ -1,4 +1,3 @@ - let currentClientPage = 1; const itemsPerPage = 10; @@ -11,24 +10,25 @@ function initFilter() { updateVisibility(); filterSelect.addEventListener('change', function() { - currentClientPage = 1; // Bei Filterwechsel zurück auf Seite 1 + currentClientPage = 1; updateVisibility(); }); + const navigationContainer = document.querySelector('.s-res-page-navigation'); + if (navigationContainer) { + navigationContainer.addEventListener('click', function(e) { + const button = e.target.closest('.s-res-page-btn'); + if (!button || button.disabled) return; - const pageButtons = document.querySelectorAll('.s-res-page-navigation .s-res-page-btn'); - pageButtons.forEach(button => { - button.addEventListener('click', function(e) { e.preventDefault(); - e.stopPropagation(); - - const targetPage = this.getAttribute('data-page'); + + const targetPage = button.getAttribute('data-page'); if (targetPage) { currentClientPage = parseInt(targetPage, 10); updateVisibility(); } - }, true); - }); + }); + } } function updateVisibility() { @@ -37,11 +37,9 @@ function updateVisibility() { const selectedCategory = filterSelect.value.toLowerCase().trim(); const cards = listContainer.querySelectorAll('.s-res-item'); - // filtern let visibleCards = []; cards.forEach(card => { const cardCategory = (card.getAttribute('data-category') || '').toLowerCase().trim(); - if (selectedCategory === 'all' || cardCategory.includes(selectedCategory) || selectedCategory.includes(cardCategory)) { visibleCards.push(card); } else { @@ -49,11 +47,9 @@ function updateVisibility() { } }); - // nur 10 karten anzeigen const totalVisible = visibleCards.length; - const totalPages = Math.max(1, ceil(totalVisible / itemsPerPage)); + const totalPages = Math.max(1, Math.ceil(totalVisible / itemsPerPage)); - // aktuelle seite validieren if (currentClientPage < 1) currentClientPage = 1; if (currentClientPage > totalPages) currentClientPage = totalPages; @@ -68,38 +64,28 @@ function updateVisibility() { } }); - // update der seitenzahl updatePaginatorUI(currentClientPage, totalPages); } function updatePaginatorUI(currentPage, totalPages) { - const pageButtons = document.querySelectorAll('.s-res-page-navigation .s-res-page-btn'); - - pageButtons.forEach(button => { - const targetPage = button.getAttribute('data-page'); - - if (button.textContent.includes('«')) { - button.setAttribute('data-page', currentPage - 1); - button.disabled = (currentPage <= 1); - } else if (button.textContent.includes('»')) { - button.setAttribute('data-page', currentPage + 1); - button.disabled = (currentPage >= totalPages); - } else { - const pageNum = parseInt(button.textContent.trim(), 10); - - // Falls es die Seite im neuen Filter gar nicht mehr gibt -> Button verstecken - if (pageNum > totalPages) { - button.style.display = 'none'; - } else { - button.style.display = 'inline-block'; - if (pageNum === currentPage) { - button.classList.add('s-res-page-btn-active'); - } else { - button.classList.remove('s-res-page-btn-active'); - } - } - } - }); + const prevBtn = document.getElementById('prev-page-btn'); + const nextBtn = document.getElementById('next-page-btn'); + const numbersContainer = document.getElementById('dynamic-page-numbers'); + + if (!prevBtn || !nextBtn || !numbersContainer) return; + + prevBtn.setAttribute('data-page', currentPage - 1); + prevBtn.disabled = (currentPage <= 1); + + nextBtn.setAttribute('data-page', currentPage + 1); + nextBtn.disabled = (currentPage >= totalPages); + + let buttonsHTML = ''; + for (let i = 1; i <= totalPages; i++) { + const activeClass = (i === currentPage) ? 's-res-page-btn-active' : ''; + buttonsHTML += ` `; + } + numbersContainer.innerHTML = buttonsHTML; } // Hilfsfunktion für Math.ceil in JS