Announcement Title

Your first announcement to every user on the forum.

حل مشكلة بخصوص الروابط داخل المواضيع

for sat

عضو جديد
عضو انكور
السلام عليكم

عندما انقل موضوع من غير منتدى هناك بعض الكلمات مزروعة براط ذلك الموقع
كيف يمكنني الغاء هذه الروابط من هذه الكلمات؟ دون ان اقوم بالتعديل عليها؟
هل من كود ليعمل هذا الامر بشكل اوتوماتيكي؟

ملاحظة هامة:
دون التأثير على الروابط الذي يضيفها العضو بنفسه.
فقط يقوم بحذف تلك الروابط المخفية بتلك الكلماتز

وشكرا مسبقا
 
هل من كود ليعمل هذا الامر بشكل اوتوماتيكي؟
لا للاسف في حال اردت ان انشئ لك كود لفعل ذلك سيطبق على جميع الروابط الخارجية

ولكن هناك حل عند النسخ بأن تضغط على الايقونة التالية في المحرر تبديل رمز الـ BBcode
وهكذا سينقل النص فقط
وفي حال يحتوي الموضوع على مواضيع يمكنك نقل الصور على حدى بعد الانتهاء من نقل النص
اعد الضغط على الايقونة وانسخ الصور
 
نعم اخي لو تكرمت اعطائي الكود بحيث اضيفه الى القالب Extra Less
هو قالب javascript اخي يمنع الروابط الخارجية في المنتدى بحيث عند رفع اي موضوع به رابط خارجي يقوم بحذف الرابط فقط الروابط الداخلية ستعمل اي روابط المنتدى
وهذا هو الكود تضعه في بداية قالب thread_view
كود:
<script>
(function() {
    'use strict';
    
    const config = {
        method: 'remove',
        allowedDomains: [
            window.location.hostname,
            'www.' + window.location.hostname
        ],
        whitelist: []
    };
    
    function isExternalLink(url) {
        try {
            const link = new URL(url, window.location.href);
            const hostname = link.hostname;
            
            if (config.whitelist.some(domain => hostname.includes(domain))) {
                return false;
            }
            
            return !config.allowedDomains.some(domain =>
                hostname === domain || hostname.endsWith('.' + domain)
            );
        } catch (e) {
            return false;
        }
    }
    
    function processLink(link) {
        const href = link.getAttribute('href');
        
        if (!href || href.startsWith('#') || href.startsWith('javascript:')) {
            return;
        }
        
        if (isExternalLink(href)) {
            switch(config.method) {
                case 'block':
                    link.addEventListener('click', function(e) {
                        e.preventDefault();
                        alert(config.alertMessage);
                        return false;
                    });
                    
                    link.style.color = '#999';
                    link.style.textDecoration = 'line-through';
                    link.style.cursor = 'not-allowed';
                    link.title = 'رابط خارجي محظور';
                    break;
                    
                case 'remove':
                    const text = link.textContent;
                    const textNode = document.createTextNode(text);
                    link.parentNode.replaceChild(textNode, link);
                    break;
                    
                case 'replace':
                    const span = document.createElement('span');
                    span.textContent = link.textContent + ' [رابط خارجي محذوف]';
                    span.style.color = '#999';
                    link.parentNode.replaceChild(span, link);
                    break;
            }
        }
    }
    
    function processAllLinks() {
        const contentSelectors = [
            '.message-body',
            '.message-content',
            '.bbWrapper',
            'article.message-body',
            '.js-post'
        ];
        
        contentSelectors.forEach(selector => {
            const containers = document.querySelectorAll(selector);
            containers.forEach(container => {
                const links = container.querySelectorAll('a[href]');
                links.forEach(link => processLink(link));
            });
        });
    }
    
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', processAllLinks);
    } else {
        processAllLinks();
    }
    
    const observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            mutation.addedNodes.forEach(function(node) {
                if (node.nodeType === 1) {
                    if (node.matches('a[href]')) {
                        processLink(node);
                    }
                    const links = node.querySelectorAll('a[href]');
                    links.forEach(link => processLink(link));
                }
            });
        });
    });
    
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });
})();
</script>
 
طيب اخي و لما اريد ان اضيف رابط بالموضوع هل يصبح ايضا بصفحة المنتدى؟
اذا نعم ؟ كيف يمكنني ان اضيف رابطا؟
وشكرا على متابعتك
 
طيب اخي و لما اريد ان اضيف رابط بالموضوع هل يصبح ايضا بصفحة المنتدى؟
اذا نعم ؟ كيف يمكنني ان اضيف رابطا؟
وشكرا على متابعتك

ما فهمت سؤالك

الكود يحذف الروابط الخارجية من المواضيع فقط
 
يعني مثلا لما اضيف موضوع و اريد اضيف رابطا يدويا لتحميل برنامج مثلا من الميديافاير،، هل يصبح هذا الرابط ايضا اوتوماتيكيا و يتوجه بالصفحة الرئيسية؟
ام الكود فقط مخصص بالكلمات التي هي مزروعة بالكلمات المنقولة؟
 
التعديل الأخير:
يعني مثلا لما اضيف موضوع و اريد اضيف رابطا يدويا لتحميل برنامج مثلا من الميديافاير،، هل يصبح هذا الرابط ايضا اوتوماتيكيا و يتوجه بالصفحة الرئيسية؟
ام الكود فقط مخصص بالكلمات التي هي مزروعة بالكلمات المنقولة؟
نعم اخي اي رابط ليس من داخل الموقع سيحذف

انت اعطيني الروابط الخارجية اللي رح تستخدمها مثل ميديا فاير وغيرها وبعملها استثناء في الكود
 
فياريت تستثني الروابط التي تضاف يدويا من خلال المحرر.
نعم حتى اللي بتضيفها من ايقونة المحرر
ولا يمكن استثناءها اخي
يمكن استثناء روابط بعينها مثل ما قلتلك اذ بنضيف للكود مكان لاستثناء روابط انت بتحصيها وبتحددها
لان الروابط اللي تضاف من الايقونة او الروابط اللي تنسخها مع النص تعتبر نفس الشي ما فيها اختلاف بينهم لذلك لن يستطيع اي كود التمييز بينهم

لذلك الطريقة الثانية هي انك تزيل الروابط يدويًا عند النسخ
 

ما هو انكور؟

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