لعبه للاعضاء.. اختر واحد من ثلاثة اعضاء

إنضم
10 أبريل 2010
المشاركات
2,127
مستوى التفاعل
25
النقاط
0
الإقامة
الاردن
علمتني الحياة
طيب

عاشقة لؤي
تيمو
صوت الحمام
 
إنضم
19 أغسطس 2010
المشاركات
14,678
مستوى التفاعل
390
النقاط
0
عاشقة لؤي العمايرة


غاليه واتغلا
أحمد الصرايرة
روحي تحبك
 
إنضم
1 أغسطس 2010
المشاركات
1,759
مستوى التفاعل
11
النقاط
0
العمر
30
الإقامة
Jordan
غاليه واتغلا


زهرة النرجس
معانده جروحي
نسيم الصباح
 
إنضم
19 أغسطس 2010
المشاركات
14,678
مستوى التفاعل
390
النقاط
0
قطر الندى



لحن المطر
جنون العاطفة
روحي تحبك
 
إنضم
3 مارس 2010
المشاركات
6,538
مستوى التفاعل
40
النقاط
0
العمر
31
الإقامة
الاردن
لحن المطر

1) سفير الغرام
2)Arab laila
3)عاشقة لؤي العمايرة
 
إنضم
19 أغسطس 2010
المشاركات
14,678
مستوى التفاعل
390
النقاط
0
عراب ليلي


غاليه واتغلا
الوردة النقية
نيم الصباح
 
إنضم
15 ديسمبر 2009
المشاركات
4,717
مستوى التفاعل
23
النقاط
0
العمر
43
زهرة النرجس


جنون العاطفة

Arab laila

غاليه واتغلا
 
إنضم
3 فبراير 2010
المشاركات
5,331
مستوى التفاعل
47
النقاط
0
العمر
30
الإقامة
بين بتلآت الزهور~ْ
يآ هلآ والله بأخي أحمد نورت المنتدى ...:)



غاليه واتغلا....





علمتني الحياة ...
جوردن مان..
قطر الندى..
 
إنضم
3 مارس 2010
المشاركات
6,538
مستوى التفاعل
40
النقاط
0
العمر
31
الإقامة
الاردن
قطر الندى

اهلين احمد نورت المنتدى يالغلا لك وحشة

1)احمد الصرايرة
2) لحن المطر
3) دمعة شوق
 
إنضم
19 أغسطس 2010
المشاركات
14,678
مستوى التفاعل
390
النقاط
0
احمد الصرايرة

روحي تحبك
عاشقة لؤي العمايرة
سفير الغرام
 
إنضم
3 فبراير 2010
المشاركات
5,331
مستوى التفاعل
47
النقاط
0
العمر
30
الإقامة
بين بتلآت الزهور~ْ
عآشقة لؤي العمايرة...





نسيم الصباح..
علمتني الحيآة..
قطر الندى..

 
إنضم
24 يوليو 2010
المشاركات
597
مستوى التفاعل
2
النقاط
0
الإقامة
المفرق
امممممممممم والله صعب الاختيار

بحكي ام برهوم

طيب تيمو

معانده جروحي

صوت الحماام
 
إنضم
19 أغسطس 2010
المشاركات
14,678
مستوى التفاعل
390
النقاط
0
معاندة جروحي



دمعه شوق
جوردان مان
أحمد الصرايرة
 
إنضم
1 أغسطس 2010
المشاركات
1,759
مستوى التفاعل
11
النقاط
0
العمر
30
الإقامة
Jordan
جوردن مان

لحن المطر
جمانا
نسيم الصباح
 
إنضم
19 أغسطس 2010
المشاركات
14,678
مستوى التفاعل
390
النقاط
0
والله الاختيار صعب كلهم بحبهم
حختار قطووووووووووووووورة

لحن المطر
نسومة
جمانا
 
إنضم
3 فبراير 2010
المشاركات
5,331
مستوى التفاعل
47
النقاط
0
العمر
30
الإقامة
بين بتلآت الزهور~ْ
نسومة ..لك وينا هالزعرة إشتئتلا ..اهئ ..




نسييييييم الصباح...
زهرة النرجس..
جمآنآ..
 
إنضم
17 يوليو 2011
المشاركات
110
مستوى التفاعل
1
النقاط
0
الإقامة
قلب mooka
جمانا

لحنون
جمانا
روحـ تحبك ـي
 
// 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;