عرض محوسب تقديمي عن شبه الجملة

سوار

طاقم الإدارة
إنضم
22 مايو 2011
المشاركات
9,992
مستوى التفاعل
161
النقاط
63
العمر
40
الإقامة
عمّان عاصمة الحب
منتديات صقر الجنوب التعليمية
تقدم لكم حصريا
عرض محوسب تقديمي عن (شبه الجملة)
التحميل من المرفقات
راجين الفائدة للجميع ،،
لا تنسونا من الدعاء،،،
 

المرفقات

  • عرض محوسب تقديمي - شبه الجملة.zip
    152 KB · المشاهدات: 52
إنضم
15 سبتمبر 2015
المشاركات
41
مستوى التفاعل
0
النقاط
0
جزاكم الله خيرا
 
إنضم
6 نوفمبر 2013
المشاركات
68
مستوى التفاعل
0
النقاط
6
العمر
40
:e022:بارك الله فيكم
 

همسآت شرقية

طاقم الادارة
إنضم
1 فبراير 2013
المشاركات
17,282
مستوى التفاعل
361
النقاط
63
الإقامة
المفرق
بارك الله فيك
 
إنضم
16 أبريل 2013
المشاركات
3
مستوى التفاعل
0
النقاط
1
جزاكم الله خيرا
 
