قضايا المجتمع المصري





قضايا المجتمع المصري


جاري تحميل القضايا…

const blogUrl = "https://www.egquiz.com"; const labels = [ "قضايا أحوال شخصية", "قضايا شركات", "قضايا دستورية", "قضايا جنائية", "قضايا مدنية", "قضايا الرأي العام", "جرائم الإنترنت", "قضايا نصب" ]; const resultsPerPage = 8; const maxPostsPerLabel = 100;

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;

// دالة لإنشاء البطاقة (بدون تغيير) 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; }

// دالة لعرض مجموعة من القضايا (بدون تغيير) function displayCases(cases) { cases.forEach(caseData => { const card = createCaseCard(caseData); gridContainer.appendChild(card); }); }

// دالة "عرض المزيد" (بدون تغيير) function loadMoreCases() { const remainingCases = allCases.slice(displayedCount, displayedCount + resultsPerPage); displayCases(remainingCases); displayedCount += remainingCases.length;

if (displayedCount >= allCases.length) { loadMoreContainer.style.display = 'none'; } }

// وظيفة البحث (بدون تغيير) 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 = '

لم يتم العثور على نتائج.

'; } });

// --- تعديل 1: تعديل دالة الدمج لمنع التكرار --- function interleaveAndDeduplicate(arrays) { const interleaved = []; const postIds = new Set(); // مجموعة لتخزين معرفات المنشورات التي تم إضافتها let maxLength = 0; for (const arr of arrays) { if (arr.length > maxLength) { maxLength = arr.length; } }

for (let i = 0; i < maxLength; i++) { for (const arr of arrays) { if (i < arr.length) { const post = arr[i]; const postId = post.id.$t; // استخدام المعرف الفريد للمنشور // التحقق مما إذا كان المنشور قد تمت إضافته من قبل if (!postIds.has(postId)) { interleaved.push(post); postIds.add(postId); // إضافة المعرف إلى المجموعة لمنع تكراره } } } } return interleaved; } // دالة جلب جميع القضايا (مع تعديل بسيط) async function fetchAllCases() { const fetchPromises = labels.map(label => { const apiUrl = `${blogUrl}/feeds/posts/default/-/${encodeURIComponent(label)}?alt=json&max-results=${maxPostsPerLabel}`; return fetch(apiUrl).then(response => response.json()); });

try { const results = await Promise.all(fetchPromises);

const postsByLabel = results.map(result => result.feed.entry || []);

// --- تعديل 2: استخدام الدالة الجديدة لمنع التكرار --- allCases = interleaveAndDeduplicate(postsByLabel);

gridContainer.innerHTML = '';

if (allCases.length > 0) { loadMoreCases();

if (allCases.length > displayedCount) { loadMoreContainer.style.display = 'block'; } else { loadMoreContainer.style.display = 'none'; }

} else { gridContainer.innerHTML = '

لا توجد قضايا لعرضها حاليًا.

'; loadMoreContainer.style.display = 'none'; } } catch (error) { console.error("حدث خطأ أثناء جلب القضايا:", error); gridContainer.innerHTML = '

عذرًا، حدث خطأ أثناء تحميل القضايا.

'; } }

loadMoreBtn.addEventListener('click', loadMoreCases);

fetchAllCases(); });


تابع جديد الوظائف
Scroll to Top