قضايا دستورية
جاري تحميل القضايا…
const blogUrl = "https://www.egquiz.com"; const label = "قضايا دستورية"; const resultsPerPage = 8; // عدد القضايا في كل صفحة const maxPostsToFetch = 500; // الحد الأقصى للقضايا لجلبها (حد API)
const gridContainer = document.querySelector(".cases-grid"); const loadMoreBtn = document.getElementById("loadMoreBtn"); const loadMoreContainer = document.querySelector(".load-more-container"); const searchInput = document.getElementById("searchInput");
let allCases = []; // مصفوفة لتخزين جميع القضايا let displayedCount = 0; // عدد القضايا المعروضة حاليًا
// 1. دالة لإنشاء البطاقة (بدون تغيير) function createCaseCard(post) { const postTitle = post.title.$t; let postUrl = '#'; if (post.link) { for (let i = 0; i < post.link.length; i++) { if (post.link[i].rel === 'alternate') { postUrl = post.link[i].href; break; } } } const contentHtml = post.content ? post.content.$t : ''; const tempDiv = document.createElement('div'); tempDiv.innerHTML = contentHtml; const descriptionElement = tempDiv.querySelector('pre.case-description'); const description = descriptionElement ? descriptionElement.textContent : "لا يتوفر وصف..."; post.searchableDescription = description.toLowerCase(); // إضافة الوصف للبحث const publishedDate = new Date(post.published.$t); const formattedDate = new Intl.DateTimeFormat('ar-EG', { day: 'numeric', month: 'long', year: 'numeric' }).format(publishedDate); const caseCard = document.createElement('article'); caseCard.className = 'case-card'; caseCard.innerHTML = `
${postTitle}
${description}
`; return caseCard; }
// 2. دالة لعرض مجموعة من القضايا function displayCases(cases) { cases.forEach(caseData => { const card = createCaseCard(caseData); gridContainer.appendChild(card); }); }
// 3. دالة "عرض المزيد" function loadMoreCases() { const remainingCases = allCases.slice(displayedCount, displayedCount + resultsPerPage); displayCases(remainingCases); displayedCount += remainingCases.length;
// إخفاء الزر إذا لم يعد هناك المزيد لعرضه if (displayedCount >= allCases.length) { loadMoreContainer.style.display = 'none'; } }
// 4. وظيفة البحث searchInput.addEventListener('input', function() { const searchTerm = this.value.toLowerCase().trim();
if (searchTerm === "") { gridContainer.innerHTML = ''; displayedCount = 0; loadMoreCases(); // *** التصحيح هنا أيضاً: إظهار الزر عند مسح البحث *** if (allCases.length > displayedCount) { loadMoreContainer.style.display = 'block'; } return; }
const filteredCases = allCases.filter(caseData => { const title = caseData.title.$t.toLowerCase(); const description = caseData.searchableDescription || ""; return title.includes(searchTerm) || description.includes(searchTerm); });
gridContainer.innerHTML = ''; loadMoreContainer.style.display = 'none';
if (filteredCases.length > 0) { displayCases(filteredCases); } else { gridContainer.innerHTML = '
لم يتم العثور على نتائج.
'; } });
// 5. جلب جميع القضايا عند تحميل الصفحة function fetchAllCases() { const apiUrl = `${blogUrl}/feeds/posts/default/-/${encodeURIComponent(label)}?alt=json-in-script&max-results=${maxPostsToFetch}&callback=processAllCases`;
window.processAllCases = function(data) { allCases = data.feed.entry || []; gridContainer.innerHTML = '';
if (allCases.length > 0) { loadMoreCases(); // عرض أول دفعة من القضايا
// *** ⭐ التصحيح الرئيسي هنا ⭐ *** // بعد عرض الدفعة الأولى، تحقق إذا كان هناك المزيد لإظهار الزر if (allCases.length > displayedCount) { loadMoreContainer.style.display = 'block'; }
} else { gridContainer.innerHTML = '
لا توجد قضايا لعرضها حاليًا.
'; loadMoreContainer.style.display = 'none'; } };
const script = document.createElement('script'); script.src = apiUrl; document.body.appendChild(script); script.onload = () => document.body.removeChild(script); }
loadMoreBtn.addEventListener('click', loadMoreCases);
fetchAllCases(); });




