/* * ==================================================================== * 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 = `