// Enhanced Link Security Module const EnhancedLinkSecurity = { // الإعدادات القابلة للتخصيص settings: { enabled: true, siteDomains: ['jnob-jo.com', 'www.jnob-jo.com'], whitelist: [ // وسائل التواصل الاجتماعي 'youtube.com', 'youtu.be', 'facebook.com', 'fb.com', 'twitter.com', 'x.com', 'instagram.com', 'linkedin.com', // خدمات Google 'google.com', 'drive.google.com', 'docs.google.com', 'maps.google.com', // المواقع الحكومية والتعليمية 'gov.jo', 'moe.gov.jo', 'apps.moe.gov.jo', 'nccd.gov.jo', // المواقع المحلية 'iinkor.com', 'forum.iinkor.com', 'up.jnob-jo.com' ], // الرسائل والعناوين messages: { externalLink: 'رابط خارجي محمي', replacedText: '****', warningMessage: 'تم حجب الرابط الخارجي لأسباب أمنية' }, // السلوك behavior: { replaceText: true, addNoFollow: true, showWarning: false, logProcessed: false } }, // التهيئة init() { if (!this.settings.enabled) return; this.setupEventListeners(); this.injectSecurityStyles(); this.processEntirePage(); if (this.settings.behavior.logProcessed) { console.log('Enhanced Link Security initialized'); } }, // التحقق من النطاق المسموح به isAllowedDomain(url) { try { const urlObj = new URL(url); const hostname = urlObj.hostname.toLowerCase(); // التحقق من النطاقات الرئيسية if (this.settings.siteDomains.some(domain => hostname === domain || hostname.endsWith('.' + domain))) { return true; } // التحقق من القائمة البيضاء return this.settings.whitelist.some(allowed => hostname === allowed || hostname.endsWith('.' + allowed) || allowed.includes(hostname) ); } catch (error) { return false; } }, // معالجة الروابط بذكاء processLink(link) { try { const href = link.href; if (!href || link.dataset.linkProcessed) return; const isAllowed = this.isAllowedDomain(href); const isExternal = !this.isInternalLink(href); if (isExternal && !isAllowed) { this.secureExternalLink(link); } else if (isExternal) { this.markAllowedExternalLink(link); } link.dataset.linkProcessed = 'true'; } catch (error) { if (this.settings.behavior.logProcessed) { console.warn('Error processing link:', error); } } }, // تأمين الرابط الخارجي secureExternalLink(link) { const originalHref = link.href; if (this.settings.behavior.replaceText) { link.textContent = this.settings.messages.replacedText; } link.href = this.settings.siteDomains[0] ? `https://${this.settings.siteDomains[0]}` : '#'; if (this.settings.behavior.addNoFollow) { link.rel = 'nofollow noopener noreferrer'; } link.title = this.settings.messages.externalLink; link.classList.add('secured-external-link'); // حفظ البيانات الأصلية للتحليل link.dataset.originalHref = originalHref; link.dataset.processedAt = new Date().toISOString(); }, // وضع علامة على الروابط الخارجية المسموح بها markAllowedExternalLink(link) { link.classList.add('allowed-external-link'); if (this.settings.behavior.addNoFollow) { link.rel = (link.rel ? link.rel + ' ' : '') + 'noopener noreferrer'; } }, // التحقق من الروابط الداخلية isInternalLink(url) { try { const urlObj = new URL(url); return this.settings.siteDomains.some(domain => urlObj.hostname === domain || urlObj.hostname.endsWith('.' + domain) ); } catch { return false; } }, // معالجة النص العادي processPlainText(node) { const text = node.textContent; const urlRegex = /(https?:\/\/[^\s<>"']+)/gi; if (!urlRegex.test(text)) return; const newText = text.replace(urlRegex, (url) => { if (this.isAllowedDomain(url)) { return url; } return this.settings.messages.replacedText; }); if (newText !== text) { node.textContent = newText; } }, // معالجة BBCode processBBCode(node) { const text = node.textContent; const bbcodeRegex = /\[URL(?:=[^\]]*)?\](https?:\/\/[^\[]+?)\[\/URL\]/gi; if (!bbcodeRegex.test(text)) return; const newText = text.replace(bbcodeRegex, (match, url) => { if (this.isAllowedDomain(url)) { return match; } return `[URL]${this.settings.messages.replacedText}[/URL]`; }); if (newText !== text) { node.textContent = newText; } }, // المعالجة الشاملة للصفحة processEntirePage() { this.processHTMLLinks(); this.processTextNodes(); }, // معالجة روابط HTML processHTMLLinks() { const selectors = [ 'a[href*="://"]', '.message-body a', '.p-body-pageContent a', '.bbWrapper a', '.js-post a' ]; selectors.forEach(selector => { document.querySelectorAll(selector).forEach(link => { this.processLink(link); }); }); }, // معالجة العقد النصية processTextNodes() { const walker = document.createTreeWalker( document.body, NodeFilter.SHOW_TEXT, null, false ); let node; while (node = walker.nextNode()) { this.processPlainText(node); this.processBBCode(node); } }, // إعداد مراقبي الأحداث setupEventListeners() { // مراقبة التغييرات في DOM const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes.length > 0) { setTimeout(() => this.processEntirePage(), 100); } }); }); observer.observe(document.body, { childList: true, subtree: true }); // أحداث XenForo document.addEventListener('XFContentLoaded', () => { setTimeout(() => this.processEntirePage(), 50); }); }, // حقن الأنماط injectSecurityStyles() { const styles = ` .secured-external-link { color: #dc3545 !important; opacity: 0.8; border-bottom: 1px dashed #dc3545; cursor: not-allowed; } .allowed-external-link { border-bottom: 1px dashed #28a745; } .secured-external-link:hover { opacity: 1; } .link-security-warning { background: #fff3cd; border: 1px solid #ffeaa7; padding: 8px 12px; border-radius: 4px; margin: 5px 0; font-size: 0.9em; color: #856404; } `; if (!document.getElementById('link-security-styles')) { const styleSheet = document.createElement('style'); styleSheet.id = 'link-security-styles'; styleSheet.textContent = styles; document.head.appendChild(styleSheet); } }, // طرق مساعدة addToWhitelist(domains) { this.settings.whitelist.push(...domains); this.processEntirePage(); }, removeFromWhitelist(domain) { this.settings.whitelist = this.settings.whitelist.filter(d => d !== domain); this.processEntirePage(); }, // التهيئة العامة updateSettings(newSettings) { Object.assign(this.settings, newSettings); this.processEntirePage(); } }; // التهيئة التلقائية document.addEventListener('DOMContentLoaded', () => EnhancedLinkSecurity.init()); // لجعل الكود متاحاً globally window.LinkSecurity = EnhancedLinkSecurity;