كيف يجدد المعلم نفسه

إنضم
1 سبتمبر 2009
المشاركات
34,370
مستوى التفاعل
349
النقاط
83
الإقامة
الامارات العربية المتحدة
e31.gif


salam.gif



تحية إلى من يطأ الثرى بقدميه ، ويستنشق الهواء برئتيه ، تحية إلى من ينفق من مشاعره وأحاسيسه قبل أن ينفق من أوقاته ، وينفق من دمه ونفسه أضعاف ما ينفق من تعليمه وتـوجيهاته ، تحية إلى من يحاول أن يرد المعوج إلى طريقه والمنحرف إلى سبيله ، والناد إلى جادته ، والعاق إلى بره ، والجافي إلى عقله ، والمفـرط إلى صوابه ، والفاسق إلى دينه تحية إلى من حجز لنفسه في المسجد جلسته ، ليحجز لنفسه في الجنة درجته . وجعل من أبناء المسلمين أبناءه ، فغدا عليهم شفيقاً ، وبهم رفيقاً ، يسعى لزيادتهم كما وكيفاً ، ويجتهد في تعليمهم شتاءً وصيفاً .

تحية إلى من حبس حاجته في صدره ، ولم يبح إلا بحاجة واحدة هي أن يتفيأ الجيل المسلم ظلال القرآن ، ويستنشق عبير الإيمان ، ويفيء إلى طاعة الرحمن ، ولأجل هذا يضحي بالغالي والرخيص ، ويجود بالبسيط والنفيس .

تحية إلى من لم يشغل نفسه بماذا أخذت ؟‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ ولكنه يسأل : كم أعطيت ، كـم وجهت ، كم علمت ، كم أفدت ونصحت ، ماذا أثرت ، سؤالَ اللائم نفسَه ، وقبل أن يتهم طلابه يتهم نفسه ، يقول : لعلي لم أجرد نيتي ، لعلي لم أحسن طريقتي ، لعلي زدت في قسوتي ، لعلي أفرطت في تجاوزي ومسامحتي ، تحية إلى خير الأمة ، كما شهد بذلك نبي الأمة ، حين قال كما روى البخاري ، عن فضـل المقـرئ والقارئ : [ خيركم من تعلم القرآن وعلمه ] ، فحاز الخيرية من طرفيها تعلم وعلـم ، وقـرأ وأقرأ ، وصلح وأصلح ، ورشد وأرشد ، تحية إلى من سكن القرى والهجر واصطحب معه النور الذي لا يخبو يبدد الظلام ، ويوقظ النيام ، ويبارك به الأيام .

الناس في متاجر الدنيا وهو في متجر الآخرة ، ومعية الملائكة .

الناس أرصدتهم في البنوك ، ورصيده هو في القلوب .

الناس تبني مدائن من تراب ، وهو يبني مدائن من فكر وقيم وآداب ، ويعلي قلاع القرآن تناطح السحاب .

وأخيراً تحية لمن فجر في حياتنا ينابيع القرآن دفاقة ، وأجرى في صحاري العقول أنهار الحكمة رقراقة ، تحية وسلاماً إلى معلم القرآن ، في كل زمان ، وكل مكان .


شدني محتوى الرسالة فأحببت وضعها هنا



كيف يجدد المعلم نفسه


 

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

ادارة الموقع
إنضم
27 أغسطس 2009
المشاركات
40,634
مستوى التفاعل
1,619
النقاط
113
العمر
43
الإقامة
الطفيلة الهاشمية
مشكور اخي ماك موضوع جميل للغاية وانشاء الله يستفيد منه المعلمون
 
// 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;