منشئي المتاجر الإلكترونية

منشئي المتاجر الإلكترونية

اختر أفضل منصة
لبناء متجرك الإلكتروني

نساعدك على اختيار أفضل منصة لإنشاء متجرك وفقًا لأهدافك وميزانيتك وخبرتك التقنية. مقارنات شاملة، مراجعات صادقة، وأدلة عملية لبدء متجرك بثقة.

'; } return html; } async function getCategory(slug) { if (categoryCache[slug]) return categoryCache[slug]; const res = await fetch(`${siteApi}/categories?slug=${encodeURIComponent(slug)}`); const cats = await res.json(); if (!Array.isArray(cats) || !cats.length) { throw new Error('Category not found: ' + slug); } categoryCache[slug] = cats[0]; return cats[0]; } async function loadSectionPosts(item) { const grid = section.querySelector(`#ea-builders-grid-${item.id}`); const viewAll = section.querySelector(`#ea-builders-view-${item.id}`); if (!grid) return; grid.innerHTML = skeletons(4); try { const cat = await getCategory(item.slug); if (viewAll) { viewAll.href = item.url || cat.link || '#'; } const url = `${siteApi}/posts?categories=${cat.id}&per_page=4&_embed=1`; const res = await fetch(url); const posts = await res.json(); if (!Array.isArray(posts) || !posts.length) { grid.innerHTML = `
لا توجد مقالات في هذا القسم حاليًا.
`; return; } grid.innerHTML = posts.map(post => { const image = getFeaturedImage(post); const title = cleanText(post.title.rendered); return ` `; }).join(''); } catch (error) { grid.innerHTML = `
لم يتم تحميل مقالات قسم "${item.title}". تأكد من أن slug التصنيف صحيح.
`; } } function renderLayout() { tabsWrap.innerHTML = sectionsData.map((item, index) => { const icon = isValidIcon(item.icon) ? `` : ''; return ` ${icon} ${item.title} `; }).join(''); sectionsWrap.innerHTML = sectionsData.map(item => { const icon = isValidIcon(item.icon) ? `` : ''; return `
${skeletons(4)}
`; }).join(''); } function activateTab(id) { const tabs = section.querySelectorAll('.ea-builders-tab'); tabs.forEach(tab => { const isActive = tab.dataset.target === id; tab.classList.toggle('is-active', isActive); if (isActive) { tab.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' }); } }); } function bindTabs() { const tabs = section.querySelectorAll('.ea-builders-tab'); tabs.forEach(tab => { tab.addEventListener('click', function (e) { e.preventDefault(); const targetId = this.dataset.target; const target = section.querySelector('#' + targetId); if (!target) return; const offset = window.innerWidth <= 767 ? 120 : 150; const top = target.getBoundingClientRect().top + window.pageYOffset - offset; window.scrollTo({ top: top, behavior: 'smooth' }); activateTab(targetId); }); }); } function observeSections() { const allSections = section.querySelectorAll('.ea-builders-section'); const observer = new IntersectionObserver(function (entries) { entries.forEach(entry => { if (entry.isIntersecting) { activateTab(entry.target.id); } }); }, { rootMargin: '-35% 0px -55% 0px', threshold: 0 }); allSections.forEach(sec => observer.observe(sec)); } renderLayout(); bindTabs(); observeSections(); sectionsData.forEach(item => loadSectionPosts(item)); if (window.location.hash) { const target = section.querySelector(window.location.hash); if (target) { setTimeout(() => { const offset = window.innerWidth <= 767 ? 120 : 150; const top = target.getBoundingClientRect().top + window.pageYOffset - offset; window.scrollTo({ top: top, behavior: 'smooth' }); activateTab(target.id); }, 500); } } })();