علمتني الحياة ..
صديقة غالية وارتحت الها كثير ^_*
قطر الندى
سلطي وافتخر
عاشقة لؤي
بصراحه انا مااعرف عاشقة لؤي... وبحب قطر الندى وسلطي وافتخر بس علاقتي بسلطي وافتخر اكثر
لذلك اختار:
سلطي وافتخر
1) jordan man
2) Arab laila
3) king of love
1) jordan man
هو يلي عرفته ههههه
وأبو بشار أخو غالي وعزيز
مع احترامي للباقين ^_^
*
*
*
روحي تحبك
الوردة النقية
جنون العاطفة
هههههه بصراحه ما اتعرفت ع حدا منهم الا روحي تحبك لانو زمان صارلها بالمنتدى لذلك اختار:
روحي تحبكـ
1) تيمو
2) دمعة شوق
3) طبيب جراح
دمعهــ شوقــ ^_^
المحبة لرسول الله
نسيم الصباح
زهرة النرجس
المحبه لرسول الله******
جمانا
نسيم الصباح
لحن المطر
كلهم غاليين بس هي الوحيده الي تعرفت عليها اكثر
جمــــــــــــانا
1 تيمو
2 معانده جروحي
3 عاشقة لؤي العمايرة
التعديل الأخير بواسطة المشرف: 5 مايو 2011
تيمو صاحبيتي بالمدرسة
1) قطر الندى
2) لحن المطر
3) جبريل
هلا والله بتيمو 2 هع
بختار امممم لحونه>وكمان قطوره هههههههه
غاليه
معانده
سلطي
امممم حبيبتي ..
^_^ معانــدة ^_^
jordan man
علمتني الحياة
الورد النقية
كلهم ذوووووووووووق اختار:
jordan man
1)اردنية وافتخر
2)عـ أنا ــربي
3)دمعة شوق
2)عـ أنا ــربي
حصتي هذا بس ابصر وينو هسه
طبعا مع احتلرامي للبقيه
غاليه واتغلا
سلطي وافتخر
علمتني الحياه
؟؟؟
الختيار صعب كثير كثير
يا الله
بختارهم الثلاثه
تيموولا علمتني الحياه ولا جمانا
كلون غاليين...
بختار علمتني الحيآة...
جمانا..
نسيم الصباح...
غاليهـ واتغلا
((جمانا))
سلطي وافتخر
المحبه لرسول الله
دمعه شووق
كلهم غاليين
بختارهم كلهم
1) علمتني الحياة
2) دمعة شوق
3)تيمو
بختار علمتني الحياه
جمانا
سلطي وافتخر
نسيم الصباح
سلطي وافتخر
1)jordan man
2) Arab laila
3) دمعهـ شوقـ
بصراحة التلاتة غالين :nosweat:
بس بختار :7 (143):
3) دمعهـ شوقـ :2 (214):
وين الاعضاء يا محبه!!!!
جوردن مان
عربي انا
دمعه شوق
// 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;