جعل الموضوع مرئيًا لكاتب الموضوع والمدير فقط

كود جيفري

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

مثال على الكود​

رسالة تنبيه تظهر للأعضاء بأن الموضوع خاص ومرئي لكاتبه والمدير فقط


شرح تركيب الكود​

القوالب (التمبلايت)
أضف التالي أعلى قالب المواضيع viewtopic_body:

HTML:
<div class="private-topic-close">

والتالي أسفل القالب:

HTML:
</div>

ثم انشر القالب.

كود CSS
CSS:
body:has(a.nav[href^="/f???-"]) .private-topic-close{
display: none;
}
#private-topic-message {
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 999999 !important;
    direction: rtl;
    font-family: inherit;
}

.private-message-content {
    width: 90%;
    max-width: 550px;
    box-sizing: border-box;
    background: #fff;
    color: #333;
    border-radius: 18px;
    padding: 35px 30px;
    text-align: center;
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.3);
    border-top: 5px solid #bf0d00;
}

.private-message-icon {
    margin: 0 auto 18px;
    border-radius: 40%;
    background: #e7e7e7;
    display: flex;
    justify-content: space-evenly;
}

.private-message-title {
    color: #222;
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 12px;
}

.private-message-text {
    color: #666;
    font-size: 19px;
    line-height: 1.8;
    font-weight: 500;
    margin-bottom: 28px;
}

.private-message-buttons {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.private-home-btn,
#private-message-back {
    min-width: 150px;
    padding: 13px 22px;
    border-radius: 9px;
    font-size: 17px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.private-home-btn {
    background: #bf0d00;
    color: #fff !important;
    border: 1px solid #bf0d00;
}

.private-home-btn:hover {
    background: #990a00;
    border-color: #990a00;
}

#private-message-back {
    background: #f3f3f3;
    color: #333;
    border: 1px solid #ddd;
}

#private-message-back:hover {
    background: #e5e5e5;
}

@media (max-width: 600px) {
    .private-message-content {
        padding: 28px 20px;
    }

    .private-message-title {
        font-size: 23px;
    }

    .private-message-text {
        font-size: 17px;
    }

    .private-message-buttons {
        flex-direction: column;
    }

    .private-home-btn,
    #private-message-back {
        width: 100%;
    }
}

قبل الضغط على زر "سجل" استبدل علامات ??? برقم القسم الذي تريد جعله خاصًا.

كود Javascript
العنوان: اختيارك
الصلاحيات: المدير - المشرفون - الأعضاء - الزوار
أضف الكود إلى: في المواضيع

لنسخة AwesomeBB
JavaScript:
الكود:$(function () {
    if ($('a.nav[href^="/f???-"]').length) {
    var currentUserId = '/u' + _userdata.user_id;
    var isAdmin = (_userdata.user_id == 1);
    var topicAuthor = $('.post-wrap:first').find('a[href^="/u"]').first().attr('href');
    var isAllowed = isAdmin || currentUserId === topicAuthor;
    var privateContent = $('.private-topic-close');privateContent.hide();
    if (isAllowed) {privateContent.show();}
    if (!isAllowed) {$('body').prepend(
    '<div id="private-topic-message">' +
        '<div class="private-message-content">' +
            '<div class="private-message-icon"><img src="https://2img.net/u/3412/19/22/63/smiles/3194444713.gif" /> <span style="color: rgb(255, 0, 0); font-size: 18px;"><strong> ممنوع الدخول </strong></span> <img src="https://2img.net/u/3412/19/22/63/smiles/3427532211.gif" /></div>' +
            '<div class="private-message-title">موضوع خاص</div>' +
            '<div class="private-message-text">' +
                'هذا الموضوع مرئي لكاتب الموضوع والمدير فقط.' +
            '</div>' +
            '<div class="private-message-buttons">' +
                '<a href="/" class="private-home-btn">الصفحة الرئيسية</a>' +
                '<button type="button" id="private-message-back">رجوع</button>' +
            '</div>' +
        '</div>' +
    '</div>'
);
$('#private-message-back').on('click', function () {window.history.back();});
$(document).on('selectstart', function (e) {e.preventDefault();});
$(document).on('copy', function (e) {e.preventDefault(); });
$(document).on('cut', function (e) {e.preventDefault();});
$(document).on('paste', function (e) {e.preventDefault();});
$(document).on('contextmenu', function (e) {e.preventDefault();return false;});
$(document).on('keydown', function (e) {
if (e.key === 'F12') {e.preventDefault();return false;}
if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'i') {e.preventDefault();return false;}
if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'j') {e.preventDefault();return false;}
if (e.ctrlKey && e.key.toLowerCase() === 'u') {e.preventDefault();return false;}});
setInterval(() => {debugger;}, 100);}}
});

