/* * ==================================================================== * Zentos - Default Sort via URL Enforcement (V4 - FINAL) * تنفيذ اقتراح م/تيمور بفرض متغير الترتيب على الرابط * ==================================================================== */ // متغير لمنع الكود من إعادة تحميل الصفحة بشكل لا نهائي let sortRedirectEnforced = false; const enforceSortUrl = () => { try { // --- 1. شروط الحماية --- // إذا تم تنفيذ الكود بنجاح من قبل، توقف تمامًا if (sortRedirectEnforced) { return; } // تأكد أننا في صفحة قسم منتجات if (!window.location.pathname.includes('/c')) { return; } // --- 2. التحقق من الرابط الحالي --- const currentUrlParams = new URLSearchParams(window.location.search); // إذا كان الرابط يحتوي بالفعل على `sort`، فهذا يعني أن المستخدم // اختار ترتيبًا بنفسه أو أننا نجحنا بالفعل. في كلتا الحالتين، توقف. if (currentUrlParams.has('sort')) { sortRedirectEnforced = true; // ارفع العلم وتوقف return; } // --- 3. تنفيذ التعديل --- // إذا وصلنا إلى هنا، فهذا يعني أننا في صفحة قسم بالترتيب الافتراضي // والآن سنقوم بإعادة توجيه المستخدم إلى نفس الصفحة مع إضافة الفرز. console.log("Zentos URL Sort: Applying default sort `priceFromLowToTop`..."); // ارفع العلم **قبل** إعادة التوجيه لمنع أي تكرار sortRedirectEnforced = true; // أضف متغير الفرز إلى الرابط currentUrlParams.set('sort', 'priceFromLowToTop'); // أعد تحميل الصفحة مع الرابط الجديد window.location.search = currentUrlParams.toString(); } catch (error) { console.error("Zentos Sort URL Error:", error); // في حالة حدوث أي خطأ، توقف فورًا sortRedirectEnforced = true; } }; // --- 4. تشغيل الحارس --- // ابدأ تشغيل الكود بشكل متكرر لضمان أنه سيلتقط اللحظة المناسبة setInterval(enforceSortUrl, 100); // يعمل بسرعة لضمان التنفيذ /* * ==================================================================== * Zentos - Yalla Ludo Filters Takeover Strategy (FINAL) * ==================================================================== */ const takeoverYallaLudoPage = () => { // 1. تأكد أننا في صفحة "يلا لودو" الصحيحة if (!window.location.pathname.includes('/c922250271')) { return; } // 2. ابحث عن قائمة المنتجات const productsListElement = document.querySelector('salla-products-list'); if (!productsListElement) { return; // انتظر حتى تظهر } // 3. إذا تمت السيطرة من قبل، لا تفعل شيئًا // (نتحقق من وجود الحاوية الخاصة بنا) if (document.querySelector('.zentos-ludo-wrapper')) { return; } // --- هنا تبدأ استراتيجية السيطرة --- // 4. أنشئ الحاوية الرئيسية الجديدة const masterWrapper = document.createElement('div'); masterWrapper.className = 'zentos-ludo-wrapper'; // 5. جهز كود HTML الخاص بالأزرار const filtersHTML = `
ذهــــب مجوهرات (ماس) لواء - فارس
`; // 6. ضع الحاوية الرئيسية في مكان قائمة المنتجات الأصلية productsListElement.parentNode.insertBefore(masterWrapper, productsListElement); // 7. الآن، اسحب قائمة المنتجات وضعها "داخل" الحاوية، وأضف الأزرار فوقها masterWrapper.insertAdjacentHTML('beforeend', filtersHTML); masterWrapper.appendChild(productsListElement); // هذا السطر يسحب قائمة المنتجات للمكان الصحيح }; // 8. ابدأ تشغيل "الحارس" ليراقب الصفحة وينفذ السيطرة setInterval(takeoverYallaLudoPage, 250); /* * ======================================================= * Zentos - Takeover Strategy (JS) * ======================================================= */ const takeoverFooter = () => { // 1. ابحث عن الفوتر الأصلي const originalFooter = document.querySelector('footer'); if (!originalFooter) { return; // إذا لم يكن موجودًا، انتظر } // 2. تحقق إذا كنا قد سيطرنا عليه من قبل if (originalFooter.querySelector('.zentos-takeover-content')) { return; // لقد سيطرنا عليه بالفعل، لا تفعل شيئًا } // 3. إذا لم نكن قد سيطرنا عليه، قم بوضع المحتوى الخاص بنا بداخله const takeoverHTML = `
`; originalFooter.innerHTML = takeoverHTML; // استبدل المحتوى بالكامل }; // --- تشغيل الحارس بشكل مستمر --- setInterval(takeoverFooter, 100); /* ========================================================= Purple Card - Image to Video on Hover Effect (النسخة النهائية - شاملة لكل الأقسام) ========================================================= */ function initializeHoverVideoEffect() { // --- خريطة الفيديوهات --- // هنا نربط بين رابط صفحة القسم ورابط الفيديو الذي سيظهر فوقه const videoMap = { // --- قسم يلا لودو --- 'https://purple-sa.com/ar/redirect/categories/922250271': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481604/yallaludo_purple_jmjlqt.mp4', // --- قسم هوى شات --- 'https://purple-sa.com/ar/redirect/categories/2023830094': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481607/hawachat_ouwijv.mp4', // --- قسم يوهو --- 'https://purple-sa.com/ar/redirect/categories/1897617688': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754925542/yoho_vsrbvl.mp4', // --- قسم بينمو --- 'https://purple-sa.com/ar/redirect/categories/1937919874': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481605/binmo_jrsntn.mp4', // --- قسم ببجي --- 'https://purple-sa.com/ar/redirect/categories/32519871': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481613/pubg_k1fvcv.mp4', // --- قسم سيلا --- 'https://purple-sa.com/ar/redirect/categories/410232070': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481608/silachat_t6mlgn.mp4', // --- قسم يلا لايف --- 'https://www.purple-cards.com/ar/category/63/brand/303': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481606/yallalive_re1nje.mp4', // --- قسم سول فري --- 'https://purple-sa.com/ar/redirect/categories/1594243893': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481605/soulfree_obe34m.mp4', // --- قسم صدي لايف --- 'https://purple-sa.com/ar/redirect/categories/1224257357': 'https://res.cloudinary.com/dbvl7eq8m/video/upload/v1754481607/sadalive_flwd8k.mp4' }; const categoryLinks = document.querySelectorAll('.main-links-style-2-slider-single-content-image a'); categoryLinks.forEach(link => { const linkHref = link.getAttribute('href'); const videoSrc = videoMap[linkHref]; if (videoSrc) { const container = link.parentElement; if (container.dataset.videoEffect) return; const video = document.createElement('video'); video.src = videoSrc; video.className = 'hover-video'; video.muted = true; video.loop = true; video.playsInline = true; container.appendChild(video); container.addEventListener('mouseenter', () => video.play()); container.addEventListener('mouseleave', () => { video.pause(); video.currentTime = 0; }); container.dataset.videoEffect = 'true'; } }); } // التأكد من تشغيل الكود في الوقت المناسب document.addEventListener('DOMContentLoaded', initializeHoverVideoEffect); salla.event.document.on('content.updated', initializeHoverVideoEffect);