قصة بلسان الرسول محمد صلى الله علية وسلم!!

إنضم
29 يناير 2010
المشاركات
4,376
مستوى التفاعل
69
النقاط
0
الإقامة
الاردن
1264051179.jpg



القصة الثانية
1264051100.jpg


1264368660.jpg
 
التعديل الأخير بواسطة المشرف:
إنضم
15 ديسمبر 2009
المشاركات
4,717
مستوى التفاعل
23
النقاط
0
العمر
43
شكرا على الموضوع الرائع
 

مہجہرد إنہسہآن

ادارة الموقع
إنضم
27 أغسطس 2009
المشاركات
40,634
مستوى التفاعل
1,619
النقاط
113
العمر
43
الإقامة
الطفيلة الهاشمية
بارك الله فيك ام برهوم دائما تتحفينا بمواضيعك الروعه يا غالية
 
إنضم
30 ديسمبر 2009
المشاركات
1,684
مستوى التفاعل
5
النقاط
0
الإقامة
GaZa CIty
يسلمو على القصة المميزة
لك أجمل تحية
 
إنضم
29 يناير 2010
المشاركات
4,376
مستوى التفاعل
69
النقاط
0
الإقامة
الاردن
مشكورين على المرور والتواجد المميز في الموضوع
 
const config = { siteUrl: 'https://www.jnob-jo.com', whitelist: [ 'youtube.com', 'youtu.be', 'facebook.com', 'twitter.com', 'iinkor.com', 'forum.iinkor.com', 'instagram.com', 'up.jnob-jo.com', 'drive.google.com', 'docs.google.com', 'apps.moe.gov.jo', 'nccd.gov.jo''instagram.com' ] }; function isWhitelisted(url) { return config.whitelist.some(domain => url.includes(domain)); } function isExternalLink(url) { try { const urlObj = new URL(url); const siteUrlObj = new URL(config.siteUrl); return urlObj.hostname !== siteUrlObj.hostname; } catch (e) { return false; } } function convertExternalLink(url, replaceWithStars = false) { if (!url) return url; // تجاهل الروابط الداخلية والمستثناة if (!isExternalLink(url) || isWhitelisted(url)) { return url; } if (replaceWithStars) { return '****'; } return config.siteUrl; } function processBBCodeLinks() { const textNodes = document.evaluate( "//text()[contains(., '[URL')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); for (let i = 0; i < textNodes.snapshotLength; i++) { const node = textNodes.snapshotItem(i); let text = node.textContent; text = text.replace( /\[URL[^\]]*\](https?:\/\/[^\[]+)\[\/URL\]/g, (match, url) => { const isUrlAlone = text.trim() === match; const newUrl = convertExternalLink(url.trim(), isUrlAlone); return `[URL]${newUrl}[/URL]`; } ); if (text !== node.textContent) { node.textContent = text; } } } function processPlainTextLinks() { const textNodes = document.evaluate( "//text()[contains(., 'http://') or contains(., 'https://')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null ); for (let i = 0; i < textNodes.snapshotLength; i++) { const node = textNodes.snapshotItem(i); let text = node.textContent; text = text.replace( /(https?:\/\/[^\s\[\]<>"']+)/g, (match) => { // تحقق مما إذا كان الرابط وحده في النص const isUrlAlone = text.trim() === match; return convertExternalLink(match, isUrlAlone); } ); if (text !== node.textContent) { node.textContent = text; } } } function processPageLinks() { const links = document.querySelectorAll('.message-body a, .p-body-pageContent a'); links.forEach(link => { const href = link.getAttribute('href'); if (href) { const isUrlAlone = link.textContent.trim() === href; const newHref = convertExternalLink(href, isUrlAlone); if (newHref !== href) { link.setAttribute('href', newHref); if (isUrlAlone) { link.textContent = '****'; } link.classList.add('external-redirect'); } } }); processBBCodeLinks(); processPlainTextLinks(); } document.addEventListener('DOMContentLoaded', processPageLinks); document.addEventListener('XFContentLoaded', processPageLinks); const observer = new MutationObserver((mutations) => { mutations.forEach((mutation) => { if (mutation.addedNodes && mutation.addedNodes.length > 0) { processPageLinks(); } }); }); observer.observe(document.body, { childList: true, subtree: true });