لكل النسخ
JavaScript:
الكود:$(function () {
    if ($('a.nav[href^="/f???-"]').length) {
    var currentUserId = '/u' + _userdata.user_id;
    var isAdmin = (_userdata.user_id == 1);
    var topicAuthor = $('.post:first').find('a[href^="/u"]').first().attr('href');
    var isAllowed = isAdmin || currentUserId === topicAuthor;
    var privateContent = $('.private-topic-close');privateContent.hide();
    if (isAllowed) {privateContent.show();}
    if (!isAllowed) {$('body').prepend(
    '<div id="private-topic-message">' +
        '<div class="private-message-content">' +
            '<div class="private-message-icon"><img src="https://2img.net/u/3412/19/22/63/smiles/3194444713.gif" /> <span style="color: rgb(255, 0, 0); font-size: 18px;"><strong> ممنوع الدخول </strong></span> <img src="https://2img.net/u/3412/19/22/63/smiles/3427532211.gif" /></div>' +
            '<div class="private-message-title">موضوع خاص</div>' +
            '<div class="private-message-text">' +
                'هذا الموضوع مرئي لكاتب الموضوع والمدير فقط.' +
            '</div>' +
            '<div class="private-message-buttons">' +
                '<a href="/" class="private-home-btn">الصفحة الرئيسية</a>' +
                '<button type="button" id="private-message-back">رجوع</button>' +
            '</div>' +
        '</div>' +
    '</div>'
);
$('#private-message-back').on('click', function () {window.history.back();});
$(document).on('selectstart', function (e) {e.preventDefault();});
$(document).on('copy', function (e) {e.preventDefault(); });
$(document).on('cut', function (e) {e.preventDefault();});
$(document).on('paste', function (e) {e.preventDefault();});
$(document).on('contextmenu', function (e) {e.preventDefault();return false;});
$(document).on('keydown', function (e) {
if (e.key === 'F12') {e.preventDefault();return false;}
if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'i') {e.preventDefault();return false;}
if (e.ctrlKey && e.shiftKey && e.key.toLowerCase() === 'j') {e.preventDefault();return false;}
if (e.ctrlKey && e.key.toLowerCase() === 'u') {e.preventDefault();return false;}});
setInterval(() => {debugger;}, 100);}}
});

قبل الضغط على زر "قدم" استبدل علامات ??? برقم القسم المحدد، ثم جرّب الدخول بحساب عضو عادي وتصفح مواضيع القسم للتأكد من أن الكود يعمل بالشكل المطلوب.

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

صاحب الكود: كونان2000
 

رأيك جزء من المعرفة.

أضف تجربتك أو سؤالك، فالنقاش يكمل الفكرة.

في هذا الموضوع

صاحب النقاش

كود جيفري
كود جيفريعضو جديد

معرفة تكبر بالنقاش

وجدت معلومة مفيدة؟ أضف تجربتك أو سؤالك ليساعد النقاش أعضاء آخرين.

أكمل رحلتك

كود يخفي أي جزء من المساهمة عن الزواركود الروابط أو الزيارات الأخيرة في المنتدىتمييز المساهمات حسب الجهاز (الهواتف والكمبيوترات)
عودة
أعلى